AKV( Azure Key Vault )의 고객 관리형 키( CMK )를 사용하여 Atlas 에 있는 미사용 미사용 데이터 를 추가로 암호화할 수 있습니다. AKV 에 대한 모든 트래픽이 Azure Private Link 를 사용하도록 구성할 수도 있습니다.
참고
The MongoDB Atlas Shared Responsibility Model defines the complementary duties of MongoDB and its customers in maintaining a secure and resilient data environment. Under this framework, MongoDB manages the security and operational integrity of the underlying platform, while customers are responsible for the configuration, management, and data policies of their specific deployments. For a detailed breakdown of ownership across security and operational excellence, see Shared Responsibility Model.
Atlas uses your Azure Key Vault CMK to encrypt and decrypt your MongoDB Master Keys. These MongoDB Master Keys are used to encrypt cluster database files and cloud providers snapshots. To learn more about how Atlas uses CMKs for encryption, see About Customer-Managed Keys with Azure Key Vault.
자체 클라우드 공급자 KMS를 사용하는 경우 Atlas는 최소한 90 일마다 MongoDB 마스터 키를 자동으로 교체합니다. 키 순환은 구성된 유지 관리 기간이 있는 경우 이 기간 동안 시작됩니다. 유지 보수를 연기하면 (수동 또는 자동으로) 키가 90일을 지나서 로테이션될 수 있습니다. 키는 롤링 방식으로 로테이션하며 프로세스에서 데이터를 다시 기록할 필요가 없습니다.
중요
Azure는 고객 마스터 키의 클라이언트 시크릿 수명을 2년으로 제한합니다. Atlas는 클라이언트 시크릿이 만료되면 고객 마스터 키에 액세스할 수 없습니다. 따라서, 클라이언트 시크릿이 만료되기 전에 순환시켜 클러스터 가용성 손실을 방지하십시오. 시크릿리스 옵션에 대한 학습은 Azure Key Vault 로 고객 키 관리(시크릿리스).를 참조하세요.
이 페이지에서는 Atlas 프로젝트 에서 AKV 를 사용하여 고객 키 관리 를 구성하는 방법을 설명합니다. 또한 Atlas 관리 API 를 사용하여 AKV 에서 Azure Private Link 를 자동으로 설정하다 하여 Atlas 와 AKV 간의 모든 트래픽이 Azure의 비공개 네트워크 인터페이스를 통해 발생하도록 할 수도 있습니다.
참고
Atlas Infinite
Azure Key Vault isn't available for Atlas Infinite during public preview. Atlas Infinite supports customer-managed keys only through AWS KMS during public preview. To learn how encryption at rest works for Atlas Infinite, see Atlas Infinite Encryption.
Atlas 프로젝트의 클러스터에서 활성화하기 전에 해당 프로젝트에 대한 고객 키 관리를 구성해야 합니다.
Azure Key Vault 를 사용한 고객 관리 키 정보
Atlas의 고객 키 관리는 봉투 암호화라는 프로세스를 따릅니다. 이 프로세스는 하나의 키를 다른 키로 암호화하여 여러 계층의 암호화를 생성합니다. 고객 키 관리를 활성화하기 위해 Atlas는 다음과 같은 암호화 키를 사용합니다.
Customer-Managed Key (CMK)Customer-managed keys are encryption keys that you create, own, and manage in Azure Key Vault. You create the CMK in Azure Key Vault and connect it to Atlas at the Project level. To learn more about the CMKs used in Azure Key Vault, see Azure Documentation.
Atlas는 이 키를 MongoDB 마스터 키를 암호화하는 데에만 사용합니다.
MongoDB Master KeyAtlas cluster 의 각 노드 는 MongoDB 마스터 키를 생성합니다. MongoDB 마스터 키는 MongoDB Server 가 데이터베이스별 암호화 키를 암호화하는 데 사용하는 암호화 키입니다. Atlas 는 암호화됨 키 사본을 로컬에 저장합니다.
이 키는 CMK로 암호화되며 데이터베이스별 암호화 키를 암호화합니다.
Per-Database Encryption Key또한 Atlas 클러스터의 각 노드는 클러스터의 데이터베이스별로 암호화 키를 생성합니다. Atlas는 이러한 키를 사용하여 이러한 키를 암호화하고 저장하는 WiredTiger를 통해 데이터를 읽고 씁니다.
이 키는 MongoDB Master Key로 암호화됩니다.
예시
3노드 복제본 세트에 대한 다음 암호화 계층 구조를 고려하세요. Atlas는 Azure Key Vault의 고객 마스터 키를 사용하여 클러스터의 각 노드의 고유한 MongoDB 마스터 키를 암호화합니다. 또한 각 노드에는 데이터베이스가 3개씩 있으며 각 데이터베이스는 고유한 암호화 키로 암호화됩니다. 클러스터가 시작되면 Atlas는 Azure Key Vault의 고객 마스터 키를 사용하여 MongoDB 마스터 키의 암호를 해독하고 이를 MongoDB Server에 제공합니다.
참고
고객 마스터 키의 Atlas의 액세스 권한을 취소하면 Atlas는 클러스터의 노드를 종료하며 고객 마스터 키의 액세스 권한을 복원할 때까지 데이터에 액세스할 수 없습니다.

