Få åtkomst till Azure Key Vault från Azure Cosmos DB med hjälp av en hanterad identitet
GÄLLER FÖR: NoSQL MongoDB Kassandra Gremlin Bord
Azure Cosmos DB kan behöva läsa hemliga/viktiga data från Azure Key Vault. Din Azure Cosmos DB kan till exempel kräva en kundhanterad nyckel som lagras i Azure Key Vault. För att göra detta bör Azure Cosmos DB konfigureras med en hanterad identitet och sedan bör en Azure Key Vault-åtkomstprincip bevilja åtkomst till den hanterade identiteten.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto utan kostnad.
- Ett befintligt Azure Cosmos DB-API för NoSQL-konto. Skapa ett Azure Cosmos DB-API för NoSQL-konto
- En befintlig Azure Key Vault-resurs. Skapa ett nyckelvalv med Hjälp av Azure CLI
- Om du vill utföra stegen i den här artikeln installerar du Azure CLI och loggar in på Azure.
Kravkontroll
I ett terminal- eller kommandofönster lagrar du namnen på din Azure Key Vault-resurs, Azure Cosmos DB-konto och resursgrupp som gränssnittsvariabler med namnet
keyVaultName
,cosmosName
ochresourceGroupName
.# 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"
Kommentar
Dessa variabler kommer att återanvändas i senare steg. Det här exemplet förutsätter att ditt Azure Cosmos DB-kontonamn är
msdocs-cosmos-app
, ditt nyckelvalvnamn ärmsdocs-keyvault
och resursgruppens namn ärmsdocs-cosmos-keyvault-identity
.
Skapa en systemtilldelad hanterad identitet i Azure Cosmos DB
Skapa först en systemtilldelad hanterad identitet för det befintliga Azure Cosmos DB-kontot.
Viktigt!
Den här guiden förutsätter att du använder en systemtilldelad hanterad identitet. Många av stegen liknar när du använder en användartilldelad hanterad identitet.
Kör
az cosmosdb identity assign
för att skapa en ny systemtilldelad hanterad identitet.az cosmosdb identity assign \ --resource-group $resourceGroupName \ --name $cosmosName
Hämta metadata för den systemtilldelade hanterade identiteten med ,
az cosmosdb identity show
filtrera för att bara returneraprincipalId
egenskapen med frågeparametern och lagra resultatet i en gränssnittsvariabel med namnetprincipal
.principal=$( az cosmosdb identity show \ --resource-group $resourceGroupName \ --name $cosmosName \ --query principalId \ --output tsv ) echo $principal
Kommentar
Den här variabeln kommer att återanvändas i ett senare steg.
Skapa en Azure Key Vault-åtkomstprincip
I det här steget skapar du en åtkomstprincip i Azure Key Vault med hjälp av den tidigare hanterade identiteten.
az keyvault set-policy
Använd kommandot för att skapa en åtkomstprincip i Azure Key Vault som ger azure Cosmos DB-hanterad identitet behörighet att komma åt Key Vault. Mer specifikt använder principen nyckelbehörighetsparametrarna för att bevilja behörigheter tillget
,list
ochimport
nycklar.az keyvault set-policy \ --name $keyVaultName \ --object-id $principal \ --key-permissions get list import
Nästa steg
- Information om hur du använder kundhanterade nycklar i Azure Key Vault med ditt Azure Cosmos DB-konto finns i konfigurera kundhanterade nycklar
- Information om hur du använder Azure Key Vault för att hantera hemligheter finns i Säkra autentiseringsuppgifter.