UiPath Documentation
automation-suite
2.2510
true
Guia de instalação do Automation Suite no OpenShift
Importante :
A tradução automática foi aplicada parcialmente neste conteúdo. A localização de um conteúdo recém-publicado pode levar de 1 a 2 semanas para ficar disponível.

Instalando o operador de segredos externos

Instale o Operador de segredos externos para integrar sistemas de gerenciamento de segredos externos ao Automation Suite.

Observação:

Essa etapa é necessária apenas se você quiser armazenar credenciais confidenciais em um sistema de gerenciamento de segredos externo.

Importante:

Por padrão, o Automation Suite inclui o Operador de segredos externos.

Se você optar por não usar a versão empacotada, você pode instalar sua própria instância do Operador de segredos externos seguindo as etapas descritas nesta seção.

O Operador de segredos externos (ESO) é um operador do Kubernetes que se integra a sistemas de gerenciamento de segredos externos (por exemplo, AWS Secrets Manager, HashiCorp Vault). Ele lê dados de backends de segredo externos e cria e sincroniza automaticamente os valores como segredos nativos do Kubernetes.

O Automation Suite oferece suporte ao Azure Key Vault, HashiCorp Vault e AWS Secrets Manager como provedores de segredos externos.

Adicionando o repositório do Helm de segredos externos​

Você deve adicionar o repositório do Helm de segredos externos à sua instalação do Helm da seguinte maneira:

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

Após adicionar o repositório, você deve atualizar seus repositórios do Helm para buscar as informações de gráficos mais recentes da seguinte maneira:

helm repo update
helm repo update

OpenShift: configuração da restrição de contexto de segurança​

No OpenShift, os pods do operador de segredos externos exigem permissões para serem executados fora do intervalo UID restrito padrão. Você deve conceder a restrição de contexto de segurança (SCC) qualqueruid às contas de serviço do ESO antes de instalar o operador.

Para configurar o SCC, siga as seguintes etapas:

  1. Salve o seguinte em um arquivo chamado eso-anyuid-role.yaml para criar uma Função que conceda acesso à Restrição de Contexto de Segurança 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
    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. Crie a Função executando o seguinte comando:

    oc apply -f eso-anyuid-role.yaml
    oc apply -f eso-anyuid-role.yaml
    
  3. Salve o seguinte em um arquivo chamado eso-anyuid-rolebinding.yaml para criar uma RoleBinding que vincula a Função a todas as três contas de serviço do 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. Crie a RoleBinding executando o seguinte comando:

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

Você deve criar o namespace external-secrets e aplicar esses recursos antes de instalar o operador. Se os pods do ESO já estiverem falhando devido a violações de SCC, aplique a Função e a Associação de Função e, em seguida, exclua os pods com falha para disparar a recriação.

Instalando o operador de segredos externos​

Você deve implantar o Operador de segredos externos usando a versão v0.16.2 ou posterior. O Automation Suite requer o operador de segredos externos versão v0.16.2 como a versão mínima compatível, que inclui as APIs do ESO v1.

Crie o namespace primeiro (se ainda não tiver sido criado durante a etapa SCC), depois instale o operador:

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

O Operador de Segredos Externos requer acesso ao namespace uipath para funcionar corretamente.

OpenShift: criação da Política de rede​

No OpenShift, você deve criar a seguinte NetworkPolicy para permitir que o servidor de API alcance o webhook do 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

Aplique a NetworkPolicy executando o seguinte comando:

oc apply -f allow-apiserver-to-eso-webhook.yaml
oc apply -f allow-apiserver-to-eso-webhook.yaml
Observação:

Atualize spec.ingress[0].ports[0].port para a porta do webhook apropriada se sua instalação usar uma porta não padrão.

Verificando a instalação​

Após a instalação, você deve verificar se os pods do operador estão sendo executados da seguinte forma:

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

Você deve ver uma saída semelhante ao seguinte exemplo:

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

Se todos os pods exibirem um status Em execução , a instalação estará concluída.

Se algum pod mostrar CreateContainerConfigError ou CrashLoopBackOff com erros relacionados ao SCC nos eventos, verifique se o Role e RoleBinding da etapa de configuração do SCC foram aplicados corretamente:

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

Esta página foi útil?

Conectar

Precisa de ajuda? Suporte

Quer aprender? Academia UiPath

Tem perguntas? Fórum do UiPath

Fique por dentro das novidades