Uzyskiwanie dostępu do usługi Azure Key Vault z usługi Azure Cosmos DB przy użyciu tożsamości zarządzanej
DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół
Usługa Azure Cosmos DB może wymagać odczytu danych wpisów tajnych/kluczy z usługi Azure Key Vault. Na przykład usługa Azure Cosmos DB może wymagać klucza zarządzanego przez klienta przechowywanego w usłudze Azure Key Vault. W tym celu należy skonfigurować usługę Azure Cosmos DB przy użyciu tożsamości zarządzanej, a następnie zasady dostępu usługi Azure Key Vault powinny udzielić dostępu tożsamości zarządzanej.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Istniejący interfejs API usługi Azure Cosmos DB dla konta NoSQL. Tworzenie interfejsu API usługi Azure Cosmos DB dla konta NoSQL
- Istniejący zasób usługi Azure Key Vault. Tworzenie magazynu kluczy przy użyciu interfejsu wiersza polecenia platformy Azure
- Aby wykonać kroki opisane w tym artykule, zainstaluj interfejs wiersza polecenia platformy Azure i zaloguj się na platformie Azure.
Sprawdzanie wymagań wstępnych
W oknie terminalu lub polecenia zapisz nazwy zasobu usługi Azure Key Vault, konta usługi Azure Cosmos DB i grupy zasobów jako zmienne powłoki o nazwach
keyVaultName
,cosmosName
iresourceGroupName
.# Variable for function app name keyVaultName="msdocs-keyvault" # Variable for Azure Cosmos DB account name cosmosName="msdocs-cosmos-app" # Variable for resource group name resourceGroupName="msdocs-cosmos-keyvault-identity"
Uwaga
Te zmienne zostaną ponownie użyte w kolejnych krokach. W tym przykładzie założono, że nazwa konta usługi Azure Cosmos DB to , nazwa magazynu kluczy to
msdocs-cosmos-app
msdocs-keyvault
, a nazwa grupy zasobów tomsdocs-cosmos-keyvault-identity
.
Tworzenie tożsamości zarządzanej przypisanej przez system w usłudze Azure Cosmos DB
Najpierw utwórz tożsamość zarządzaną przypisaną przez system dla istniejącego konta usługi Azure Cosmos DB.
Ważne
W tym przewodniku z instrukcjami założono, że używasz tożsamości zarządzanej przypisanej przez system. Wiele kroków jest podobnych w przypadku korzystania z tożsamości zarządzanej przypisanej przez użytkownika.
Uruchom polecenie
az cosmosdb identity assign
, aby utworzyć nową tożsamość zarządzaną przypisaną przez system.az cosmosdb identity assign \ --resource-group $resourceGroupName \ --name $cosmosName
Pobierz metadane tożsamości zarządzanej przypisanej przez system przy użyciu filtru
az cosmosdb identity show
, aby po prostu zwrócićprincipalId
właściwość przy użyciu parametru zapytania i zapisać wynik w zmiennej powłoki o nazwieprincipal
.principal=$( az cosmosdb identity show \ --resource-group $resourceGroupName \ --name $cosmosName \ --query principalId \ --output tsv ) echo $principal
Uwaga
Ta zmienna zostanie ponownie użyta w późniejszym kroku.
Tworzenie zasad dostępu usługi Azure Key Vault
W tym kroku utwórz zasady dostępu w usłudze Azure Key Vault przy użyciu wcześniej zarządzanej tożsamości.
az keyvault set-policy
Użyj polecenia , aby utworzyć zasady dostępu w usłudze Azure Key Vault, które dają tożsamości zarządzanej usługi Azure Cosmos DB uprawnienie dostępu do usługi Key Vault. W szczególności zasady będą używać parametrów key-permissions w celu udzielenia uprawnień doget
,list
iimport
kluczy.az keyvault set-policy \ --name $keyVaultName \ --object-id $principal \ --key-permissions get list import
Następne kroki
- Aby użyć kluczy zarządzanych przez klienta w usłudze Azure Key Vault przy użyciu konta usługi Azure Cosmos DB, zobacz Konfigurowanie kluczy zarządzanych przez klienta
- Aby zarządzać wpisami tajnymi przy użyciu usługi Azure Key Vault, zobacz bezpieczne poświadczenia.