메뉴
Amazon Relational Database Service
사용 설명서 (API Version 2014-10-31)

DB 스냅샷 또는 DB 클러스터 스냅샷 공유

Amazon RDS를 사용하여 수동 DB 스냅샷 또는 DB 클러스터 스냅샷을 공유할 수 있습니다. 스냅샷 공유는 다음 설명과 같이 작동합니다.

  • 암호화되었거나 암호화되지 않은 수동 DB 스냅샷 또는 DB 클러스터 스냅샷을 공유하면 권한이 있는 AWS 계정에서 해당 스냅샷을 복사할 수 있습니다.

  • 암호화되지 않은 수동 DB 스냅샷을 공유하면 권한이 있는 AWS 계정에서 스냅샷의 복사본을 만든 후 복원하는 대신에 해당 스냅샷에서 DB 인스턴스를 직접 복원할 수 있습니다. 이는 암호화된 수동 DB 스냅샷에서는 지원되지 않습니다.

  • 암호화되었거나 암호화되지 않은 수동 DB 클러스터 스냅샷을 공유하면 권한이 있는 AWS 계정에서 스냅샷의 복사본을 만든 후 복원하는 대신에 해당 스냅샷에서 DB 클러스터를 직접 복원할 수 있습니다.

참고

자동 DB 스냅샷 또는 DB 클러스터 스냅샷을 공유하려면 이를 복사해 수동 버전을 만든 후 이 복사본을 공유하십시오.

스냅샷 복사에 대한 자세한 내용은 DB 스냅샷 또는 DB 클러스터 스냅샷 복사을(를) 참조하십시오. DB 스냅샷에서 DB 인스턴스를 복원하는 방법에 대한 자세한 내용은 DB 스냅샷에서 복원 항목을 참조하십시오. DB 클러스터 스냅샷에서 DB 클러스터를 복원하는 방법에 대한 자세한 내용은 Aurora DB 클러스터 백업 및 복구을 참조하십시오.

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

수동 스냅샷을 다른 AWS 계정과 공유할 경우 다음과 같은 제한이 적용됩니다.

  • AWS Command Line Interface(AWS CLI) 또는 Amazon RDS API를 사용하여 공유 스냅샷에서 DB 인스턴스 또는 DB 클러스터를 복원할 때는 공유 스냅샷의 Amazon 리소스 이름(ARN)을 스냅샷 식별자로 지정해야 합니다.

  • 영구적 또는 지속적 옵션이 포함된 옵션 그룹을 사용하는 DB 스냅샷은 공유할 수 없습니다.

    영구적 옵션은 옵션 그룹에서 제거할 수 없습니다. 옵션 그룹이 DB 인스턴스에 할당된 경우 영구적 옵션을 포함하는 옵션 그룹을 DB 인스턴스에서 제거할 수 없습니다.

    아래 표에 영구적 옵션과 지속적 옵션 및 관련된 DB 엔진이 나열되어 있습니다.

    옵션 이름 지속적 영구적 DB 엔진
    TDE 아니요 Microsoft SQL Server Enterprise Edition
    TDE Oracle Enterprise Edition
    TDE_HSM Oracle Enterprise Edition
    시간대

    Oracle Enterprise Edition

    Oracle Standard Edition

    Oracle Standard Edition One

암호화된 스냅샷 공유

Amazon RDS 리소스 암호화에 설명된 대로 AES-256 암호화 알고리즘을 사용하여 "저장 상태"에서 암호화된 DB 스냅샷 또는 DB 클러스터 스냅샷을 공유할 수 있습니다. 이렇게 하려면 다음 단계를 따라야 합니다.

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

    KMS 키 정책에 다른 계정을 추가하여 AWS KMS 암호화 키를 다른 AWS 계정과 공유할 수 있습니다. 키 정책 업데이트에 관한 세부 정보는 AWS KMS 개발자 안내서키 정책 단원을 참조하십시오. 키 정책 생성의 예는 이번 주제 후반부의 AWS KMS 암호화 키에 대한 액세스 허용 항목을 참조하십시오.

  2. AWS Management Console, AWS CLI 또는 Amazon RDS API를 사용하여 암호화된 스냅샷을 다른 계정과 공유합니다.

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

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

  • TDE(Transparent Data Encryption)를 사용하여 암호화된 Oracle 또는 Microsoft SQL Server 스냅샷은 공유할 수 없습니다.

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

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

