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.

Configurando o Azure Key Vault como um Secretstore

Configure o Azure Key Vault como segredo usando a autenticação de entidade de serviço no Automation Suite no OpenShift.

Você pode configurar o Azure Key Vault como um armazenamento secreto usando o método de autenticação da Entidade de Serviço.

Por padrão, todos os dados confidenciais são definidos em input.json. Você pode separar esses dados em duas partes:

  • input.json - contém apenas dados de configuração.
  • Azure Key Vault — armazena credenciais com segurança.
Observação:

Você não pode armazenar caminhos de certificados ou credenciais relacionadas a certificados como parte do Secretstore.

Importante:

Todas as credenciais referenciadas em input.json devem existir como segredos no Azure Key Vault antes de você configurar o Secretstore. Se alguma credencial referenciada estiver ausente no Azure Key Vault, a instalação falhará.

Usando a autenticação da entidade de serviço​

Para configurar o Azure Key Vault como armazenamento secreto usando a autenticação de entidade de serviço, siga as seguintes etapas:.

  1. Para que uipathctl identifique que as credenciais são armazenadas no Azure Key Vault, você deve adicionar a seção Secretstore a input.json , conforme mostrado no exemplo a seguir:

    "secret_store": {
      "enabled": true,
      "provider_configs": [
        {
          "type": "azure",
          "credentials_secret_name": "azure-service-principal-secret",
          "refresh_interval": "5m",
          "name": "azure-secret-store",
          "azure_kv": {
            "vault_url": "https://eso-azure-kv.vault.azure.net/",
            "tenant_id": "00000000-0000-0000-0000-000000000000"
          }
        }
      ]
    }
    "secret_store": {
      "enabled": true,
      "provider_configs": [
        {
          "type": "azure",
          "credentials_secret_name": "azure-service-principal-secret",
          "refresh_interval": "5m",
          "name": "azure-secret-store",
          "azure_kv": {
            "vault_url": "https://eso-azure-kv.vault.azure.net/",
            "tenant_id": "00000000-0000-0000-0000-000000000000"
          }
        }
      ]
    }
    
  2. Crie um segredo do Kubernetes que armazene as credenciais da entidade de serviço do Azure, conforme mostrado no exemplo a seguir:

    apiVersion: v1
    kind: Secret
    metadata:
      name: azure-service-principal-secret
    type: Opaque
    stringData:
      clientId: <client-id>
      clientSecret: <client-secret>
    apiVersion: v1
    kind: Secret
    metadata:
      name: azure-service-principal-secret
    type: Opaque
    stringData:
      clientId: <client-id>
      clientSecret: <client-secret>
    
  3. Implante o segredo no namespace uipath usando o seguinte comando:

    kubectl apply -f azure-service-principal-secret -n uipath
    kubectl apply -f azure-service-principal-secret -n uipath
    
  4. Atualize os valores das credenciais em input.json para fazer referência aos segredos armazenados no Azure Key Vault usando o seguinte formato:

    vault/<vault-name>/<key-stored-in-the-vault>
    vault/<vault-name>/<key-stored-in-the-vault>
    

    Onde:

    • vault – palavra-chave estática.
    • vault-name - o valor de secret_store.provider_configs[i].name (por exemplo, azure-secret-store).
    • key-stored-in-the-vault - o nome do segredo conforme armazenado no Azure Key Vault. Antes da alteração, suas credenciais podem ser semelhantes a isto:
    "admin_username": "admin",
    "admin_password": "password",
    "admin_username": "admin",
    "admin_password": "password",
    

    Após atualizá-los para fazer referência ao Azure Key Vault, eles devem ficar assim:

    "admin_username": "vault/azure-secret-store/admin-username-1234",
    "admin_password": "vault/azure-secret-store/admin-password-1234",
    "admin_username": "vault/azure-secret-store/admin-username-1234",
    "admin_password": "vault/azure-secret-store/admin-password-1234",
    

A imagem a seguir mostra os segredos armazenados no Azure Key Vault.

O exemplo a seguir exibe uma configuração input.json com credenciais armazenadas no Azure Key Vault.

