Amazon DocumentDB 클러스터 스냅샷 공유 - Amazon DocumentDB

Amazon DocumentDB 클러스터 스냅샷 공유

AWS 계정Amazon DocumentDB에서는 클러스터 스냅샷을 공유할 수 있고, 권한 있는 에서 이를 복사할 수 있습니다. 암호화되거나 암호화되지 않은 수동 스냅샷을 공유할 수 있습니다. 암호화되지 않은 스냅샷을 공유할 경우, 권한이 있는 AWS 계정은 스냅샷의 복사본을 만든 후 복원하는 것이 아니라 해당 스냅샷에서 직접 클러스터를 복원할 수 있습니다. 하지만 공유 및 암호화된 스냅샷에서는 클러스터를 복원할 수 없습니다. 대신, 클러스터의 복사본을 만들고 그 복사본에서 클러스터를 복원할 수 있습니다. 스냅샷 복사에 대한 자세한 내용은 Amazon DocumentDB 클러스터 스냅샷 복사 섹션을 참조하세요.

참고

Amazon DocumentDB 자동화된 클러스터 스냅샷은 공유할 수 없습니다. 이 문제를 해결하려면 자동화된 스냅샷을 복사하여 수동 스냅샷을 만든 다음 그 복사본을 공유하면 됩니다. 스냅샷 복사에 대한 자세한 내용은 Amazon DocumentDB 클러스터 스냅샷 복사 섹션을 참조하세요. 스냅샷에서 클러스터 복원에 대한 자세한 내용은 클러스터 스냅샷에서 복원 섹션을 참조하세요.

최대 20개의 다른 AWS 계정 계정과 수동 스냅샷을 공유할 수 있습니다. 암호화되지 않은 수동 스냅샷을 퍼블릭으로도 공유할 수 있습니다. 그러면 모든 계정에서 해당 스냅샷을 사용할 수 있습니다. 스냅샷을 퍼블릭으로 공유할 경우, 어떤 퍼블릭 스냅샷에도 비공개 정보가 포함되지 않도록 유의하세요.

다른 AWS 계정과 수동 스냅샷을 공유하고 AWS CLI 또는 Amazon DocumentDB API를 사용하여 공유 스냅샷에서 클러스터를 복원하는 경우, 공유된 스냅샷의 Amazon 리소스 이름(ARN)을 스냅샷 식별자로 지정해야 합니다.

암호화된 스냅샷 공유

다음 제한은 암호화된 스냅샷 공유에 적용됩니다.

  • 암호화된 스냅샷을 퍼블릭으로는 공유할 수 없습니다.

  • 스냅샷을 공유한 계정의 기본 AWS KMS 암호화 키를 사용하여 암호화된 스냅샷은 공유할 수 없습니다.

다음 단계에 따라 암호화된 스냅샷을 공유합니다.

  1. 스냅샷을 암호화하는 데 사용한 AWS Key Management Service(AWS KMS) 암호화 키를 해당 스냅샷에 액세스할 수 있도록 하려는 계정과 공유합니다.

    AWS KMS 키 정책에 다른 계정을 추가하여 AWS KMS 암호화 키를 다른 AWS 계정과 공유할 수 있습니다. 키 정책 업데이트에 관한 세부 정보는 AWS Key Management Service개발자 안내서AWS KMS에서 키 정책을 참조하세요. 키 정책 생성의 예는 이번 주제 후반부의 암호화된 스냅샷을 복사할 수 있도록 IAM 정책 생성 섹션을 참조하세요.

  2. 아래와 같이 AWS CLI를 사용하여 암호화된 스냅샷을 다른 계정과 공유합니다.

AWS KMS 암호화 키에 대한 액세스 허용

다른 AWS 계정이 사용자 계정에서 공유된 암호화된 DB 스냅샷을 복사하려면 스냅샷을 공유하는 계정에 스냅샷을 암호화한 AWS KMS에 대한 액세스 권한이 있어야 합니다. 다른 계정이 AWS KMS 키에 액세스할 수 있도록 허용하려면, AWS KMS 키에 대한 키 정책을, AWS KMS 키 정책에서 보안 주체로 공유 중인 계정의 ARN으로 업데이트합니다. 그런 다음 kms:CreateGrant 작업을 허용합니다.