다른 AWS 계정이 사용자 계정에서 공유된 암호화된 DB 스냅샷 또는 DB 클러스터를 복사하려면 스냅샷을 공유하는 계정에 스냅샷을 암호화한 KMS 키에 대한 액세스 권한이 있어야 합니다. 다른 AWS 계정이 AWS KMS 키에 액세스할 수 있도록 허용하려면 공유하려는 AWS 계정의 ARN으로 KMS 키에 대한 키 정책을 KMS 키 정책에서 Principal로 업데이트한 후 kms:CreateGrant 작업을 허용하십시오.

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

다음 키 정책 예에서는 사용자 111122223333이 KMS 암호화 키의 소유자이고 사용자 444455556666이 키를 공유하는 계정입니다. 업데이트된 이 키 정책으로 인해 AWS 계정이 KMS 키에 액세스할 수 있습니다. 사용자 444455556666에 대한 AWS 계정 자격 증명의 ARN을 정책에 대한 Principal로 포함하고 kms:CreateGrant 작업을 허용했습니다.

Copy
{ "Id": "key-policy-1", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KeyUser", "arn:aws:iam::444455556666: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::111122223333:user/KeyUser", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} } ] }

암호화된 스냅샷을 복사할 수 있도록 IAM 정책 만들기

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

다음 예에서는 AWS 계정 444455556666에 대해 IAM 사용자에게 추가할 수 있으며 IAM 사용자가 us-west-2 리전에서 KMS 키 c989c1dd-a3f2-4a5d-8d96-e793d082ab26을 사용하여 암호화된 AWS 계정 111122223333에서 공유 스냅샷을 복사할 수 있게 하는 정책을 보여 줍니다.

Copy
{ "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: 111122223333:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"] }, { "Sid": "AllowAttachmentOfPersistentResources", "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": ["arn:aws:kms:us-west-2: 111122223333:key/c989c1dd-a3f2-4a5d-8d96-e793d082ab26"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ] }

키 정책 업데이트에 관한 세부 정보는 AWS KMS 개발자 안내서키 정책 단원을 참조하십시오.

AWS Management Console

Amazon RDS 콘솔을 사용하여 최대 20개의 다른 AWS 계정과 수동 DB 스냅샷 또는 DB 클러스터 스냅샷을 공유할 수 있습니다. 콘솔을 사용하여 하나 이상의 계정에 대한 수동 스냅샷 공유를 중지할 수도 있습니다.

Amazon RDS 콘솔을 사용하여 수동 DB 스냅샷 또는 DB 클러스터 스냅샷을 공유하려면

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Snapshots]를 선택합니다.

  3. [Filter]에서 [Manual Snapshots]를 선택합니다.

  4. 공유할 수동 스냅샷의 확인란을 선택합니다.

  5. [Snapshot Actions]를 선택한 다음 [Share Snapshot]을 선택합니다.

  6. [DB Snapshot Visibility]에 대해 다음 옵션 중 하나를 선택합니다.

    • 원본 DB 클러스터가 암호화되어 있지 않은 경우, [Public]을 선택하여 모든 AWS 계정이 수동 DB 스냅샷에서 DB 인스턴스를 복원하도록 하거나, [Private]을 선택하여 지정한 AWS 계정만 수동 DB 스냅샷에서 DB 인스턴스를 복원하도록 합니다.

      주의

      [DB Snapshot Visibility]를 [Public]으로 설정한 경우 모든 AWS 계정이 수동 DB 스냅샷에서 DB 인스턴스를 복원하고 사용자 데이터에 액세스할 수 있습니다. 비공개 정보가 포함된 수동 DB 스냅샷을 [Public]으로 공유하지 마십시오.

    • 원본 DB 클러스터가 암호화되어 있는 경우, 암호화된 스냅샷을 퍼블릭으로 공유할 수 없으므로 [DB Snapshot Visibility]가 [Private]으로 설정됩니다.

  7. 수동 스냅샷에서 DB 인스턴스 또는 DB 클러스터를 복원할 수 있도록 허용할 계정의 AWS 계정 식별자를 [AWS Account ID]에 입력한 다음 [Add]를 선택합니다. 이 과정을 반복하여 AWS 계정 식별자를 최대 20개까지 추가합니다.

    허용된 계정 목록에 AWS 계정 식별자를 추가하다가 실수하는 경우, 잘못된 AWS 계정 식별자의 오른쪽에 있는 [Delete]를 선택하여 목록에서 해당 식별자를 삭제할 수 있습니다.

     AWS 계정이 수동 DB 스냅샷을 복원할 수 있도록 허용
  8. 수동 스냅샷을 복원할 수 있도록 허용할 모든 AWS 계정의 식별자를 추가한 후 [Save]를 선택하여 변경 내용을 저장합니다.