{
  "action_center": {
    "enabled": true
  },
  "admin_password": "vault/azure-secret-store/admin-password-1234",
  "admin_username": "vault/azure-secret-store/admin-username-1234",
  "aicenter": {
    "enabled": true
  },
  "apps": {
    "enabled": true
  },
  "argocd": {
    "application_namespace": "uipath",
    "project": "uipath"
  },
  "automation_hub": {
    "enabled": true
  },
  "automation_ops": {
    "enabled": true
  },
  "dataservice": {
    "enabled": true
  },
  "documentunderstanding": {
    "enabled": true
  },
  "exclude_components": [
    "argocd",
    "monitoring",
    "istio",
    "logging",
    "gatekeeper",
    "network-policies",
    "velero",
    "alerts",
    "cert-manager",
    "dapr",
    "external-secrets"
  ],
  "external_object_storage": {
    "access_key": "vault/azure-secret-store/external-object-storage-access-key-1234",
    "enabled": true,
    "fqdn": "s3storage.mycompany.com",
    "port": 443,
    "region": "us-east-2",
    "secret_key": "vault/azure-secret-store/external-object-storage-secret-key-1234",
    "storage_type": "s3"
  },
  "fabric": {
    "redis": {
      "hostname": "redis.mycompany.com",
      "password": "vault/azure-secret-store/fabric-redis-password-1234",
      "port": 6380,
      "tls": true
    }
  },
  "fqdn": "automationsuite.mycompany.com",
  "ingress": {
    "gateway_selector": {
      "istio": "ingressgateway"
    },
    "ingress_gateway_secret": "istio-ingressgateway-certs",
    "namespace": "\u003cistio-system\u003e"
  },
  "insights": {
    "enabled": true
  },
  "istioMinProtocolVersion": "TLSV1_3",
  "kubernetes_distribution": "openshift",
  "namespace": "uipath",
  "orchestrator": {
    "enabled": true
  },
  "platform": {
    "enabled": true
  },
  "postgresql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/postgresql-connection-string-template-sqlalchemy-pyodbc-1234",
  "processmining": {
    "enabled": true
  },
  "profile": "default",
  "registries": {
    "docker": {
      "password": "",
      "pull_secret_name": "registry-credentials",
      "pull_secret_value": "",
      "url": "registry.mycompany.com",
      "username": ""
    },
    "helm": {
      "password": "",
      "url": "registry.mycompany.com",
      "username": ""
    }
  },
  "secret_store": {
    "enabled": true,
    "secret_name": "",
    "provider_configs": [
      {
        "type": "azure",
        "credentials_secret_name": "azure-service-principal-secret",
        "refresh_interval": "5m",
        "name": "azure-secret-store",
        "azure_kv": {
          "vault_url": "https://eso-azure-kv.vault.azure.net/",
          "tenant_id": "00000000-0000-0000-0000-000000000000"
        }
      }
    ]
  },
  "sql": {
    "create_db": true,
    "password": "vault/azure-secret-store/sql-password-1234",
    "port": "1433",
    "server_url": "sql.mycompany.com",
    "username": "vault/azure-secret-store/sql-username-1234"
  },
  "sql_connection_string_template": "vault/azure-secret-store/sql-connection-string-template-1234",
  "sql_connection_string_template_jdbc": "vault/azure-secret-store/sql-connection-string-template-jdbc-1234",
  "sql_connection_string_template_odbc": "vault/azure-secret-store/sql-connection-string-template-odbc-1234",
  "sql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/sql-connection-string-template-sqlalchemy-pyodbc-1234",
  "storage_class": "managed-premium",
  "storage_class_single_replica": "managed-premium",
  "telemetry_optout": true,
  "test_manager": {
    "enabled": true
  }
}
{
  "action_center": {
    "enabled": true
  },
  "admin_password": "vault/azure-secret-store/admin-password-1234",
  "admin_username": "vault/azure-secret-store/admin-username-1234",
  "aicenter": {
    "enabled": true
  },
  "apps": {
    "enabled": true
  },
  "argocd": {
    "application_namespace": "uipath",
    "project": "uipath"
  },
  "automation_hub": {
    "enabled": true
  },
  "automation_ops": {
    "enabled": true
  },
  "dataservice": {
    "enabled": true
  },
  "documentunderstanding": {
    "enabled": true
  },
  "exclude_components": [
    "argocd",
    "monitoring",
    "istio",
    "logging",
    "gatekeeper",
    "network-policies",
    "velero",
    "alerts",
    "cert-manager",
    "dapr",
    "external-secrets"
  ],
  "external_object_storage": {
    "access_key": "vault/azure-secret-store/external-object-storage-access-key-1234",
    "enabled": true,
    "fqdn": "s3storage.mycompany.com",
    "port": 443,
    "region": "us-east-2",
    "secret_key": "vault/azure-secret-store/external-object-storage-secret-key-1234",
    "storage_type": "s3"
  },
  "fabric": {
    "redis": {
      "hostname": "redis.mycompany.com",
      "password": "vault/azure-secret-store/fabric-redis-password-1234",
      "port": 6380,
      "tls": true
    }
  },
  "fqdn": "automationsuite.mycompany.com",
  "ingress": {
    "gateway_selector": {
      "istio": "ingressgateway"
    },
    "ingress_gateway_secret": "istio-ingressgateway-certs",
    "namespace": "\u003cistio-system\u003e"
  },
  "insights": {
    "enabled": true
  },
  "istioMinProtocolVersion": "TLSV1_3",
  "kubernetes_distribution": "openshift",
  "namespace": "uipath",
  "orchestrator": {
    "enabled": true
  },
  "platform": {
    "enabled": true
  },
  "postgresql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/postgresql-connection-string-template-sqlalchemy-pyodbc-1234",
  "processmining": {
    "enabled": true
  },
  "profile": "default",
  "registries": {
    "docker": {
      "password": "",
      "pull_secret_name": "registry-credentials",
      "pull_secret_value": "",
      "url": "registry.mycompany.com",
      "username": ""
    },
    "helm": {
      "password": "",
      "url": "registry.mycompany.com",
      "username": ""
    }
  },
  "secret_store": {
    "enabled": true,
    "secret_name": "",
    "provider_configs": [
      {
        "type": "azure",
        "credentials_secret_name": "azure-service-principal-secret",
        "refresh_interval": "5m",
        "name": "azure-secret-store",
        "azure_kv": {
          "vault_url": "https://eso-azure-kv.vault.azure.net/",
          "tenant_id": "00000000-0000-0000-0000-000000000000"
        }
      }
    ]
  },
  "sql": {
    "create_db": true,
    "password": "vault/azure-secret-store/sql-password-1234",
    "port": "1433",
    "server_url": "sql.mycompany.com",
    "username": "vault/azure-secret-store/sql-username-1234"
  },
  "sql_connection_string_template": "vault/azure-secret-store/sql-connection-string-template-1234",
  "sql_connection_string_template_jdbc": "vault/azure-secret-store/sql-connection-string-template-jdbc-1234",
  "sql_connection_string_template_odbc": "vault/azure-secret-store/sql-connection-string-template-odbc-1234",
  "sql_connection_string_template_sqlalchemy_pyodbc": "vault/azure-secret-store/sql-connection-string-template-sqlalchemy-pyodbc-1234",
  "storage_class": "managed-premium",
  "storage_class_single_replica": "managed-premium",
  "telemetry_optout": true,
  "test_manager": {
    "enabled": true
  }
}

