교차 계정 스냅샷 복사 자동화 - 아마존 EBS

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

교차 계정 스냅샷 복사 자동화

교차 계정 스냅샷 복사를 자동화하면 Amazon EBS 스냅샷을 격리된 계정의 특정 리전으로 복사하고 암호화 키를 사용하여 해당 스냅샷을 암호화할 수 있습니다. 이렇게 하면 계정이 손상될 경우 데이터 손실로부터 보호할 수 있습니다.

교차 계정 스냅샷 복사를 자동화하려면 다음 두 개의 계정이 필요합니다.

  • 소스 계정—소스 계정은 스냅샷을 생성하고 대상 계정과 공유하는 계정입니다. 이 계정에서는 설정된 간격으로 스냅샷을 생성한 다음 다른 계정과 공유하는 EBS 스냅샷 정책을 생성해야 합니다. AWS

  • 대상 계정—대상 계정은 스냅샷이 공유되는 대상 계정이 있는 계정이며 공유 스냅샷의 복사본을 생성하는 계정입니다. 이 계정에서는 하나 이상의 지정된 소스 계정에서 공유되는 스냅샷을 자동으로 복사하는 교차 계정 복사 이벤트 정책을 생성해야 합니다.

교차 계정 스냅샷 복사 정책 생성

교차 계정 스냅샷 복사를 위한 소스 및 대상 계정을 준비하려면 다음 단계를 수행해야 합니다.