알아야 할 사항
After configuring Atlas to use your AKV CMK, learn more About Rotating Your Azure Key Identifier and About Azure Key Vault Failover During an Outage.
Azure 키 식별자 순환 정보
MongoDB 마스터 키 - MongoDB의 책임
자체 클라우드 공급자 KMS를 사용하는 경우 Atlas는 최소한 90 일마다 MongoDB 마스터 키를 자동으로 교체합니다. 키 순환은 구성된 유지 관리 기간이 있는 경우 이 기간 동안 시작됩니다. 유지 보수를 연기하면 (수동 또는 자동으로) 키가 90일을 지나서 로테이션될 수 있습니다. 키는 롤링 방식으로 로테이션하며 프로세스에서 데이터를 다시 기록할 필요가 없습니다.
Azure 키 ID 교체 - 사용자의 책임
Atlas는 Azure Key Vault에 사용되는 키 식별자를 자동으로 회전하지 않습니다.
Atlas automatically creates an encryption key rotation alert to remind you to rotate your Azure Key Identifier every 90 days by default when you enable Encryption at Rest for an Atlas project.
You can rotate CMK stored in Azure Key Vault yourself or configure your Azure Key Vault to automatically rotate your keys. If you configure automatic rotation in Azure Key Vault, the default time period for rotation is approximately 365 days.
Azure Key Vault에서 자동 순환을 이미 설정했지만 90일마다 Azure 키 식별자를 순환하도록 Atlas 알림을 받지 않으려면 기본 알림 기간을 365일보다 길게 수정할 수 있습니다.
운영 중단 중 Azure Key Vault 페일오버 정보
리전 중단 시 AKV 리전 사용할 수 없게 될 수 있습니다. 이 경우 Azure 는 들어오는 Key Vault 요청을 미리 할당된 세컨더리 리전으로 자동 라우팅합니다. 자세한 학습 은 Azure Key Vault 페일오버 및 리전 페어링을 참조하세요.
두 리전 모두 다운된 경우 리전 페어링 외부의 리전 으로 키를 수동으로 마이그레이션 할 수 있습니다. 자세한 학습 은 리전 간 Key Vault 이동을 참조하세요.
참고
고객 키 관리를 사용한 미사용 데이터 암호화를 활성화한 경우, 운영 중단 중에도 하나 이상의 노드 를 계속 사용할 수 있는 동안 암호화 및 암호 해독 작업을 수행할 수 있습니다. Atlas 는 클러스터를 종료하지 않습니다.
특정 리전의 경우 Azure 는 자동 페일오버 를 지원 하지 않습니다. 학습 내용은 Azure 설명서를 참조하세요.
필요한 액세스 권한
고객 키 관리를 구성하려면 프로젝트에 대한 Project Owner 액세스 권한이 있어야 합니다.
2} 액세스 권한이 있는 사용자는 프로젝트에 자신을 으로 추가해야 Organization Owner Project Owner 합니다.
Permission Model을(를) 사용하여 Atlas에 AKV에 대한 액세스를 부여해야 합니다. 키 볼트 액세스 정책 또는 Azure RBAC를 사용하여 액세스를 부여할 수 있습니다.
데이터 플레인 권한을 부여하기 전에 먼저 서비스 주체에 독자 역할을 할당해야 합니다. 이는 두 권한 모델(RBAC 및 액세스 정책)에 모두 필요합니다.
PowerShell
New-AzRoleAssignment ` -ObjectId "<SERVICE_PRINCIPAL_ID>" ` -RoleDefinitionName "Reader" ` -Scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT_NAME>"
Azure CLI
az role assignment create \ --assignee-object-id "<SERVICE_PRINCIPAL_ID>" \ --assignee-principal-type ServicePrincipal \ --role "Reader" \ --scope "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT_NAME>"
독자 역할을 할당한 후 다음 권한 모델 중 하나를 사용하여 데이터 플레인 권한을 부여합니다.
액세스 정책을 사용하는 경우 Azure UI 에서 다음을 수행하여 AKV에 대한 Atlas 액세스 을 부여합니다.
Follow the Azure documentation to grant the
Microsoft.KeyVault/vaults/readpermission to your application in the Access Control (IAM) settings:역할 할당을 추가할 때 Key Vault Reader 역할을 선택합니다.
노드를 선택할 때 애플리케이션을 선택합니다.
Access Policies 페이지에서 다음 Key Permissions을 사용하여 액세스 정책을 만듭니다.
이 권한 부여...다음으로...get
AKV에 저장된 키에 대한 메타데이터 읽습니다.
Encrypt
AKV의 키를 사용하여 데이터를 암호화합니다.
암호 해독
AKV의 키를 사용하여 이전에 해당 키로 암호화됨 된 데이터를 해독합니다.
동일한 앱 주체로 추가하고 액세스 정책을 구성합니다.
Azure 문서 의 지시에 따라 새 RSA 키를 만듭합니다. 키 버전 세부 정보를 열고 Key Identifier URI를 복사합니다. 이 URI는 다음 단계에서 Atlas를 구성하는 데 필요합니다.
AKV 가 RBAC 를 사용하는 경우, Azure UI Access Control (IAM) 설정에서 다음을 수행하여 AKV 에 대한 Atlas 액세스를 부여해야 합니다.
애플리케이션 에 다음
actions권한을 부여합니다.이 권한 부여...다음으로...Microsoft.KeyVault/vaults/read키 볼트 속성 읽기
Microsoft.KeyVault/vaults/keys/readAKV에 저장된 키에 대한 메타데이터 읽습니다.
{ "permissions": [ { "actions": [ "Microsoft.KeyVault/vaults/read" "Microsoft.KeyVault/vaults/keys/read" ] } ... ] } 애플리케이션 에 다음
dataActions권한을 부여합니다.이 권한 부여...다음으로...Microsoft.KeyVault/vaults/keys/readAKV에 저장된 키에 대한 메타데이터 읽습니다.
Microsoft.KeyVault/vaults/keys/encrypt/actionAKV의 키를 사용하여 데이터를 암호화합니다.
Microsoft.KeyVault/vaults/keys/decrypt/actionAKV의 키를 사용하여 이전에 해당 키로 암호화됨 데이터를 해독합니다.
{ "permissions": [ ... { "dataActions": [ "Microsoft.KeyVault/vaults/keys/read", "Microsoft.KeyVault/vaults/keys/encrypt/action", "Microsoft.KeyVault/vaults/keys/decrypt/action" ] } ] }
다음 단계
공용 네트워크 또는 Azure 비공개 엔드포인트를 통해 AKV( Azure Key Vault )의 고객 관리형 키( CMK )를 사용할 수 있습니다. 학습 내용은 다음을 참조하세요.
Azure 비공개 엔드포인트를 사용하는 경우,Azure 리소스 잠금이 비공개 엔드포인트 생성 및 삭제를 차단할 수 있는 방법을 학습하려면 Azure 리소스 잠금 을 참조하세요.
참고
고객 키 관리를 사용해 미사용 데이터 암호화를 활성화한 경우 장애 시에도 하나 이상의 노드를 계속 사용할 수 있는 동안 암호화 및 복호화 작업을 수행할 수 있습니다.
검색 노드에 고객 관리형 키 활성화
By default, MongoDB and search processes run on the same nodes. With this architecture, customer-managed encryption applies to your database data, but it does not apply to search indexes.
전용 검색 노드를 활성화 하면 검색 프로세스가 별도의 노드에서 실행 . 이를 통해 검색 노드 데이터 암호화를 활성화 할 수 있으므로 동일한 고객 관리 키로 데이터베이스 데이터와 검색 인덱스를 모두 암호화하여 포괄적인 암호화 적용 범위를 확보할 수 있습니다.
공개 미리 보기 기간 동안에는 Atlas Infinite 클러스터 클러스터에서 전용 검색 노드가 지원되지 않습니다.
참고
Database nodes and Search Nodes use different encryption methods with the same customer-managed keys. Database nodes use the WiredTiger Encrypted Storage Engine, while Search Nodes use encryption at the disk level.
중요
이 기능은 KMS 제공자 전반에서 사용할 수 있습니다.