Configurando o ambiente de nuvem do Azure​

O campo environment_type especifica qual ambiente de nuvem do Azure deve ser usado para o acesso ao Cofre de Chaves. Este campo é opcional e o padrão é PublicCloud.

Os seguintes valores são suportados:

ValorDescription
PublicCloudNuvem pública do Azure (padrão)
USGovernmentCloudNuvem do Azure Governo dos EUA
ChinaCloudNuvem Azure China
GermanCloudNuvem Azure Alemanha
Observação:

O vault_url deve corresponder ao ambiente de nuvem do Azure. Por exemplo:

  • Nuvem pública: https://<vault-name>.vault.azure.net/
  • Governo dos EUA: https://<vault-name>.vault.usgovcloudapi.net/
  • China: https://<vault-name>.vault.azure.cn/
  • Alemanha: https://<vault-name>.vault.microsoftazure.de/

O exemplo a seguir mostra como configurar o campo environment_type em input.json:

"secret_store": {
  "enabled": true,
  "provider_configs": [
    {
      "type": "azure",
      "credentials_secret_name": "azure-service-principal-secret",
      "refresh_interval": "5m",
      "name": "azure-secret-store",
      "environment_type": "USGovernmentCloud",
      "azure_kv": {
        "vault_url": "https://eso-azure-kv.vault.azure.net/",
        "tenant_id": "00000000-0000-0000-0000-000000000000"
      }
    }
  ]
}
"secret_store": {
  "enabled": true,
  "provider_configs": [
    {
      "type": "azure",
      "credentials_secret_name": "azure-service-principal-secret",
      "refresh_interval": "5m",
      "name": "azure-secret-store",
      "environment_type": "USGovernmentCloud",
      "azure_kv": {
        "vault_url": "https://eso-azure-kv.vault.azure.net/",
        "tenant_id": "00000000-0000-0000-0000-000000000000"
      }
    }
  ]
}

Configuração do registro privado externo compatível com OCI​

Ao usar um registro privado, se você não quiser configurar as credenciais de registro em input.json, pode fornecê-las como um segredo do Kubernetes, conforme mostrado no exemplo a seguir:

"registries": {
  "docker": {
    "pull_secret_name": "registry-credentials",
    "url": "sfbrdevhelmweacr.azurecr.io"
  }
}
"registries": {
  "docker": {
    "pull_secret_name": "registry-credentials",
    "url": "sfbrdevhelmweacr.azurecr.io"
  }
}

Crie o segredo do Kubernetes que armazena as credenciais de registro, conforme mostrado no exemplo a seguir:

apiVersion: v1
kind: Secret
metadata:
  name: registry-credentials
type: Opaque
data:
  url: base64Encode(sfbrdevhelmweacr.azurecr.io)
  username: base64Encode(<registry-username>)
  password: base64Encode(<registry-password>)
apiVersion: v1
kind: Secret
metadata:
  name: registry-credentials
type: Opaque
data:
  url: base64Encode(sfbrdevhelmweacr.azurecr.io)
  username: base64Encode(<registry-username>)
  password: base64Encode(<registry-password>)

Aplique o segredo no namespace uipath usando o seguinte comando:

kubectl apply -f registry-credentials.yaml -n uipath
kubectl apply -f registry-credentials.yaml -n uipath

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