공용 네트워크를 통한 AWS 고객 키 관리
Amazon Web Services KMS 에서 생성, 소유, 관리 고객 관리형 키( CMK )를 사용하여 Atlas 에 있는 미사용 데이터 암호화하세요.
이 페이지에서는 Atlas 프로젝트 와 해당 프로젝트 의 클러스터에서 Amazon Web Services KMS 사용하여 고객 키 관리 구성하는 방법을 설명합니다.
전제 조건
MongoDB 프로젝트의 AWS KMS에서 고객 관리형 키를 활성화하려면 다음을 수행해야 합니다.
M10 이상의 클러스터를 사용해야 합니다.
충분한 권한이 있는 AWS IAM 역할이 있어야 합니다. Atlas에는 키로 다음 조치를 수행할 수 있는 권한이 있어야 합니다:
참고
AWS KMS 키를 생성한 IAM 역할 대신 다른 AWS 계정의 AWS IAM 역할과 함께 AWS KMS 키를 사용하려면 충분한 권한이 있는지 확인합니다.
외부 AWS 계정을 포함하도록 AWS KMS 키 아래에 키 정책 설명(statement)을 추가합니다.
외부 AWS 계정의 IAM 역할에 대한 IAM 인라인 정책을 추가합니다.
IAM 역할 및 고객 마스터 키에 대한 종합적인 설명은 AWS 설명서를 참조하세요.
위 권한을 확인한 후 일반적인 단계에 따라 Atlas에서 KMS 설정을 구성할 수 있습니다. 단, 다음과 같은 경우는 예외입니다.
Amazon Web Services KMS 키에 대한 전체 ARN을 제공해야 합니다(예:
arn:aws:kms:eu-west-2:111122223333:key/12345678-1234-1234-1234-12345678
) 대신 마스터 키 ID (예:12345678-1234-1234-1234-12345678
)를 Amazon Web Services KMS 키 ID 필드에 입력합니다.
IAM 역할을 만드는 방법을 알아보려면 AWS 설명서에서 IAM 역할을 참조하세요.
Atlas는 미사용 데이터 암호화가 활성화된 프로젝트의 모든 클러스터에 대해 동일한 IAM 역할 및 AWS KMS 키 설정을 사용합니다.
Amazon Web Services KMS 구성에 필요한 경우 Atlas IP 주소 및 클러스터 노드의 공용 IP 주소 또는 DNS 호스트 이름에서 액세스 허용하여 Atlas KMS 와 통신할 수 있도록 합니다. 정책 문서 에 IP 주소 주소 연산자를 구성하여 managed IAM 역할 정책에 IP 주소를 포함해야 합니다. 노드 IP 주소가 변경되는 경우 연결이 중단되지 않도록 구성을 업데이트 해야 합니다.
절차
프로젝트의 암호화 키에 역할 기반 액세스 활성화
AtlasGo Atlas 에서 프로젝트 의 Advanced 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.
고급 페이지가 표시됩니다.
Authorize a new IAM role 링크를 클릭하여 미사용 데이터 암호화를 위해 AWS KMS 키에 액세스할 수 있도록 Atlas에 AWS IAM 역할을 부여합니다.
미사용 데이터 암호화를 위한 AWS KMS 키에 액세스하려면, AWS CLI를 사용하여 새 역할 생성 절차를 따라 새로운 AWS IAM 역할을 생성합니다. 기존의 AWS IAM 역할을 승인하려면 기존 역할에 신뢰 관계 추가 절차를따르세요.
AWS 콘솔 또는 CLI를 통해 AWS IAM 역할에 액세스 정책을 추가하십시오. 자세한 내용은 IAM 정책 관리하기를 참조하세요.
참고
이 정책 문서는 MongoDB의 AWS 주체가 고객의 KMS 키를 암호화 및 복호화 작업에 사용할 수 있도록 허용합니다. Atlas 주체는 비밀이 아니며 모든 Atlas 고객에게 사용됩니다. 이 계정은 매우 제한적이고 목적이 한정된 AWS 계정이며, IAM 사용자 외에는 리소스가 없습니다. 정책 문서의 ExternalId
는 각 Atlas 프로젝트마다 고유하지만 비밀이 아닙니다. ExternalId
는 교차 컨텍스트(혼동된 대리인) 취약성을 완화하는 데 사용됩니다. 모든 고객의 키에 액세스하기 위해 공통 주체를 사용하는 Atlas의 방식은 여기에서 설명된 Amazon의 권장 액세스 방식입니다.
미사용 데이터 암호화에 대한 액세스 정책은 다음과 유사합니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:123456789012:key/12x345y6-7z89-0a12-3456-xyz123456789" ] } ] }
cloudProviderAccess
엔드포인트로 POST 요청을 전송합니다.
API 엔드포인트를 사용하여 새 AWS IAM 역할을 생성합니다. Atlas는 AWS 계정 인증에 이 역할을 사용합니다.
다음 단계에서 사용할 수 있도록 반환된 필드 값 atlasAWSAccountArn
및 atlasAssumedRoleExternalId
를 준비해 두세요.
AWS IAM 역할 신뢰 정책을 수정합니다.
AWS 관리 콘솔에 로그인합니다.
Identity and Access Management (IAM) 서비스로 이동합니다.
왼쪽 탐색에서 Roles 을 선택합니다.
역할 목록에서 Atlas 액세스에 사용하려는 기존 IAM 역할을 클릭합니다.
0}Trust Relationships 탭을 선택합니다.
Edit trust relationship 버튼을 클릭합니다.
Policy Document를 편집합니다. 다음 내용이 포함된 새
Statement
객체를 추가합니다.참고
이 정책 문서는 MongoDB의 AWS 주체가 고객의 KMS 키를 암호화 및 복호화 작업에 사용할 수 있도록 허용합니다. Atlas 주체는 비밀이 아니며 모든 Atlas 고객에게 사용됩니다. 이 계정은 매우 제한적이고 목적이 한정된 AWS 계정이며, IAM 사용자 외에는 리소스가 없습니다. 정책 문서의
ExternalId
는 각 Atlas 프로젝트마다 고유하지만 비밀이 아닙니다.ExternalId
는 교차 컨텍스트(혼동된 대리인) 취약성을 완화하는 데 사용됩니다. 모든 고객의 키에 액세스하기 위해 공통 주체를 사용하는 Atlas의 방식은 여기에서 설명된 Amazon의 권장 액세스 방식입니다.참고
1단계에서 강조 표시된 줄을 API 호출에서 반환된 값으로 바꿉니다.
{ "Version": "2020-03-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "<atlasAWSAccountArn>" }, "Action:" "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "<atlasAssumedRoleExternalId>" } } } ] } Update Trust Policy 버튼을 클릭합니다.
새 IAM 역할에 권한을 부여합니다.
API 엔드포인트를 사용하여 새로운 IAM 가정 역할 ARN을 승인하고 구성합니다. API 호출이 성공하면 AWS를 사용하는 Atlas 서비스를 구성할 때 roleId
값을 사용할 수 있습니다.
프로젝트에서 역할 권한 부여를 통해 AWS KMS 활성화
PATCH
요청을 encodingAtRest API 엔드포인트로 전송하여 권한이 부여된 AWS IAM 역할 ID로 awsKms.roleId
필드를 업데이트합니다.
예시
curl --user "{public key}:{private key}" --digest \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --include \ --request PATCH \ "https://cloud.mongodb.com/api/atlas/v1.0/groups/{groupId}/encryptionAtRest?pretty=true&envelope=true" \ --data ' { "awsKms": { "enabled": true, "roleId": "<roleId>", "customerMasterKeyID": "<master-key-id>", "region": "<aws-region>" } }'
프로젝트의 암호화 키에 대한 역할 기반 액세스 활성화 후, Atlas cluster에 대한 고객 키 관리 활성화에 따라 프로젝트의 각 Atlas 클러스터에 대해 고객 관리 키를 활성화.
프로젝트의 암호화 키를 역할 기반 액세스로 전환
2620211월부터, Amazon Web Services Atlas 내에서 Amazon Web Services KMS 암호화 키에 대한 액세스 관리하기 위해 IAM 사용자 대신 IAM 역할을 사용하도록 요구합니다. 처음에 IAM 사용자 자격 증명 사용하여 Amazon Web Services KMS 키에 액세스 프로젝트 구성한 경우, 다음 절차에 따라 역할 기반 액세스 로 전환하여 이 새로운 요구 사항을 준수합니다.
중요
암호화 키를 역할 기반 액세스로 전환하면 해당 프로젝트의 암호화 키에 대해 역할 기반 액세스 구성을 취소하고 자격 증명 기반 액세스로 되돌릴 수 없습니다.
AtlasGo Atlas 에서 프로젝트 의 Advanced 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 내비게이션 바의 Projects 메뉴에서 프로젝트를 선택합니다.
사이드바에서 Security 제목 아래의 Advanced를 클릭합니다.
고급 페이지가 표시됩니다.
미사용 시 미사용 데이터 암호화를 위해 AWS KMS 키에 액세스할 수 있도록 Atlas에 AWS IAM 역할을 승인하고 할당하십시오.
미사용 데이터 암호화를 위한 AWS KMS 키에 액세스하려면, AWS CLI를 사용하여 새 역할 생성 절차를 따라 새로운 AWS IAM 역할을 생성합니다. 기존의 AWS IAM 역할을 승인하려면 기존 역할에 신뢰 관계 추가 절차를따르세요.
Atlas 관리 API를 사용하여 암호화 키 관리를 업데이트하려면 위 절차에 설명된 것과 동일한 단계를 따르세요.
Atlas 클러스터에 대한 고객 키 관리 활성화
프로젝트의 암호화 키에 역할 기반 액세스를 활성화한 후에는 암호화하려는 데이터가 포함된 각 Atlas cluster 에 대해 고객 키 관리 활성화 해야 합니다.
참고
해당 프로젝트의 클러스터에 대한 고객 키 관리를 사용하려면 Project Owner
역할이 있어야 합니다.
새 클러스터의 경우, 클러스터를 만들 때 자체 암호화 키 관리 설정을 Yes로 전환합니다.
기존 클러스터의 경우:
AtlasGo Atlas 에서 프로젝트 의 Clusters 페이지로 고 (Go) 합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Organizations 메뉴에서 원하는 프로젝트가 포함된 조직을 선택합니다.
아직 표시되지 않은 경우 탐색 표시줄의 Projects 메뉴에서 원하는 프로젝트를 선택합니다.
아직 표시되지 않은 경우 사이드바에서 Clusters를 클릭합니다.
Clusters(클러스터) 페이지가 표시됩니다.