이 문서에서는 Azure DocumentDB에서 미사용 데이터 암호화를 위해 CMK(고객 관리형 키) 를 구성하는 방법에 대해 알아봅니다. 이 가이드의 단계에서는 새 Azure DocumentDB 클러스터, 복제본 클러스터 또는 복원된 클러스터를 구성합니다. CMK 설정은 Azure Key Vault 및 사용자 할당 관리 ID에 저장된 고객 관리형 키를 사용합니다.
필수 조건
Azure 구독
- Azure 구독이 없는 경우 체험 계정 만들기
사용자 할당 관리 ID 및 Azure Key Vault 준비
MonogDB용 Azure DocumentDB 클러스터에서 고객 관리형 키 암호화를 구성하려면 사용자 할당 관리 ID, Azure Key Vault 인스턴스 및 올바르게 구성된 권한이 필요합니다.
중요합니다
CMK를 구성하는 데 사용되는 사용자 할당 관리 ID 및 Azure Key Vault 인스턴스는 Azure DocumentDB 클러스터가 호스트되고 모두 동일한 Microsoft 테넌트에 속하는 동일한 Azure 지역에 있어야 합니다.
Azure Portal 사용:
아직 없는 경우 클러스터 지역에 사용자 할당 관리 ID를 하나 만듭니다.
아직 하나의 키 저장소를 만들지 않은 경우 클러스터 지역에 하나의 Azure Key Vault를 만듭니다.
요구 사항을 충족하는지 확인합니다. 또한 키 저장소를 구성하기 전과 키를 만들고 필요한 권한을 사용자 할당 관리 ID에 할당하기 전에 권장 사항을 따릅니다.
키 저장소에 하나의 키를 만듭니다.
요구 사항에 설명된 대로 Azure Key Vault 인스턴스에 사용자 할당 관리 ID 권한을 부여합니다.
새 Azure DocumentDB 클러스터를 프로비전하는 동안 클러스터 데이터 암호화에 대한 서비스 관리 또는 고객 관리형 키가 암호화 탭에 구성됩니다. 데이터 암호화에 대한 고객 관리형 키를 선택합니다.
사용자 할당 관리 ID 섹션에서 ID 변경을 선택합니다.
사용자 할당 관리 ID 목록에서 클러스터에서 Azure Key Vault에 저장된 데이터 암호화 키에 액세스하는 데 사용할 ID를 선택합니다.
추가를 선택합니다.
키 선택 방법에서 키 선택을 선택합니다.
키 섹션에서 키 변경을 선택합니다.
키 선택 창에서 키 자격 증명 모음의 Azure Key Vault 및 키의 암호화 키를 선택하고 선택을 선택하여 선택 항목을 확인합니다.
중요합니다
선택한 Azure Key Vault 인스턴스는 Azure DocumentDB 클러스터가 호스트될 동일한 Azure 지역에 있어야 합니다.
암호화 탭에서 선택한 사용자 할당 관리 ID 및 암호화 키를 확인하고 검토 + 만들기를 선택하여 클러스터를 만듭니다.
명령을 통해 새 클러스터를 프로비전하는 동안 사용자 할당 암호화 키를 사용하여 데이터 암호화를 az rest 사용하도록 설정할 수 있습니다.
다음 콘텐츠를 사용하여 JSON 파일을 만듭니다. 기호로 $ 시작하는 자리 표시자를 실제 값으로 바꾸고 파일을 저장합니다.
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$userAssignedIdentityName": {}
}
},
"location": "$regionName",
"properties": {
"administrator": {
"userName": "$adminName",
"password": "$complexPassword"
},
"serverVersion": "8.0",
"storage": {
"sizeGb": 32
},
"compute": {
"tier": "M40"
},
"sharding": {
"shardCount": 1
},
"highAvailability": {
"targetMode": "ZoneRedundantPreferred"
},
"encryption": {
"customerManagedKeyEncryption": {
"keyEncryptionKeyIdentity": {
"identityType": "UserAssignedIdentity",
"userAssignedIdentityResourceId": "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$userAssignedIdentityName"
},
"keyEncryptionKeyUrl": "$encryptionKeyUrl"
}
}
}
}
비고
keyEncryptionKeyUrl 키 이름은 포함해야 하지만 특정 키 버전은 포함하지 않아야 합니다.
다음 Azure CLI 명령을 실행하여 REST API를 호출하여 Azure DocumentDB 클러스터를 만듭니다. 변수 섹션의 자리 표시자와 명령줄의 --body 매개 변수 az rest 에 대한 파일 이름을 실제 값으로 바꿉니다.
# Define your variables
$randomIdentifier = (New-Guid).ToString().Substring(0,8)
$subscriptionId="00000000-0000-0000-0000-000000000000"
$resourceGroup="DocumentDB"
$mongoClustersName="msdocscr$randomIdentifier"
# Execute the az rest command to make REST API call
az rest --method "PUT" --url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DocumentDB/mongoClusters/${mongoClustersName}?api-version=2025-09-01 --body @jsonFileFromThePreviousStep.json
CMK를 사용하도록 설정된 클러스터의 데이터 암호화 설정 업데이트
고객 관리형 키를 사용하여 데이터 암호화를 사용하여 배포된 기존 클러스터의 경우 몇 가지 구성 변경을 수행할 수 있습니다. 암호화 키가 저장되는 키 자격 증명 모음과 고객 관리형 키로 사용되는 암호화 키를 변경할 수 있습니다. 서비스에서 키 저장소에 보관된 암호화 키에 액세스하는 데 사용하는 사용자 할당 관리 ID를 변경할 수도 있습니다.
클러스터 사이드바의 설정에서 데이터 암호화를 선택합니다.
사용자 할당 관리 ID 섹션에서 ID 변경을 선택합니다.
사용자 할당 관리 ID 목록에서 클러스터에서 Azure Key Vault에 저장된 데이터 암호화 키에 액세스하는 데 사용할 ID를 선택합니다.
추가를 선택합니다.
키 선택 방법에서 키 선택을 선택합니다.
키에서 키 변경을 선택합니다.
키 선택 창에서 키 자격 증명 모음의 Azure Key Vault 및 키의 암호화 키를 선택하고 선택을 선택하여 선택 항목을 확인합니다.
중요합니다
선택한 Azure Key Vault 인스턴스는 Azure DocumentDB 클러스터가 호스트되는 동일한 Azure 지역에 있어야 합니다.
데이터 암호화 페이지에서 선택한 사용자 할당 관리 ID 및 암호화 키를 확인하고 저장을 선택하여 선택 항목을 확인하고 복제본 클러스터를 만듭니다.
REST API 호출을 통해 기존 클러스터에서 데이터 암호화에 대한 사용자 할당 관리 ID 및 암호화 키를 변경할 수 있습니다.
다음 콘텐츠를 사용하여 JSON 파일을 만듭니다. 기호로 $ 시작하는 자리 표시자를 실제 값으로 바꾸고 파일을 저장합니다.
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$userAssignedIdentityName": {}
}
},
"location": "$regionName",
"properties": {
"encryption": {
"customerManagedKeyEncryption": {
"keyEncryptionKeyIdentity": {
"identityType": "UserAssignedIdentity",
"userAssignedIdentityResourceId": "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$userAssignedIdentityName"
},
"keyEncryptionKeyUrl": "$encryptionKeyUrl"
}
}
}
}
비고
keyEncryptionKeyUrl 키 이름은 포함해야 하지만 특정 키 버전은 포함하지 않아야 합니다.
다음 Azure CLI 명령을 실행하여 REST API를 호출하여 Azure DocumentDB 클러스터를 만듭니다. 변수 섹션의 자리 표시자와 명령줄의 --body 매개 변수 az rest 에 대한 파일 이름을 실제 값으로 바꿉니다.
# Define your variables
$subscriptionId="00000000-0000-0000-0000-000000000000"
$resourceGroup="resourceGroupName"
$mongoClustersName="clusterName"
# Execute the az rest command to make REST API call
az rest --method "PUT" --url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DocumentDB/mongoClusters/${mongoClustersName}?api-version=2025-09-01 --body @jsonFileFromThePreviousStep.json
키에 액세스하는 데 사용되는 사용자 할당 관리 ID만 변경하거나 데이터 암호화에 사용되는 키만 변경하거나 동시에 변경하려는 경우 JSON 파일에 나열된 모든 매개 변수를 제공해야 합니다.
지정된 키 또는 사용자 할당 관리 ID가 없으면 오류가 발생합니다.
매개 변수로 전달된 ID가 존재하고 유효한 경우 Azure DocumentDB 클러스터와 연결된 사용자 할당 관리 ID 목록에 자동으로 추가됩니다. 나중에 다른 오류와 함께 명령이 실패하더라도 이 경우입니다.
기존 클러스터의 데이터 암호화 모드 변경
데이터 암호화에 서비스 관리형 키 또는 CMK(고객 관리형 키)를 사용할지 여부를 결정할 수 있는 유일한 지점은 클러스터를 만드는 시간입니다. 해당 결정을 내리고 클러스터를 만든 후에는 두 옵션 간에 전환할 수 없습니다. 다른 암호화 옵션을 사용하여 Azure DocumentDB 클러스터의 복사본을 만들려면 복제본 클러스터를 만들 거나 클러스터 복원을 수행하고 복제본 클러스터 또는 복원된 클러스터를 만드는 동안 새 암호화 모드를 선택할 수 있습니다.
복제본 클러스터를 만드는 동안 CMK(고객 관리형 키) 데이터 암호화 사용 또는 사용 안 함
다음 단계에 따라 CMK 또는 SMK 데이터 암호화를 사용하여 복제본 클러스터에서 CMK를 사용하거나 사용하지 않도록 설정하는 복제본 클러스터를 만듭니다.
클러스터 사이드바의 설정에서 전역 배포를 선택합니다.
새 읽기 복제본 추가를 선택합니다.
읽기 복제본 이름 필드에 복제본 클러스터 이름을 제공합니다.
읽기 복제본 지역에서 지역을 선택합니다. 복제본 클러스터는 선택한 Azure 지역에서 호스트됩니다.
비고
복제본 클러스터는 항상 기본(읽기-쓰기) 클러스터와 동일한 Azure 구독 및 리소스 그룹에 만들어집니다.
데이터 암호화 섹션에서 고객 관리형 키를 선택하여 CMK 또는 서비스 관리형 키를 사용하여 복제본 클러스터에서 CMK를 사용하지 않도록 설정합니다.
사용자 할당 관리 ID 섹션에서 ID 변경을 선택합니다.
사용자 할당 관리 ID 목록에서 클러스터에서 Azure Key Vault에 저장된 데이터 암호화 키에 액세스하는 데 사용할 ID를 선택합니다.
추가를 선택합니다.
키 선택 방법에서 키 선택을 선택합니다.
키에서 키 변경을 선택합니다.
키 선택 창에서 키 자격 증명 모음의 Azure Key Vault 및 키의 암호화 키를 선택하고 선택을 선택하여 선택 항목을 확인합니다.
전역 배포 페이지에서 선택한 사용자 할당 관리 ID 및 암호화 키를 확인하고 저장을 선택하여 선택 항목을 확인하고 복제본 클러스터를 만듭니다.
동일한 지역에서 CMK를 사용하도록 설정된 복제본 클러스터를 만들려면 다음 단계를 수행합니다.
다음 콘텐츠를 사용하여 JSON 파일을 만듭니다. 기호로 $ 시작하는 자리 표시자를 실제 값으로 바꾸고 파일을 저장합니다.
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$userAssignedIdentityName": {}
}
},
"location": "$targetRegionName",
"properties": {
"createMode": "GeoReplica",
"replicaParameters": {
"sourceResourceId": "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DocumentDB/mongoClusters/$sourceClusterName",
"sourceLocation": "sourceRegionName"
},
"encryption": {
"customerManagedKeyEncryption": {
"keyEncryptionKeyIdentity": {
"identityType": "UserAssignedIdentity",
"userAssignedIdentityResourceId": "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$userAssignedIdentityName"
},
"keyEncryptionKeyUrl": "$encryptionKeyUrl"
}
}
}
}
비고
keyEncryptionKeyUrl 키 이름은 포함해야 하지만 특정 키 버전은 포함하지 않아야 합니다.
다음 Azure CLI 명령을 실행하여 REST API를 호출하여 Azure DocumentDB 클러스터를 만듭니다. 변수 섹션의 자리 표시자와 명령줄의 --body 매개 변수 az rest 에 대한 파일 이름을 실제 값으로 바꿉니다.
# Define your variables
$subscriptionId="00000000-0000-0000-0000-000000000000"
$resourceGroup="resourceGroupName"
$mongoClustersName="clusterName"
# Execute the az rest command to make REST API call
az rest --method "PUT" --url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DocumentDB/mongoClusters/${mongoClustersName}?api-version=2025-09-01 --body @jsonFileFromThePreviousStep.json
클러스터 복원 중에 CMK(고객 관리형 키) 데이터 암호화 사용 또는 사용 안 함
복원 프로세스는 원본과 동일한 Azure 지역, 구독 및 리소스 그룹에 동일한 구성을 사용하여 새 클러스터를 만듭니다. CMK 또는 SMK를 사용하도록 설정된 복원된 클러스터를 만들려면 다음 단계를 수행합니다.
기존 Azure DocumentDB 클러스터를 선택합니다.
클러스터 사이드바의 설정에서 특정 시점 복원을 선택합니다.
날짜 및 시간 필드에 날짜를 선택하고 시간(UTC 시간대)을 입력하세요.
복원 대상 클러스터 이름 필드에 클러스터 이름을 입력합니다.
관리자 사용자 이름 필드에 복원된 클러스터의 클러스터 관리자 이름을 입력합니다.
암호 및암호 확인 필드에 관리자 역할의 암호를 입력합니다.
데이터 암호화 섹션에서 CMK를 사용하도록 설정하려면 고객 관리형 키를 선택합니다. 복원된 클러스터에서 CMK를 사용하지 않도록 설정해야 하는 경우 서비스 관리형 키를 선택합니다.
사용자 할당 관리 ID 섹션에서 ID 변경을 선택합니다.
사용자 할당 관리 ID 목록에서 클러스터에서 Azure Key Vault에 저장된 데이터 암호화 키에 액세스하는 데 사용할 ID를 선택합니다.
추가를 선택합니다.
키 선택 방법에서 키 선택을 선택합니다.
키에서 키 변경을 선택합니다.
키 선택 창에서 키 자격 증명 모음의 Azure Key Vault 및 키의 암호화 키를 선택하고 선택을 선택하여 선택 항목을 확인합니다.
제출을 선택하여 클러스터 복원을 시작합니다.
CMK를 사용하도록 설정된 클러스터를 복원하려면 다음 단계를 수행합니다.
다음 콘텐츠를 사용하여 JSON 파일을 만듭니다. 기호로 $ 시작하는 자리 표시자를 실제 값으로 바꾸고 파일을 저장합니다.
{
"identity": {
"type": "UserAssigned",
"userAssignedIdentities": {
"/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$userAssignedIdentityName": {}
}
},
"location": "$regionName",
"properties": {
"administrator": {
"userName": "$adminName"
},
"createMode": "PointInTimeRestore",
"restoreParameters": {
"pointInTimeUTC": "yyyy-mm-ddThh:mm:ssZ",
"sourceResourceId": "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DocumentDB/mongoClusters/$restoredClusterName"
},
"encryption": {
"customerManagedKeyEncryption": {
"keyEncryptionKeyIdentity": {
"identityType": "UserAssignedIdentity",
"userAssignedIdentityResourceId": "/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/$userAssignedIdentityName"
},
"keyEncryptionKeyUrl": "$encryptionKeyUrl"
}
}
}
}
비고
keyEncryptionKeyUrl 키 이름은 포함해야 하지만 특정 키 버전은 포함하지 않아야 합니다.
다음 Azure CLI 명령을 실행하여 REST API를 호출하여 Azure DocumentDB 클러스터를 만듭니다. 변수 섹션의 자리 표시자와 명령줄의 --body 매개 변수 az rest 에 대한 파일 이름을 실제 값으로 바꿉니다.
# Define your variables
$subscriptionId="00000000-0000-0000-0000-000000000000"
$resourceGroup="resourceGroupName"
$mongoClustersName="clusterName"
# Execute the az rest command to make REST API call
az rest --method "PUT" --url https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DocumentDB/mongoClusters/${mongoClustersName}?api-version=2025-09-01 --body @jsonFileFromThePreviousStep.json
복원된 클러스터가 만들어지면 복원 후 작업 목록을 검토합니다.
관련 콘텐츠