CMK 공유 설정 없이, 암호화된 볼륨이 있는 프라이빗 AMI 를 AWS 계정간에 공유하면
새 인스턴스 시작 시에 에러 메세지 없이 생성 후 그냥 인스턴스가 자동 종료(Terminated)되어 버립니다.
키 또한 권한을 공유하여 사용해야 합니다.
# 공유할 이미지를 지정해 주는 부분입니다.
# 원본 AMI 계정에 IAM 관리형 정책을 만들고 IAM 에 할당합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ec2:ModifyImageAttribute"
],
"Resource": [
"arn:aws:ec2:us-west-2::image/<0e9fcdb7ae40e8f4c>"
## 공유할 이미지의 리전 위치와 id ( ami-xxxxxxxxxxxxxxxxxx 에서 xxx부분입니다 )
]
}
]
}
# KMS 서비스에서 Key 를 공유 가능한 어카운트를 설정합니다.
# 원본 AMI 계정의 KMS 서비스에 가서 공유 할 AWS Account 넘버를 공유에 등록해 줍니다.
# 공유 받은 쪽에서 복호화할 CMK 를 요청하는 부분입니다.
# 공유 받은 계정의 IAM 에 관리형 정책을 등록합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:DescribeKey",
"kms:ReEncrypt*",
"kms:CreateGrant",
"kms:Decrypt"
],
"Resource": [
"arn:aws:kms:us-west-2:891977874274:key/bc52517a-676b-4f1a-9d1a-d50241563abc"
## 원본 AMI 의 KMS Key 권한을 요청하는 정책입니다.
]
}
]
}
이제 정상적으로 공유 받은 이미지에서 EC2 가 생성되고 정상 시작되는 것을 확인할 수 있습니다.
참고 AWS Docs : https://aws.amazon.com/ko/blogs/security/how-to-share-encrypted-amis-across-accounts-to-launch-encrypted-ec2-instances/