UiPath Documentation
automation-suite
2.2510
true
Guide d'installation d'Automation Suite sur OpenShift
Important :
Veuillez noter que ce contenu a été localisé en partie à l’aide de la traduction automatique. La localisation du contenu nouvellement publié peut prendre 1 à 2 semaines avant d’être disponible.

Installation de l'opérateur de clés secrètes externes

Installez External Secrets Operator pour intégrer des systèmes de gestion des secrets externes avec Automation Suite.

Remarque :

Cette étape est requise uniquement si vous souhaitez stocker des informations d'identification sensibles dans un système de gestion des clés secrètes externe.

Important :

Par défaut, Automation Suite inclut l’opérateur de clés secrètes externes.

Si vous choisissez de ne pas utiliser la version fournie, vous pouvez installer votre propre instance External Secrets Operator en suivant les étapes décrites dans cette section.

L'opérateur de clés secrètes externes (ESO) est un opérateur Kubernetes qui s'intègre aux systèmes de gestion des clés secrètes externes. Il lit les données des backends des clés secrètes externes et crée et synchronise automatiquement les valeurs en tant que clés secrètes Kubernetes.

Automation Suite prend en charge Azure Key Vault, HashiCorp Vault et AWS Secrets Manager en tant que fournisseurs de clés secrètes externes.

Ajout du référentiel Helm des clés secrètes externes​

Vous devez ajouter le référentiel Helm de clés secrètes externes à votre installation Helm comme suit :

helm repo add external-secrets https://charts.external-secrets.io
helm repo add external-secrets https://charts.external-secrets.io

Après avoir ajouté le référentiel, vous devez mettre à jour vos référentiels Helm pour récupérer les dernières informations du graphique comme suit :

helm repo update
helm repo update

OpenShift : configuration de la contrainte du contexte de sécurité​

Sur OpenShift, les pods External Secrets Operator nécessitent des autorisations pour s'exécuter en dehors de la plage d'UID restreinte par défaut. Vous devez accorder la contrainte de contexte de sécurité Anyuid aux comptes de service ESO avant d'installer l'opérateur.

Pour configurer le SCC, procédez comme suit :

  1. Enregistrez ce qui suit dans un fichier nommé eso-anyuid-role.yaml pour créer un rôle qui accorde l'accès à la contrainte du contexte de sécurité.

    kind: Role
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: eso-anyuid-role
      namespace: external-secrets
    rules:
      - verbs:
          - use
        apiGroups:
          - security.openshift.io
        resources:
          - securitycontextconstraints
        resourceNames:
          - anyuid
    kind: Role
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: eso-anyuid-role
      namespace: external-secrets
    rules:
      - verbs:
          - use
        apiGroups:
          - security.openshift.io
        resources:
          - securitycontextconstraints
        resourceNames:
          - anyuid
    
  2. Créez le rôle en exécutant la commande suivante :

    oc apply -f eso-anyuid-role.yaml
    oc apply -f eso-anyuid-role.yaml
    
  3. Enregistrez ce qui suit dans un fichier nommé eso-anyuid-rolebinding.yaml pour créer une LiaisonRôle qui lie le Rôle aux trois comptes de service ESO :

    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: eso-anyuid-rolebinding
      namespace: external-secrets
    subjects:
      - kind: ServiceAccount
        name: external-secrets
        namespace: external-secrets
      - kind: ServiceAccount
        name: external-secrets-cert-controller
        namespace: external-secrets
      - kind: ServiceAccount
        name: external-secrets-webhook
        namespace: external-secrets
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: eso-anyuid-role
    kind: RoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: eso-anyuid-rolebinding
      namespace: external-secrets
    subjects:
      - kind: ServiceAccount
        name: external-secrets
        namespace: external-secrets
      - kind: ServiceAccount
        name: external-secrets-cert-controller
        namespace: external-secrets
      - kind: ServiceAccount
        name: external-secrets-webhook
        namespace: external-secrets
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: Role
      name: eso-anyuid-role
    
  4. Créez l'objet LiaisonRôle en exécutant la commande suivante :

    oc apply -f eso-anyuid-rolebinding.yaml
    oc apply -f eso-anyuid-rolebinding.yaml
    
