Azure Key Vault를 사용하여 기존 Azure Cosmos DB 계정에 대한 고객 관리형 키 구성

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

현재 새 Azure Cosmos DB 계정을 만드는 동안 고객 관리형 키를 사용하여 미사용 데이터에 대한 두 번째 암호화 계층을 사용하도록 설정하는 기능은 한동안 일반 공급되었습니다. 자연스러운 다음 단계로, 이제 기존 Azure Cosmos DB 계정에서 CMK를 사용하도록 설정하는 기능이 있습니다.

이 기능을 사용하면 CMK를 사용하도록 설정하기 위해 데이터를 새 계정으로 마이그레이션할 필요가 없습니다. 이는 고객의 보안 및 규정 준수 상태를 개선하는 데 도움이 됩니다.

CMK를 사용하도록 설정하면 계정의 모든 기존 데이터를 암호화하는 백그라운드 비동기 프로세스가 시작되고, 새로 들어오는 데이터는 먼저 암호화된 후에 유지됩니다. 비동기 작업이 성공할 때까지 기다릴 필요가 없습니다. 사용 설정 프로세스는 읽기/쓰기 워크로드에 영향을 주지 않도록 미사용/예비 RU를 사용합니다. 계정이 암호화되면 용량을 계획하기 위해 이 링크를 참조할 수 있습니다.

기존 계정에서 CMK를 사용하도록 설정하여 시작

Important

필수 구성 요소 섹션을 자세히 살펴봅니다. 이는 중요한 고려 사항입니다.

필수 조건

새 계정에 대한 고객 관리형 키를 구성하는 동안 필요한 모든 필수 구성 요소는 기존 계정에서 CMK를 사용하도록 설정하는 데 적용됩니다. 여기의 단계를 참조하세요.

Azure Cosmos DB 계정에서 암호화를 사용하도록 설정하면 문서 ID에 약간의 오버헤드가 추가되어 문서 ID의 최대 크기가 1024바이트 대신 990바이트로 제한됩니다. 계정에 ID가 990바이트보다 큰 문서가 있는 경우 해당 문서가 삭제될 때까지 암호화 프로세스가 실패합니다.

계정이 규정을 준수하는지 확인하려면 여기에 호스트된 제공된 콘솔 애플리케이션을 사용하여 계정을 검색할 수 있습니다. 선택한 API에 관계없이 'sqlEndpoint' 계정 속성의 엔드포인트를 사용하고 있는지 확인합니다.

마이그레이션하는 동안 서버 쪽 유효성 검사를 사용하지 않도록 설정하려면 지원에 문의하세요.

기존 계정에서 CMK를 사용하도록 설정하는 단계

기존 계정에서 CMK를 사용하도록 설정하려면 새 계정에서 CMK를 사용하도록 설정할 때와 마찬가지로 계정을 keyVaultKeyUri 속성에서 Key Vault 키 식별자를 설정하는 ARM 템플릿으로 업데이트합니다. 이 단계는 다음 페이로드를 통해 PATCH 호출을 실행하여 수행할 수 있습니다.

    {
        "properties": {
        "keyVaultKeyUri": "<key-vault-key-uri>"
        }
    }

CMK를 사용하도록 설정하기 위한 이 CLI 명령의 출력은 데이터 암호화가 완료될 때까지 기다립니다.

    az cosmosdb update --name "testaccount" --resource-group "testrg" --key-uri "https://keyvaultname.vault.azure.net/keys/key1"

지속적인 백업 또는 분석 저장소 계정을 사용하여 기존 Azure Cosmos DB 계정에서 CMK를 사용하도록 설정하는 단계

지속적인 백업과 특정 시점 복원이 사용하도록 설정된 기존 계정에서 CMK를 사용하도록 설정하려면 몇 가지 추가 단계를 수행해야 합니다. 1단계에서 5단계까지 수행한 다음, 지침에 따라 기존 계정에서 CMK를 사용하도록 설정합니다.

