Share 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 Cassandra Gremlin Tabell

Azure Cosmos DB kan behöva läsa hemlighets-/nyckeldata 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 den hanterade identiteten åtkomst.

Förutsättningar

Kravkontroll

  1. I en terminal eller ett 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"
    

    Anteckning

    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 är liknande 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
    

    Anteckning

    Den här variabeln kommer att återanvändas i ett senare steg.

Skapa en åtkomstprincip för Azure Key Vault

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 parametrarna för nyckelbehörigheter 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