Aracılığıyla paylaş


Yönetilen kimlik kullanarak Azure Cosmos DB'den Azure Key Vault'a erişme

ŞUNLAR IÇIN GEÇERLIDIR: NoSQL MongoDB Cassandra Gremlin Masa

Azure Cosmos DB'nin Azure Key Vault'tan gizli dizi/anahtar verilerini okuması gerekebilir. Örneğin, Azure Cosmos DB'niz Azure Key Vault'ta depolanan müşteri tarafından yönetilen bir anahtar gerektirebilir. Bunu yapmak için Azure Cosmos DB'nin yönetilen kimlikle yapılandırılması ve ardından yönetilen kimlik erişimine bir Azure Key Vault erişim ilkesi verilmesi gerekir.

Önkoşullar

Önkoşul denetimi

  1. Terminalde veya komut penceresinde Azure Key Vault kaynağınızın, Azure Cosmos DB hesabınızın ve kaynak grubunuzun adlarını , cosmosNameve resourceGroupNameadlı keyVaultNamekabuk değişkenleri olarak depolayın.

    # 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"
    

    Not

    Bu değişkenler sonraki adımlarda yeniden kullanılacaktır. Bu örnekte Azure Cosmos DB hesap adınızın msdocs-cosmos-app, anahtar kasası adınızın msdocs-keyvault ve kaynak grubu adınızın olduğu varsayılır msdocs-cosmos-keyvault-identity.

Azure Cosmos DB'de sistem tarafından atanan yönetilen kimlik oluşturma

İlk olarak, mevcut Azure Cosmos DB hesabı için sistem tarafından atanan bir yönetilen kimlik oluşturun.

Önemli

Bu nasıl yapılır kılavuzunda, sistem tarafından atanan yönetilen kimlik kullandığınız varsayılır. Kullanıcı tarafından atanan yönetilen kimlik kullanılırken adımların çoğu benzerdir.

  1. Komutunu çalıştırarak az cosmosdb identity assign sistem tarafından atanan yeni bir yönetilen kimlik oluşturun.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. kullanarak az cosmosdb identity showsistem tarafından atanan yönetilen kimliğin meta verilerini alın, yalnızca sorgu parametresini kullanarak özelliği döndürecek principalId şekilde filtreleyin ve sonucu adlı principalbir kabuk değişkeninde depolayın.

    principal=$(
        az cosmosdb identity show \
            --resource-group $resourceGroupName \
            --name $cosmosName \
            --query principalId \
            --output tsv
    )
    
    echo $principal
    

    Not

    Bu değişken sonraki bir adımda yeniden kullanılacaktır.

Azure Key Vault erişim ilkesi oluşturma

Bu adımda, önceden yönetilen kimliği kullanarak Azure Key Vault'ta bir erişim ilkesi oluşturun.

  1. az keyvault set-policy Azure Key Vault'ta Azure Cosmos DB yönetilen kimliğine Key Vault'a erişim izni veren bir erişim ilkesi oluşturmak için komutunu kullanın. Özellikle, ilke, , ve import anahtarlarına izin vermek için getanahtar izinleri parametrelerini kullanırlist.

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

Sonraki adımlar