사용자가 자신의 AWS KMS 암호화 키에 대한 액세스 권한을 계정에 부여하고 나면, 해당 계정에서는 이 사용자의 암호화된 스냅샷을 복사하려면 아직 없는 경우 AWS Identity and Access Management(IAM) 사용자를 생성해야 합니다. 또한 해당 계정은 사용자에게 해당 AWS KMS 키를 사용하여 암호화된 스냅샷을 복사할 수 있도록 허용하는 IAM 정책 정책을 해당 IAM 사용자에게 연결해야 합니다. AWS KMS 보안 제약으로 인해 이 계정은 IAM 사용자여야 하며 루트 AWS 계정 계정 자격 증명일 수 없습니다.

다음 키 정책 예제에서는 사용자 123451234512가 AWS KMS 암호화 키의 소유자입니다. 사용자 123456789012는 키를 공유 중인 계정입니다. 이 업데이트된 키 정책은 계정에 AWS KMS 키에 대한 액세스 권한을 부여합니다. 이렇게 하기 위해 123456789012 사용자의 루트 AWS 계정 ID ARN을 이 정책의 보안 주체로 포함하고 kms:CreateGrant 작업을 허용합니다.

{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::123451234512:user/KeyUser", "arn:aws:iam::123456789012:root" ]}, "Action": [ "kms:CreateGrant", "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*"}, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::123451234512:user/KeyUser", "arn:aws:iam::123456789012:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} } ] }

암호화된 스냅샷을 복사할 수 있도록 IAM 정책 생성

외부 AWS 계정에 사용자의 AWS KMS 키에 대한 액세스 권한이 부여된 경우 해당 계정의 소유자는 이 계정에 대해 생성된 IAM 사용자에게 해당 AWS KMS 키를 사용하여 암호화된 스냅샷을 복사할 수 있도록 허용하는 정책을 만들 수 있습니다.

다음 예제는 AWS 계정 123456789012에 대한 IAM 사용자에 연결할 수 있는 정책을 보여줍니다. 이 정책은 IAM 사용자에게 us-west-2 리전에서 AWS KMS 키 c989c1dd-a3f2-4a5d-8d96-e793d082ab26을 사용하여 암호화된 계정 123451234512에서 공유 스냅샷을 복사할 수 있도록 허용합니다.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUseOfTheKey", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant" ], "Resource": ["arn:aws:kms:us-west-2:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"] }, { "Sid": "AllowAttachmentOfPersistentResources", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["arn:aws:kms:us-west-2:123451234512:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

키 정책 업데이트에 관한 세부 정보는 AWS Key Management Service 개발자 안내서키 정책AWS KMS을 참조하세요.

스냅샷 공유

스냅샷을 공유하려면 Amazon DocumentDB modify-db-snapshot-attribute 작업을 사용합니다. --values-to-add 파라미터를 사용하여 수동 스냅샷을 복원할 권한이 있는 AWS 계정 계정의 ID 목록을 추가합니다.

다음 예제에서는 두 AWS 계정 ID인 123451234512와 123456789012에 대해 manual-snapshot1 스냅샷 복원을 허용합니다. 또한 스냅샷이 프라이빗으로 표시되도록 all 속성 값을 지웁니다.

Linux, macOS, Unix의 경우:

aws docdb modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier sample-cluster-snapshot \ --attribute-name restore \ --values-to-add '["123451234512","123456789012"]'

Windows의 경우:

aws docdb modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier sample-cluster-snapshot ^ --attribute-name restore ^ --values-to-add '["123451234512","123456789012"]'

이 작업의 출력은 다음과 같이 표시됩니다.

{ "DBClusterSnapshotAttributesResult": { "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", "DBClusterSnapshotAttributes": [ { "AttributeName": "restore", "AttributeValues": [ "123451234512", "123456789012" ] } ] } }

목록에서 AWS 계정 식별자를 제거하려면 --values-to-remove 파라미터를 사용합니다. 다음 예는 AWS 계정 ID 123456789012의 스냅샷 복원을 방지합니다.

Linux, macOS, Unix의 경우:

aws docdb modify-db-cluster-snapshot-attribute \ --db-cluster-snapshot-identifier sample-cluster-snapshot \ --attribute-name restore \ --values-to-remove '["123456789012"]'

Windows의 경우:

aws docdb modify-db-cluster-snapshot-attribute ^ --db-cluster-snapshot-identifier sample-cluster-snapshot ^ --attribute-name restore ^ --values-to-remove '["123456789012"]'

이 작업의 출력은 다음과 같이 표시됩니다.

{ "DBClusterSnapshotAttributesResult": { "DBClusterSnapshotIdentifier": "sample-cluster-snapshot", "DBClusterSnapshotAttributes": [ { "AttributeName": "restore", "AttributeValues": [ "123451234512" ] } ] } }