Dela via


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

Kravkontroll

  1. 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, cosmosNameoch resourceGroupName.

    # 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 är msdocs-keyvault och resursgruppens namn är msdocs-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.

  1. Kör az cosmosdb identity assign för att skapa en ny systemtilldelad hanterad identitet.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Hämta metadata för den systemtilldelade hanterade identiteten med , az cosmosdb identity showfiltrera för att bara returnera principalId egenskapen med frågeparametern och lagra resultatet i en gränssnittsvariabel med namnet principal.

    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.

  1. 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 till get, listoch import nycklar.

    az keyvault set-policy \
        --name $keyVaultName \
        --object-id $principal \
        --key-permissions get list import
    

Nästa steg