현상
A 계정에 AWS KMS(Key Management Service)로 암호화 되어 있는 EC2와 RDS가 운영되고 있습니다. 이 자원들을 B 계정에 옮기려면 어떻게 해야 하나요?
설명
AWS 관리 키로 암호화된 EC2 및 RDS 인스턴스를 다른 계정으로 이전하는 방법은 기본적으로, A 계정에서 이전하려는 서버의 AMI를 생성하여 다른 계정으로 공유하여 보내고, B 계정에서 해당 AMI를 사용하여 서버를 시작하는 것입니다.
하지만, 암호화된 AMI를 다른 AWS 계정과 공유하는 것은 AMI가 CMK(Customer Managed Key)로 암호화되어 있는 경우에 가능합니다. 자세한 내용은 참조 링크로 첨부된 문서[1]를 참조 부탁드립니다. (다시 말해, AWS 관리 키로 암호화된 경우에는 공유가 불가합니다.)
해결방법
암호화된 스냅샷에서 직접 KMS 키를 CMK로 변경하는 것은 불가합니다. 그러나 스냅샷을 복사하고, 새 스냅샷 복제본을 생성하면서 CMK를 연결하는 것은 가능합니다.
기존 AMI에서 이 작업을 수행하려면 다음 단계를 수행하십시오.
(단계 설명은 의미 혼동을 방지하기 위하여, 영어 원문을 그대로 인용하겠습니다.)
Step 1: Create Customer Managed CMK [2]
On the AWS Console, Navigate to Key Management Service (KMS)
Select Customer managed keys and then select create key
Choose Symmetric and Under Advanced options select "KMS". Click Next. You can add an alias of your choice and proceed further.
Choose the IAM users and roles who can administer this key through the KMS API.
Select the IAM users and roles that can use the CMK in cryptographic operations.
Review the policy and click Finish.
Step 2: Create the snapshot and Copy the snapshot or copy if any existing snapshot, you may specify the Customer Managed Key created in step 1 to encrypt snapshot [3]. Then, you may create an image (AMI) encrypted with the CMK from that snapshot.
Step 3: Modify the CMK policy to allow access to cross account user [4].
Step 4: Add Cross Account to access the snapshot from step 6 -9 [5].
Step 5: Allow users in other accounts to gain access to CMK [6].
Additionally, please refer this blog [7] attached under references to share encrypted AMIs across accounts to launch encrypted EC2 instances.
참조 :
[1] Use encryption with EBS-backed AMIs -
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIEncryption.html
[2] Creating CMK’s –
https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html
[3]Copy EBS snapshot –
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html#ebs-snapshot-copy
[4] Modifying CMK policy-
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html
[5] Modifying snapshot permissions –
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html#share-encrypted-snapshot
[6] Modifying accounts to gain CMK access - https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying-external-accounts.html
[7] How to share encrypted AMI’s across accounts –
https://aws.amazon.com/blogs/security/how-to-share-encrypted-amis-across-accounts-to-launch-encrypted-ec2-instances/