AWS 계정과의 수동 DB 스냅샷 또는 DB 클러스터 스냅샷 공유를 중지하려면

  1. AWS Management Console에 로그인한 다음 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 탐색 창에서 [Snapshots]를 선택합니다.

  3. [Filter]에서 [Manual Snapshots]를 선택합니다.

  4. 공유를 중지할 수동 스냅샷의 확인란을 선택합니다.

  5. [Snapshot Actions]를 선택한 다음 [Share Snapshot]을 선택합니다.

  6. AWS 계정의 권한을 제거하려면 권한 있는 계정 목록에서 해당 계정의 AWS 계정 식별자에 대해 [Delete]를 선택합니다.

     AWS 계정이 수동 DB 스냅샷을 복원할 수 있도록 허용
  7. [Save]를 선택하여 변경 사항을 저장합니다.

API

Amazon RDS API를 사용하여 수동 DB 스냅샷 또는 DB 클러스터 스냅샷을 다른 AWS 계정과 공유할 수도 있습니다. 그렇게 하려면 DB 인스턴스의 경우 ModifyDBSnapshotAttribute 작업을 호출하고 Amazon Aurora DB 클러스터의 경우 작업을 호출하면 됩니다. ModifyDBClusterSnapshotAttribute AttributeName에 대해 restore를 지정하고 ValuesToAdd 파라미터를 사용하여 수동 스냅샷의 복원 권한이 있는 AWS 계정을 위한 ID 목록을 추가합니다.

수동 스냅샷을 퍼블릭으로 설정하고 모든 AWS 계정에서 복원할 수 있도록 하려면 all 값을 사용합니다. 단, 일부 AWS 계정에만 제공할 비공개 정보가 포함된 수동 스냅샷에 대해 all 값을 추가하지 않도록 유의합니다. 또한 암호화된 스냅샷에 대해 all을 지정하지 마십시오. 그러한 스냅샷을 퍼블릭으로 설정하는 것은 지원되지 않습니다.

AWS 계정의 공유 권한을 제거하려면 ModifyDBSnapshotAttribute 또는 ModifyDBClusterSnapshotAttribute 작업을 사용하되 AttributeNamerestore로 설정하고 ValuesToRemove 파라미터를 설정합니다. 수동 스냅샷을 비공개로 하려면 restore 속성에 대한 값 목록에서 all 값을 제거합니다.

다음 예제에서는 두 AWS 계정 식별자 123451234512123456789012에게 manual-snapshot1 스냅샷 복원 권한을 부여하고 all 속성 값을 제거하여 DB 스냅샷을 비공개로 표시합니다.

Copy
https://rds.us-west-2.amazonaws.com/ ?Action=ModifyDBSnapshotAttribute &AttributeName=restore &DBSnapshotIdentifier=manual-snapshot1 &SignatureMethod=HmacSHA256&SignatureVersion=4 &ValuesToAdd.member.1=123451234512 &ValuesToAdd.member.2=123456789012 &ValuesToRemove.member.1=all &Version=2014-10-31 &X-Amz-Algorithm=AWS4-HMAC-SHA256 &X-Amz-Credential=AKIADQKE4SARGYLE/20150922/us-west-2/rds/aws4_request &X-Amz-Date=20150922T220515Z &X-Amz-SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date &X-Amz-Signature=ef38f1ce3dab4e1dbf113d8d2a265c67d17ece1999ffd36be85714ed36dddbb3

스냅샷을 복원할 수 있도록 허용된 모든 AWS 계정을 나열하려면 DescribeDBSnapshotAttributes 또는 DescribeDBClusterSnapshotAttributes API 작업을 사용합니다.

관련 주제