관리 ID를 사용하여 Azure Cosmos DB에서 Azure Key Vault에 액세스

적용 대상: NoSQL MongoDB Cassandra Gremlin 테이블

Azure Cosmos DB는 Azure Key Vault에서 비밀/키 데이터를 읽어야 할 수 있습니다. 예를 들어 Azure Cosmos DB에는 Azure Key Vault에 저장된 고객 관리형 키가 필요할 수 있습니다. 이렇게 하려면 Azure Cosmos DB를 관리 ID로 구성한 다음, Azure Key Vault 액세스 정책에서 관리 ID 액세스 권한을 부여해야 합니다.

필수 조건

필수 구성 요소 확인

  1. 터미널 또는 명령 창에서 Azure Key Vault 리소스, Azure Cosmos DB 계정 및 리소스 그룹의 이름을 keyVaultName, cosmosNameresourceGroupName이라는 셸 변수로 저장합니다.

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

    참고 항목

    이러한 변수는 이후 단계에서 다시 사용됩니다. 이 예제에서는 Azure Cosmos DB 계정 이름이 msdocs-cosmos-app, 키 자격 증명 모음 이름이 msdocs-keyvault, 리소스 그룹 이름이 msdocs-cosmos-keyvault-identity라고 가정합니다.

Azure Cosmos DB에서 시스템 할당 관리 ID 만들기

먼저 기존 Azure Cosmos DB 계정에 대한 시스템 할당 관리 ID를 만듭니다.

Important

이 방법 가이드에서는 시스템 할당 관리 ID를 사용한다고 가정합니다. 대부분의 단계는 사용자 할당 관리 ID를 사용할 때와 비슷합니다.

  1. az cosmosdb identity assign을 실행하여 새로운 시스템이 할당한 관리 ID를 만듭니다.

    az cosmosdb identity assign \
        --resource-group $resourceGroupName \
        --name $cosmosName 
    
  2. az cosmosdb identity show를 사용하여 시스템 할당 관리 ID의 메타데이터를 검색하고, 쿼리 매개 변수를 사용하여 principalId 속성만 반환하도록 필터링하고, 결과를 principal이라는 셸 변수에 저장합니다.

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

    참고 항목

    이 변수는 이후 단계에서 다시 사용됩니다.

Azure Key Vault 액세스 정책 만들기

이 단계에서는 이전에 관리된 ID를 사용하여 Azure Key Vault에서 액세스 정책을 만듭니다.

  1. az keyvault set-policy 명령을 사용하여 Azure Cosmos DB 관리 ID에 Key Vault 액세스 권한을 부여하는 액세스 정책을 Azure Key Vault에서 만듭니다. 특히, 정책은 key-permissions 매개 변수를 사용하여 get, listimport 키에 권한을 부여합니다.

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

다음 단계

  • Azure Key Vault의 고객 관리형 키를 Azure Cosmos DB 계정으로 사용하려면 고객 관리형 키 구성을 참조하세요.
  • Azure Key Vault를 사용하여 비밀을 관리하려면 보안 자격 증명을 참조하세요.