참고 항목

시스템 할당 ID 및 연속 백업 모드는 현재 퍼블릭 미리 보기로 제공되며 나중에 변경될 수 있습니다. 현재 사용자가 할당한 관리 ID만 지속적인 백업 계정에서 CMK를 사용하도록 설정하는 데 지원됩니다.

  1. Cosmos 계정에 대한 관리 ID 구성 Azure Cosmos DB 계정에 대해 Microsoft Entra ID를 사용하여 관리 ID 구성

  2. Cosmos 계정을 업데이트하여 이전 단계에서 추가된 관리 ID를 가리키도록 기본 ID를 설정합니다.

    시스템 관리 ID의 경우:

    az cosmosdb update --resource-group $resourceGroupName  --name $accountName  --default-identity "SystemAssignedIdentity=subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyRG/providers/Microsoft.ManagedIdentity/ systemAssignedIdentities/MyID"
    

    사용자 관리 ID의 경우:

    az cosmosdb update -n $sourceAccountName -g $resourceGroupName --default-identity "UserAssignedIdentity=subscriptions/00000000-0000-0000-0000-00000000/resourcegroups/MyRG/providers/Microsoft.ManagedIdentity/userAssignedIdentities/MyID"
    
  3. 여기의 문서에서 제공한 대로 키 자격 증명 모음을 구성합니다.

  4. 액세스 정책을 이전 단계에서 설정한 기본 ID에 대한 키 자격 증명 모음에 추가합니다.

  5. 키 자격 증명 모음 URI를 설정하도록 Cosmos 계정을 업데이트합니다. 이 업데이트는 계정에서 CMK 사용을 설정하도록 트리거합니다.

    az cosmosdb update --name $accountName --resource-group $resourceGroupName --key-uri $keyVaultKeyURI  
    

알려진 제한 사항

  • CMK를 사용하도록 설정하는 기능은 컬렉션이 아닌 Cosmos DB 계정 수준에서만 사용할 수 있습니다.
  • 기존 Azure Cosmos DB for Apache Cassandra 계정에서 CMK를 사용하도록 설정하는 기능은 지원되지 않습니다.
  • 구체화된 뷰 및 모든 버전 및 삭제 변경 피드 모드에 대해 사용하도록 설정된 기존 계정에서는 CMK 사용을 지원하지 않습니다.
  • CMK를 사용하도록 설정하기 전에 계정에 990바이트보다 큰 ID가 있는 문서가 없어야 합니다. 그렇지 않으면 암호화 후 지원되는 최대 제한인 1,024바이트로 인해 오류가 발생합니다.
  • 기존 데이터를 암호화하는 동안 "지역 추가"와 같은 컨트롤 플레인 작업이 차단됩니다. 이러한 작업은 차단 해제되며 암호화가 완료된 직후에 사용할 수 있습니다.

결과 암호화 진행 상황 모니터링

기존 계정에서 CMK를 사용하도록 설정하는 기능은 모든 기존 데이터를 암호화하는 백그라운드 작업을 시작하는 비동기 작업입니다. CMK를 사용하도록 설정하기 위한 REST API 요청에 따라 응답에서 "Azure-AsyncOperation" URL이 제공됩니다. 이 URL을 GET 요청과 함께 폴링하면 전체 작업 상태가 반환되고 결국에는 성공합니다. 이 메커니즘은 문서에서 자세히 설명하고 있습니다.

Cosmos DB 계정을 계속 사용할 수 있으며, 비동기 작업이 성공할 때까지 기다리지 않고 데이터를 계속 쓸 수 있습니다. CMK를 사용하도록 설정하는 CLI 명령은 데이터 암호화가 완료될 때까지 기다립니다.

추가 질문이 있는 경우 Microsoft 지원에 문의하세요.

FAQ

암호화 시간이 달라지는 요인은 무엇인가요?