주제

    소스 계정에서 스냅샷을 생성하고 필요한 대상 계정과 공유하는 EBS 스냅샷 정책을 생성합니다.

    정책을 생성할 때는 계정 간 공유를 활성화하고 스냅샷을 공유할 대상 AWS 계정을 지정해야 합니다. 이러한 계정은 스냅샷이 공유되는 계정입니다. 암호화된 스냅샷을 공유하는 경우 선택한 대상 계정에 소스 볼륨을 암호화하는 데 사용된 KMS 키을(를) 사용할 수 있는 권한을 부여해야 합니다. 자세한 정보는 2단계: 고객 관리형 키(소스 계정) 공유을 참조하세요.

    참고

    암호화되지 않았거나 고객 관리형 키를 사용하여 암호화된 스냅샷만 공유할 수 있습니다. 기본 EBS 암호화 KMS 키(으)로 암호화된 스냅샷은 공유할 수 없습니다. 암호화된 스냅샷을 공유하는 경우 소스 볼륨을 암호화하는 데 사용된 KMS 키도 대상 계정과 공유해야 합니다. 자세한 내용은 AWS Key Management Service 개발자 안내서다른 계정의 사용자가 CMK를 사용하도록 허용을 참조하세요.

    EBS 스냅샷 정책을 생성하는 방법에 대한 자세한 내용은 스냅샷 수명 주기 자동화 섹션을 참조하세요.

    다음 방법 중 하나를 사용하여 EBS 스냅샷 정책을 생성합니다.

    암호화된 스냅샷을 공유하는 경우 소스 볼륨을 암호화하는 데 사용된 고객 관리형 키를 사용할 수 있는 권한을 이전 단계에서 선택한 IAM 역할 및 대상 AWS 계정에 부여해야 합니다.

    참고

    이 단계는 암호화된 스냅샷을 공유하는 경우에만 수행합니다. 암호화되지 않은 스냅샷을 공유하는 경우 이 단계를 건너뜁니다.

    Console
    1. https://console.aws.amazon.com/kms 에서 AWS KMS 콘솔을 엽니다.

    2. 를 변경하려면 페이지 오른쪽 상단의 지역 선택기를 사용하십시오. AWS 리전

    3. 탐색 창에서 [고객 관리형 키(Customer managed keys)]를 선택한 다음 대상 계정과 공유해야 하는 KMS 키를 선택합니다.

      KMS 키 ARN을 기록해 두세요. 나중에 필요합니다.

    4. [키 정책(Key policy)] 탭에서 [키 사용자(Key users)] 섹션까지 아래로 스크롤합니다. [추가(Add)]를 선택하고 이전 단계에서 선택한 IAM 역할의 이름을 입력한 다음 [추가(Add)]를 선택합니다.

    5. 키 정책 탭에서 다른 AWS 계정 단원까지 아래로 스크롤합니다. 다른 AWS 계정 추가를 선택한 다음 이전 단계에서 스냅샷을 공유하도록 선택한 대상 AWS 계정을 모두 추가합니다.

    6. 변경 사항 저장를 선택합니다.

    Command line

    get-key-policy 명령을 사용하여 현재 KMS 키에 연결된 키 정책을 다시 확인합니다.

    예를 들어 다음 명령은 ID가 9d5e2b3d-e410-4a27-a958-19e220d83a1e인 KMS 키에 대한 키 정책을 검색하여 snapshotKey.json(이)라는 파일에 씁니다.

    $ aws kms get-key-policy \ --policy-name default \ --key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e \ --query Policy \ --output text > snapshotKey.json

    기본 텍스트 편집기를 사용하여 키 정책을 엽니다. 스냅샷 정책을 생성할 때 지정한 IAM 역할의 ARN과 KMS 키을(를) 공유할 대상 계정의 ARN을 추가합니다.

    예를 들어 다음 정책에서는 기본 IAM 역할의 ARN과 대상 계정 222222222222.에 대한 루트 계정의 ARN을 추가했습니다.

    작은 정보

    최소 권한의 원칙을 따르려면 kms:CreateGrant에 대한 전체 액세스 권한을 허용하지 마세요. 대신 다음 예와 같이 kms:GrantIsForAWSResource 조건 키를 사용하여 AWS 서비스에서 사용자를 대신하여 권한을 생성한 경우에만 사용자가 KMS 키에 권한 부여를 생성할 수 있도록 허용하십시오.

    { "Sid" : "Allow use of the key", "Effect" : "Allow", "Principal" : { "AWS" : [ "arn:aws:iam::111111111111:role/service-role/AWSDataLifecycleManagerDefaultRole", "arn:aws:iam::222222222222:root" ] }, "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource" : "*" }, { "Sid" : "Allow attachment of persistent resources", "Effect" : "Allow", "Principal" : { "AWS" : [ "arn:aws:iam::111111111111:role/service-role/AWSDataLifecycleManagerDefaultRole", "arn:aws:iam::222222222222:root" ] }, "Action" : [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource" : "*", "Condition" : { "Bool" : { "kms:GrantIsForAWSResource" : "true" } } }

    파일을 저장하고 닫습니다. 그런 다음 put-key-policy 명령을 사용하여 업데이트된 키 정책을 KMS 키에 연결합니다.

    $ aws kms put-key-policy \ --policy-name default \ --key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e \ --policy file://snapshotKey.json

    대상 계정에서는 필요한 소스 계정에서 공유하는 스냅샷을 자동으로 복사하는 교차 계정 복사 이벤트 정책을 생성해야 합니다.

    이 정책은 지정된 소스 계정 중 하나가 계정과 스냅샷을 공유하는 경우에만 대상 계정에서 실행됩니다.

    교차 계정 복사 이벤트 정책을 생성하려면 다음 방법 중 하나를 사용합니다.

    Console
    1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

    2. 탐색 창에서 [Elastic Block Store], [Lifecycle Manager] 및 [수명 주기 정책 생성]을 차례로 선택합니다.

    3. [정책 유형 선택(Select policy type)] 화면에서 [계정 간 복사 이벤트 정책(Cross-account copy event policy)]을 선택한 후 [다음(Next)]을 선택합니다.

    4. [정책 설명(Policy description)]에 정책에 대한 간략한 설명을 입력합니다.

    5. [정책 태그(Policy tags)]에서 수명 주기 정책에 적용할 태그를 추가합니다. 이 태그를 사용하여 정책을 식별 및 분류할 수 있습니다.

    6. [이벤트 설정(Event settings)] 섹션에서 정책 실행을 트리거할 스냅샷 공유 이벤트를 정의합니다. 다음을 따릅니다.

      1. 공유 계정의 경우 공유 스냅샷을 복사할 소스 AWS 계정을 지정합니다. [계정 추가] 를 선택하고 12자리 AWS 계정 ID를 입력한 다음 [추가] 를 선택합니다.

      2. [설명으로 필터링(Filter by description)]에 정규식을 사용하여 필요한 스냅샷 설명을 입력합니다. 지정된 소스 계정에서 공유되고 지정된 필터와 일치하는 설명이 있는 스냅샷만 정책에 의해 복사됩니다. 자세한 내용은 스냅샷 설명 필터 지정 섹션을 참조하세요.

    7. [IAM 역할(IAM role)]에서 스냅샷 복사 작업을 수행할 권한이 있는 IAM 역할을 선택합니다. Amazon Data Lifecycle Manager가 제공하는 기본 역할을 사용하려면 [기본 역할(Default role)]을 선택합니다. 또는 이전에 생성한 사용자 지정 IAM 역할을 사용하려면 [다른 역할 선택(Choose another role)]을 선택하고 사용할 역할을 선택합니다.

      암호화된 스냅샷을 복사하는 경우 소스 볼륨을 암호화하는 데 사용되는 암호화 KMS 키을(를) 사용할 수 있는 권한을 선택한 IAM 역할에 부여해야 합니다. 마찬가지로 다른 KMS 키을(를) 사용하여 대상 리전의 스냅샷을 암호화하는 경우 IAM 역할에 대상 KMS 키을(를) 사용할 수 있는 권한을 부여해야 합니다. 자세한 내용은 4단계: IAM 역할에서 필요한 KMS 키을(를) 사용할 수 있도록 허용(대상 계정) 섹션을 참조하세요.

    8. [복사 작업(Copy action)] 섹션에서 정책이 활성화될 경우 수행할 스냅샷 복사 작업을 정의합니다. 이 정책은 스냅샷을 최대 3개의 리전에 복사할 수 있습니다. 각 대상 리전에 대해 별도의 복사 규칙을 지정해야 합니다. 추가하는 각 규칙 그룹에 대해 다음을 수행합니다.

      1. [이름(Name)]에 복사 작업을 설명하는 이름을 입력합니다.

      2. [대상 리전(Target Region)]에서 스냅샷을 복사할 리전을 선택합니다.

      3. [만료(Expire)]에서 스냅샷 복사본을 생성한 후 대상 리전에 보존할 기간을 지정합니다.

      4. 스냅샷 복사본을 암호화하려면 [암호화(Encryption)]에서 [암호화 사용(Enable encryption)]을 선택합니다. 소스 스냅샷이 암호화되거나 계정에서 기본적으로 암호화가 사용되는 경우 여기에서 암호화를 사용하지 않더라도 스냅샷 사본이 항상 암호화됩니다. 소스 스냅샷이 암호화되지 않았고 계정에서 암호화가 기본적으로 활성화되어 있지 않은 경우 암호화를 활성화하거나 비활성화하도록 선택할 수 있습니다. 암호화를 활성화하고 KMS 키을(를) 지정하지 않으면 각 대상 리전의 기본 암호화 KMS 키을(를) 사용하여 스냅샷이 암호화됩니다. 대상 리전에 대한 KMS 키을(를) 지정하는 경우 KMS 키에 대한 액세스 권한이 있어야 합니다.

    9. 스냅샷 복사 작업을 더 추가하려면 [새 리전 추가(Add new Regions)]를 선택합니다.

    10. 생성 후 정책 상태(Policy status after creation) - 정책 활성화(Enable policy)를 선택하여 다음 예약 시간에 정책 실행을 시작하거나, 정책 비활성화(Disable policy)를 선택하여 정책을 실행하지 않습니다. 지금 정책을 활성화하지 않으면 생성 후 수동으로 활성화할 때까지 스냅샷 복사가 시작되지 않습니다.

    11. [Create policy]를 선택합니다.

    Command line

    create-lifecycle-policy 명령을 사용하여 정책을 생성합니다. 교차 계정 복사 이벤트 정책을 생성하려면 PolicyTypeEVENT_BASED_POLICY를 지정합니다.

    예를 들어 다음 명령은 대상 계정 222222222222에서 교차 계정 복사 이벤트 정책을 생성합니다. 정책은 소스 계정 111111111111에서 공유하는 스냅샷을 복사합니다. 정책은 스냅샷을 sa-east-1eu-west-2에 복사합니다. sa-east-1에 복사된 스냅샷은 암호화되지 않으며 3일 동안 보존됩니다. eu-west-2에 복사된 스냅샷은 KMS 키 8af79514-350d-4c52-bac8-8985e84171c7을(를) 사용하여 암호화되며 1개월 동안 보존됩니다. 정책은 기본 IAM 역할을 사용합니다.

    $ aws dlm create-lifecycle-policy \ --description "Copy policy" \ --state ENABLED \ --execution-role-arn arn:aws:iam::222222222222:role/service-role/AWSDataLifecycleManagerDefaultRole \ --policy-details file://policyDetails.json

    다음은 policyDetails.json 파일의 콘텐츠를 보여줍니다.

    { "PolicyType" : "EVENT_BASED_POLICY", "EventSource" : { "Type" : "MANAGED_CWE", "Parameters": { "EventType" : "shareSnapshot", "SnapshotOwner": ["111111111111"] } }, "Actions" : [{ "Name" :"Copy Snapshot to Sao Paulo and London", "CrossRegionCopy" : [{ "Target" : "sa-east-1", "EncryptionConfiguration" : { "Encrypted" : false }, "RetainRule" : { "Interval" : 3, "IntervalUnit" : "DAYS" } }, { "Target" : "eu-west-2", "EncryptionConfiguration" : { "Encrypted" : true, "CmkArn" : "arn:aws:kms:eu-west-2:222222222222:key/8af79514-350d-4c52-bac8-8985e84171c7" }, "RetainRule" : { "Interval" : 1, "IntervalUnit" : "MONTHS" } }] }] }

    요청이 성공하면 명령은 새로 생성된 정책의 ID를 반환합니다. 출력의 예제는 다음과 같습니다.

    { "PolicyId": "policy-9876543210abcdef0" }

    암호화된 스냅샷을 복사하는 경우 소스 볼륨을 암호화하는 데 사용된 고객 관리형 키을(를) 사용할 수 있는 권한을 이전 단계에서 선택한 IAM 역할에 부여해야 합니다.

    참고

    이 단계는 암호화된 스냅샷을 복사하는 경우에만 수행합니다. 암호화되지 않은 스냅샷을 복사하는 경우 이 단계를 건너뜁니다.

    다음 방법 중 하나를 사용하여 필요한 정책을 IAM 역할에 추가합니다.

    Console
    1. https://console.aws.amazon.com/iam/에서 IAM 콘솔을 엽니다.

    2. 탐색 창에서 [역할(Roles)]을 선택합니다. 이전 단계에서 교차 계정 복사 이벤트 정책을 생성할 때 선택한 IAM 역할을 검색하고 선택합니다. 기본 역할을 사용하도록 선택한 경우 역할의 이름이 AWSDataLifecycleManagerDefaultRole지정됩니다.

    3. [인라인 정책 추가(Add inline policy)]를 선택한 다음 [JSON] 탭을 선택합니다.

    4. 기존 정책을 다음으로 바꾸고 소스 볼륨을 암호화하는 데 사용되었으며 2단계에서 소스 계정이 공유한 KMS 키의 ARN을 지정합니다.

      참고

      여러 소스 계정에서 복사하는 경우 각 소스 계정에서 해당 KMS 키 ARN을 지정해야 합니다.

      다음 예에서 정책은 소스 계정 1234abcd-12ab-34cd-56ef-1234567890ab에서 공유한 KMS 키 111111111111와 대상 계정 4567dcba-23ab-34cd-56ef-0987654321yz에 있는 KMS 키 222222222222을(를) 사용할 권한을 IAM 역할에 부여합니다.

      작은 정보

      최소 권한의 원칙을 따르려면 kms:CreateGrant에 대한 전체 액세스 권한을 허용하지 마세요. 대신 다음 예와 같이 kms:GrantIsForAWSResource 조건 키를 사용하여 AWS 서비스에서 사용자를 대신하여 권한을 생성한 경우에만 사용자가 KMS 키에 권한 부여를 생성할 수 있도록 허용하십시오.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:RevokeGrant", "kms:CreateGrant", "kms:ListGrants" ], "Resource": [ "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz" ], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz" ] } ] }
    5. [정책 검토(Review policy)]를 선택합니다.

    6. [이름(Name)]에 정책을 설명하는 이름을 입력한 다음 [정책 생성(Create policy)]을 선택합니다.

    Command line

    선호하는 텍스트 편집기를 사용하여 policyDetails.json이라는 새 JSON 파일을 생성합니다. 다음 정책을 추가하고 소스 볼륨을 암호화하는 데 사용되었으며 2단계에서 소스 계정이 공유한 KMS 키의 ARN을 지정합니다.

    참고

    여러 소스 계정에서 복사하는 경우 각 소스 계정에서 해당 KMS 키 ARN을 지정해야 합니다.

    다음 예에서 정책은 소스 계정 1234abcd-12ab-34cd-56ef-1234567890ab에서 공유한 KMS 키 111111111111와 대상 계정 4567dcba-23ab-34cd-56ef-0987654321yz에 있는 KMS 키 222222222222을(를) 사용할 권한을 IAM 역할에 부여합니다.

    작은 정보

    최소 권한의 원칙을 따르려면 kms:CreateGrant에 대한 전체 액세스 권한을 허용하지 마세요. 대신 다음 예와 같이 kms:GrantIsForAWSResource 조건 키를 사용하여 AWS 서비스에서 사용자를 대신하여 권한을 생성한 경우에만 사용자가 KMS 키에 권한 부여를 생성할 수 있도록 허용하십시오.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:RevokeGrant", "kms:CreateGrant", "kms:ListGrants" ], "Resource": [ "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz" ], "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": [ "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz" ] } ] }

    파일을 저장하고 닫습니다. 그런 다음 put-role-policy 명령을 사용하여 IAM 역할에 정책을 추가합니다.

    $ aws iam put-role-policy \ --role-name AWSDataLifecycleManagerDefaultRole \ --policy-name CopyPolicy \ --policy-document file://AdminPolicy.json

    스냅샷 설명 필터 지정

    대상 계정에서 스냅샷 복사 정책을 생성할 때는 스냅샷 설명 필터를 지정해야 합니다. 스냅샷 설명 필터를 사용하면 정책에 의해 복사되는 스냅샷을 제어할 때 사용할 수 있는 추가 수준의 필터링을 지정할 수 있습니다. 즉, 지정된 소스 계정 중 하나에서 스냅샷을 공유하고 스냅샷 설명이 지정된 필터와 일치하는 경우에만 정책을 통해 스냅샷이 복사됩니다. 다시 말해, 지정된 소스 계정 중 하나에서 스냅샷을 공유하지만 지정된 필터와 일치하는 설명이 없는 경우에는 정책에 의해 복사되지 않습니다.

    스냅샷 필터 설명은 정규 표현식을 사용하여 지정해야 합니다. 콘솔과 명령줄을 사용하여 교차 계정 복사 이벤트 정책을 생성하는 경우에는 필수 필드입니다. 다음은 사용할 수 있는 예제 정규 표현식입니다.

    • .*—이 필터는 모든 스냅샷 설명을 일치시킵니다. 이 식을 사용하면 지정된 소스 계정 중 하나가 공유하는 모든 스냅샷이 정책에 의해 복사됩니다.

    • Created for policy: policy-0123456789abcdef0.*—이 필터는 ID가 인 정책에 의해 생성된 스냅샷만 일치시킵니다.policy-0123456789abcdef0 이와 같은 식을 사용하는 경우 지정된 소스 계정 중 하나에서 계정과 공유하고 지정된 ID를 가진 정책에 의해 생성된 스냅샷만 정책에 의해 복사됩니다.

    • .*production.*—이 필터는 설명에 production이라는 단어가 있는 모든 스냅샷을 일치시킵니다. 이 식을 사용하는 경우 지정된 소스 계정 중 하나에서 공유되고 설명에 지정된 텍스트가 있는 모든 스냅샷이 정책에 의해 복사됩니다.

    교차 계정 스냅샷 복사 정책 고려 사항

    교차 계정 복사 이벤트 정책에는 다음 고려 사항이 적용됩니다.

    • 암호화되지 않았거나 고객 관리형 키를 사용하여 암호화된 스냅샷만 복사할 수 있습니다.

    • Amazon Data Lifecycle Manager 외부에서 공유되는 스냅샷을 복사하는 교차 계정 복사 이벤트 정책을 생성할 수 있습니다.

    • 대상 계정의 스냅샷을 암호화하려면 교차 계정 복사 이벤트 정책에 대해 선택한 IAM 역할에 필요한 KMS 키를 사용할 수 있는 권한이 있어야 합니다.

    추가적인 리소스

    자세한 내용은 AWS 계정 AWS 스토리지 전반에 암호화된 Amazon EBS 스냅샷 복사 자동화 블로그를 참조하십시오.