Ansluta till andra Azure- eller tredjepartstjänster via Dapr-komponenter
Upprätta anslutningar på ett säkert sätt till Azure och tjänster från tredje part för Dapr-komponenter med hjälp av hanterade identitets- eller Azure Key Vault-hemlighetslager.
Innan du börjar kan du läsa mer om det stöd som erbjuds för Dapr-komponenter.
Rekommendationer
När det är möjligt rekommenderar vi att du använder Azure-komponenter som tillhandahåller stöd för hanterad identitet för den säkraste anslutningen. Använd endast Azure Key Vault-hemlighetslager när hanterad identitetsautentisering inte stöds.
Typ av tjänst | Rekommendation |
---|---|
Azure-komponent med stöd för hanterad identitet | Använda det hanterade identitetsflödet (rekommenderas) |
Azure-komponent utan stöd för hanterad identitet | Använda ett hemligt Azure Key Vault-arkiv |
Icke-Azure-komponenter | Använda ett hemligt Azure Key Vault-arkiv |
Använda hanterad identitet (rekommenderas)
För Azure-värdbaserade tjänster kan Dapr använda den hanterade identiteten för de begränsade containerapparna för att autentisera till serverdelstjänstleverantören. När du använder hanterad identitet behöver du inte inkludera hemlig information i ett komponentmanifest. Användning av hanterad identitet rekommenderas eftersom det eliminerar lagring av känsliga indata i komponenter och kräver inte hantering av ett hemligt arkiv.
Kommentar
Metadatafältet azureClientId
(klient-ID för den hanterade identiteten) krävs för alla komponenter som autentiserar med användartilldelad hanterad identitet.
Använda en dapr-referens för hemlig lagringskomponent
När du skapar Dapr-komponenter för icke-Entra ID-aktiverade tjänster eller komponenter som inte stöder hanterad identitetsautentisering, kräver vissa metadatafält känsliga indatavärden. För den här metoden hämtar du dessa hemligheter genom att referera till en befintlig Dapr-komponent för hemligt arkiv som på ett säkert sätt kommer åt hemlig information.
Så här konfigurerar du en referens:
- Skapa en Dapr secret store-komponent med hjälp av Azure Container Apps-schemat. Komponenttypen för alla Dapr-hemlighetslager som stöds börjar med
secretstores.
. - Skapa extra komponenter (efter behov) som refererar till dapr-hemlighetsarkivkomponenten som du skapade för att hämta indata för känsliga metadata.
Skapa en Dapr-komponent för hemligt arkiv
När du skapar en hemlig butikskomponent i Azure Container Apps kan du ange känslig information i metadataavsnittet på något av följande sätt:
- För ett hemligt Azure Key Vault-arkiv använder du hanterad identitet för att upprätta anslutningen.
- För icke-Azure-hemliga butiker använder du plattformshanterade Kubernetes-hemligheter som definieras direkt som en del av komponentmanifestet.
Hemliga Azure Key Vault-butiker
Följande komponentschema visar den enklaste möjliga hemliga butikskonfigurationen med hjälp av ett hemligt Azure Key Vault-arkiv. publisher-app
och subscriber-app
är konfigurerade för att både ha en system- eller användartilldelad hanterad identitet med lämpliga behörigheter för Azure Key Vault-instansen.
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
Plattformshanterade Kubernetes-hemligheter
Som ett alternativ till Kubernetes-hemligheter, lokala miljövariabler och Lokala dapr-filhemlighetslager tillhandahåller Azure Container Apps en plattformshanterad metod för att skapa och utnyttja Kubernetes-hemligheter. Den här metoden kan användas för att ansluta till icke-Azure-tjänster eller i utvecklings-/testscenarier för att snabbt distribuera komponenter via CLI utan att konfigurera ett hemligt arkiv eller hanterad identitet.
Den här komponentkonfigurationen definierar det känsliga värdet som en hemlig parameter som kan refereras från metadataavsnittet.
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
Referera till Dapr secret store-komponenter
När du har skapat ett Hemligt Dapr-arkiv med någon av de tidigare metoderna kan du referera till det hemliga arkivet från andra Dapr-komponenter i samma miljö. I följande exempel visas hur du använder Entra ID-autentisering.
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