CMK를 사용하도록 설정하는 기능은 비동기 작업이며 사용 가능한 충분한 미사용 RU에 따라 달라집니다. 사용량이 적은 시간에 CMK를 사용하도록 설정하는 것이 좋습니다. 해당되는 경우 RU를 미리 늘려 암호화 속도를 높일 수 있습니다. 이는 직접적인 데이터 크기 함수이기도 합니다.

가동 중지 시간에 대비해야 하나요?

CMK를 사용하도록 설정하면 모든 데이터를 암호화하는 백그라운드 비동기 프로세스가 시작됩니다. 비동기 작업이 성공할 때까지 기다릴 필요가 없습니다. Azure Cosmos DB 계정은 읽기 및 쓰기에 사용할 수 있으며 가동 중지 시간이 필요하지 않습니다.

CMK가 트리거되면 RU를 늘릴 수 있나요?

CMK를 트리거하기 전에 RU를 늘리는 것이 좋습니다. CMK가 트리거되면 암호화가 완료될 때까지 일부 컨트롤 플레인 작업이 차단됩니다. 이 차단은 CMK가 트리거된 후 사용자가 RU를 늘리지 못하도록 방지할 수 있습니다.

CMK를 트리거한 후 암호화를 되돌리거나 암호화를 사용하지 않도록 설정할 수 있는 방법이 있나요?

CMK를 사용하는 데이터 암호화 프로세스가 트리거되면 되돌릴 수 없습니다.

기존 계정에서 CMK를 사용하여 암호화를 사용하도록 설정하면 데이터 크기와 읽기/쓰기에 영향을 주나요?

예상한 대로 CMK를 사용하도록 설정하면 추가 암호화/암호 해독 처리를 수용할 수 있도록 데이터 크기와 RU가 약간 증가합니다.

CMK를 사용하도록 설정하기 전에 데이터를 백업해야 하나요?

CMK를 사용하도록 설정해도 데이터 손실의 위협이 되지 않습니다.

정기 백업의 일부로 수행된 이전 백업은 암호화되나요?

아니요. 이전 정기 백업은 암호화되지 않습니다. CMK가 사용하도록 설정된 후 새로 생성된 백업이 암호화됩니다.

PITR(지속적인 백업)에 사용하도록 설정된 기존 계정의 동작은 무엇인가요?

CMK가 설정되면 지속적인 백업에 대해서도 암호화가 설정됩니다. CMK가 사용하도록 설정되면 앞으로 복원된 모든 계정은 CMK가 사용하도록 설정됩니다.

PITR이 사용하도록 설정된 계정에서 CMK를 사용하도록 설정하고 계정을 CMK가 사용하지 않도록 설정된 시점으로 복원하면 어떻게 되나요?

이 경우 CMK는 다음과 같은 이유로 복원된 대상 계정에서 명시적으로 사용하도록 설정됩니다.

  • 계정에서 CMK가 사용하도록 설정되면 CMK를 사용하지 않도록 설정할 수 있는 옵션이 없습니다.
  • 이 동작은 정기적인 백업을 통해 CMK 지원 계정을 복원하는 현재 디자인과 일치합니다.

CMK 마이그레이션이 진행 중인 동안 사용자가 키를 철회하면 어떻게 되나요?

CMK 암호화가 트리거되면 키 상태를 확인합니다. Azure 키 자격 증명 모음의 키가 양호한 상태이면 암호화가 시작되고 추가 확인 없이 프로세스가 완료됩니다. 키가 철회되거나 Azure 키 자격 증명 모음이 삭제되거나 사용할 수 없는 경우에도 암호화 프로세스가 성공합니다.

기존 프로덕션 계정에서 CMK 암호화를 사용하도록 설정할 수 있나요?

예. 필수 구성 요소 섹션을 자세히 살펴봅니다. 먼저 비프로덕션 계정에서 모든 시나리오를 테스트하는 것이 좋으며, 편안해지면 프로덕션 계정을 고려할 수 있습니다.

다음 단계