Important :

Vous devez créer l'espace de noms external-secrets et appliquer ces ressources avant d'installer l'opérateur. Si les pods ESO échouent déjà en raison de violations SCC, appliquez les paramètres Role et RoleBinding, puis supprimez les pods défaillants pour déclencher la recréation.

Installation de l'opérateur de clés secrètes externes​

Vous devez déployer l'opérateur de clés secrètes externes à l'aide de la version v0.16.2 ou d'une version ultérieure. Automation Suite requiert la version External Secrets Operator v0.16.2 comme version minimale prise en charge, qui inclut les API ESO v1.

Créez d'abord l'espace de noms, puis installez l'opérateur :

oc create namespace external-secrets --dry-run=client -o yaml | oc apply -f -
helm install external-secrets \
  external-secrets/external-secrets \
  -n external-secrets \
  --version 0.16.2
oc create namespace external-secrets --dry-run=client -o yaml | oc apply -f -
helm install external-secrets \
  external-secrets/external-secrets \
  -n external-secrets \
  --version 0.16.2

L'opérateur de clés secrètes externes nécessite l'accès à l'espace de noms uipath pour fonctionner correctement.

OpenShift : Création de la stratégie réseau​

Dans OpenShift, vous devez créer la StratégieRéseau suivante pour permettre au serveur d'API d'accéder au Webhook ESO :

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-apiserver-to-eso-webhook
  namespace: external-secrets
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: external-secrets-webhook
  ingress:
  - ports:
    - port: 10250
      protocol: TCP
  policyTypes:
  - Ingress
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: allow-apiserver-to-eso-webhook
  namespace: external-secrets
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/name: external-secrets-webhook
  ingress:
  - ports:
    - port: 10250
      protocol: TCP
  policyTypes:
  - Ingress

Appliquez la StratégieRéseau en exécutant la commande suivante :

oc apply -f allow-apiserver-to-eso-webhook.yaml
oc apply -f allow-apiserver-to-eso-webhook.yaml
Remarque :

Mettez à jour spec.ingress[0].ports[0].port vers le port Webhook approprié si votre installation utilise un port non-par défaut.

Vérification de l'installation​

Après l'installation, vous devez vérifier que les pods opérateurs s'exécutent comme suit :

kubectl get pods -n external-secrets
kubectl get pods -n external-secrets

Vous devriez voir une sortie similaire à l'exemple suivant :

NAME                                               READY   STATUS    RESTARTS   AGE
external-secrets-7d8c9b5f9f-abc12                  1/1     Running   0          30s
external-secrets-cert-controller-6d8f7b9c-def34    1/1     Running   0          30s
external-secrets-webhook-8c9d7f6e5-ghi56           1/1     Running   0          30s
NAME                                               READY   STATUS    RESTARTS   AGE
external-secrets-7d8c9b5f9f-abc12                  1/1     Running   0          30s
external-secrets-cert-controller-6d8f7b9c-def34    1/1     Running   0          30s
external-secrets-webhook-8c9d7f6e5-ghi56           1/1     Running   0          30s

Si tous les pods affichent un statut En cours d'exécution , l'installation est terminée.

Si n'importe quel pod affiche CreateContainerConfigError ou CrashLoopBackOff avec des erreurs liées à SCC dans les événements, vérifiez que le Rôle et la LiaisonRôle de l'étape de configuration SCC ont été appliqués correctement :

oc get role eso-anyuid-role -n external-secrets
oc get rolebinding eso-anyuid-rolebinding -n external-secrets
oc get events -n external-secrets --sort-by='.lastTimestamp' | grep -i scc
oc get role eso-anyuid-role -n external-secrets
oc get rolebinding eso-anyuid-rolebinding -n external-secrets
oc get events -n external-secrets --sort-by='.lastTimestamp' | grep -i scc

Cette page vous a-t-elle été utile ?

Connecter

Besoin d'aide ? Assistance

Vous souhaitez apprendre ? UiPath Academy

Vous avez des questions ? UiPath Forum

Rester à jour