Conexión a otros servicios de Azure o asociados mediante componentes de Dapr

Establezca conexiones de forma segura a Azure y a servicios que no sean de Microsoft para los componentes de Dapr mediante la identidad administrada o almacenes de secretos de Azure Key Vault.

Antes de empezar, obtenga más información sobre la compatibilidad ofrecida con los componentes de Dapr.

Recomendaciones

Para la conexión más segura, se recomienda usar Azure componentes que proporcionan compatibilidad con identidad administrada siempre que sea posible. Use los almacenes de secretos de Azure Key Vault solo cuando no se admite la autenticación de identidad administrada.

Tipo de servicio. Recomendación
Componente de Azure con compatibilidad con identidad administrada Uso del flujo de identidad administrada (recomendado)
Componente de Azure sin compatibilidad con identidades administradas Utiliza un almacén de secretos de Azure Key Vault
Componentes que no son de Azure Utiliza un almacén de secretos de Azure Key Vault

Para los servicios hospedados en Azure, Dapr puede usar la identidad administrada de las aplicaciones de contenedor con ámbito para autenticarse con el proveedor de servicios de back-end. Al usar la identidad administrada, no es necesario incluir información secreta en un manifiesto de componente. Se recomienda usar la identidad administrada, ya que elimina el almacenamiento de entradas confidenciales en los componentes y no requiere administrar un almacén de secretos.

Nota:

El campo de metadatos azureClientId (el id. de cliente de la identidad administrada) es necesario para cualquier componente que se autentique con la identidad administrada asignada por el usuario.

Utilizar una referencia al componente de almacén de secretos de Dapr

Al crear componentes de Dapr para servicios o componentes no habilitados para Entra ID que no admiten la autenticación de identidad administrada, determinados campos de metadatos requieren valores de entrada confidenciales. Para este enfoque, recupere estos secretos haciendo referencia a un componente de almacén de secretos de Dapr existente que accede de forma segura a la información secreta.

Para establecer una referencia:

  1. Cree un componente de almacén de secretos Dapr mediante el esquema Azure Container Apps. El tipo de componente para todos los almacenes secretos de Dapr admitidos comienza por secretstores.
  2. Cree componentes adicionales (según sea necesario) que hagan referencia al componente de almacén de secretos de Dapr que creó para recuperar la entrada de metadatos confidenciales.

Crear un componente de almacén de secretos de Dapr

Al crear un componente de almacén de secretos en Azure Container Apps, puede proporcionar información confidencial en la sección de metadatos de cualquiera de las maneras siguientes:

  • Para un almacén de secretos de Azure Key Vault, utilice la identidad administrada para establecer la conexión.
  • Para tiendas de secretos no-Azure, use secretos de Kubernetes administrados por la plataforma que se definen directamente como parte del manifiesto del componente.

los almacenes de secretos de Azure Key Vault

En el esquema de componente siguiente se muestra la configuración de almacén de secretos más sencilla posible mediante un almacén de secretos Azure Key Vault. publisher-app y subscriber-app están configurados para tener una identidad administrada asignada por el sistema o por el usuario con los permisos adecuados en la instancia de 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

Secretos de Kubernetes gestionados por la plataforma

Como alternativa a los secretos de Kubernetes, las variables de entorno local y los almacenes de secretos de Dapr de archivos locales, Azure Container Apps proporciona un enfoque administrado por la plataforma para crear y usar secretos de Kubernetes. Este enfoque se puede usar para conectarse a servicios que no son de Azure. O bien, en escenarios de desarrollo y pruebas, se puede usar para implementar rápidamente componentes a través de la CLI sin configurar un almacén de secretos o una identidad administrada.

Esta configuración de componente define el valor confidencial como un parámetro secreto al que se puede hacer referencia desde la sección de metadatos.

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

Referencia a componentes del almacén de secretos de Dapr

Una vez que haya creado un almacén de secretos de Dapr mediante uno de los enfoques anteriores, puede hacer referencia a ese almacén de secretos desde otros componentes de Dapr del mismo entorno. En el ejemplo siguiente se muestra el uso de la autenticación 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