Ligue-se a outros serviços Azure ou parceiros usando componentes Dapr

Estabeleça de forma segura ligações ao Azure e a serviços não-serviços Microsoft para componentes Dapr usando identidade gerida ou armazenamentos secretos do Azure Key Vault.

Antes de começar, saiba mais sobre o suporte disponível para componentes Dapr.

Recomendações

Para a ligação mais segura, recomendamos que utilize componentes do Azure que proporcionem suporte de identidade gerida sempre que possível. Utilize os armazenamentos de segredos do Azure Key Vault somente quando a autenticação por identidade gerida não for suportada.

Tipo de serviço Recomendação
Componente Azure com suporte a identidade gerida Usar o fluxo de identidade gerenciado (recomendado)
Componente Azure sem suporte a identidade gerida Usar o repositório de segredos do Azure Key Vault
Componentes não-Azure Usar o repositório de segredos do Azure Key Vault

Para serviços alojados no Azure, o Dapr pode usar a identidade gerida das aplicações de contentor com âmbito para autenticar-se com o fornecedor de serviços backend. Ao usar a identidade gerenciada, você não precisa incluir informações secretas em um manifesto de componente. O uso de identidade gerenciada é recomendado , pois elimina o armazenamento de entradas confidenciais em componentes e não requer o gerenciamento de um armazenamento secreto.

Nota

O azureClientId campo de metadados (o ID do cliente da identidade gerenciada) é necessário para qualquer componente autenticado com identidade gerenciada atribuída pelo usuário.

Use uma referência de componente de armazenamento secreto Dapr

Quando cria componentes Dapr para serviços não habilitados pelo Entra ID ou componentes que não suportam autenticação de identidade gerida, certos campos de metadados requerem valores de entrada sensíveis. Para essa abordagem, recupere esses segredos fazendo referência a um componente de armazenamento secreto do Dapr existente que acessa informações secretas com segurança.

Para configurar uma referência:

  1. Crie um componente de armazenamento secreto Dapr usando o esquema Azure Container Apps. O tipo de componente para todos os armazenamentos secretos Dapr suportados começa com secretstores.
  2. Crie componentes extra (conforme necessário) que façam referência ao componente de armazenamento secreto Dapr que criou para recuperar os metadados sensíveis.

Criar um componente de armazenamento secreto Dapr

Ao criar um componente de armazenamento secreto no Azure Container Apps, pode fornecer informações sensíveis na secção de metadados de qualquer uma das seguintes formas:

  • Para um Azure Key Vault repositório de segredos, use a identidade gerida para estabelecer a ligação.
  • Para armazenamentos secretos não Azure, utilize segredos Kubernetes geridos pela plataforma que são definidos diretamente como parte do manifesto do componente.

Armazéns de segredos do Azure Key Vault

O esquema de componentes seguinte apresenta a configuração de armazenamento secreto mais simples possível usando um armazenamento secreto do Azure Key Vault. publisher-app e subscriber-app estão configurados para terem ambos uma identidade gerida atribuída pelo sistema ou pelo utilizador, com permissões apropriadas na instância Azure Key Vault.

componentType: secretstores.azure.keyvault
version: v1
metadata:
  - name: vaultName
    value: [your_keyvault_name]
  - name: azureEnvironment
    value: "AZUREPUBLICCLOUD"
  - name: azureClientId # Only required for authenticating user-assigned managed identity
    value: [your_managed_identity_client_id]
scopes:
  - publisher-app
  - subscriber-app

Segredos do Kubernetes gerenciados pela plataforma

Como alternativa aos segredos do Kubernetes, variáveis de ambiente locais e armazéns de segredos Dapr locais, o Azure Container Apps oferece uma abordagem de gestão através da plataforma para criar e utilizar segredos do Kubernetes. Esta abordagem pode ser usada para ligar a serviços que não sejam do Azure. Ou, em cenários de desenvolvimento/teste, pode ser usado para implementar rapidamente componentes através da CLI sem configurar um armazenamento secreto ou identidade gerida.

Essa configuração de componente define o valor confidencial como um parâmetro secreto que pode ser referenciado na seção de metadados.

componentType: secretstores.azure.keyvault
version: v1
metadata:
  - name: vaultName
    value: [your_keyvault_name]
  - name: azureEnvironment
    value: "AZUREPUBLICCLOUD"
  - name: azureTenantId
    value: "[your_tenant_id]"
  - name: azureClientId 
    value: "[your_client_id]"
  - name: azureClientSecret
    secretRef: azClientSecret
secrets:
  - name: azClientSecret
    value: "[your_client_secret]"
scopes:
  - publisher-app
  - subscriber-app

Referência de componentes de armazenamento de segredos do Dapr

Depois de criar um repositório secreto do Dapr usando uma das abordagens anteriores, você pode fazer referência a esse armazenamento secreto de outros componentes do Dapr no mesmo ambiente. O exemplo seguinte demonstra a utilização da autenticação Microsoft Entra ID.

componentType: pubsub.azure.servicebus.queue
version: v1
secretStoreComponent: "[your_secret_store_name]"
metadata:
  - name: namespaceName
    # Required when using Azure Authentication.
    # Must be a fully-qualified domain name
    value: "[your_servicebus_namespace.servicebus.windows.net]"
  - name: azureTenantId
    value: "[your_tenant_id]"
  - name: azureClientId 
    value: "[your_client_id]"
  - name: azureClientSecret
    secretRef: azClientSecret
scopes:
  - publisher-app
  - subscriber-app