Bagikan melalui


Mengakses Azure Key Vault dari Azure Cosmos DB menggunakan identitas terkelola

Azure Cosmos DB mungkin perlu membaca data rahasia/kunci dari Azure Key Vault. Misalnya, Azure Cosmos DB Anda mungkin memerlukan kunci yang dikelola pelanggan dan disimpan di Azure Key Vault. Untuk melakukan ini, Azure Cosmos DB harus dikonfigurasi dengan identitas terkelola, lalu kebijakan akses Azure Key Vault harus memberikan akses identitas terkelola.

Prasyarat

Pemeriksaan prasyarat

  1. Di terminal atau jendela perintah, simpan nama sumber daya Azure Key Vault Anda, akun Azure Cosmos DB, dan grup sumber daya sebagai variabel shell bernama keyVaultName, cosmosName, dan 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"
    

    Catatan

    Variabel ini akan digunakan kembali di langkah-langkah selanjutnya. Contoh ini mengasumsikan nama akun Azure Cosmos DB Anda adalah msdocs-cosmos-app, nama brankas kunci Anda adalah msdocs-keyvault, dan nama grup sumber daya Anda adalah msdocs-cosmos-keyvault-identity.

Membuat identitas terkelola yang ditetapkan sistem di Azure Cosmos DB

Pertama, buat identitas terkelola yang ditetapkan sistem untuk akun Azure Cosmos DB yang ada.

Penting

Panduan cara penggunaan ini mengasumsikan bahwa Anda menggunakan identitas terkelola yang ditetapkan sistem. Banyak langkah yang serupa saat menggunakan identitas terkelola yang ditetapkan pengguna.

  1. Jalankan az cosmosdb identity assign untuk membuat identitas terkelola yang ditetapkan sistem baru.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. Ambil metadata dari identitas terkelola yang ditetapkan sistem menggunakan az cosmosdb identity show, filter hanya untuk mengembalikan properti principalId menggunakan parameter kueri, dan simpan hasilnya dalam variabel shell bernama principal.

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

    Catatan

    Variabel ini akan digunakan kembali di langkah selanjutnya.

Membuat kebijakan akses Azure Key Vault

Dalam langkah ini, buatlah kebijakan akses di Azure Key Vault menggunakan identitas terkelola sebelumnya.

  1. Gunakan perintah az keyvault set-policy untuk membuat kebijakan akses di Azure Key Vault yang memberikan izin identitas terkelola Azure Cosmos DB untuk mengakses Key Vault. Secara khusus, kebijakan akan menggunakan parameter izin kunci untuk memberikan izin ke kunci get, list, dan import.

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

Langkah berikutnya