AWS Backup에서 교차 계정 복사를 수행할 때 “Given key ID not accessible.”이라는 오류 메시지가 나타납니다.
간략한 설명
AWS Backup을 사용하여 한 AWS 계정에서 다른 AWS 계정으로 계정 간 복사를 수행할 때 다음 메시지와 유사한 오류가 발생합니다.
"주어진 키 ID에 액세스할 수 없습니다."
-또는-
"소스 스냅샷 KMS 키가 존재하지 않거나, 활성화되어 있지 않거나, 액세스할 수 있는 권한이 없습니다."
교차 계정 사본을 성공적으로 만들려면 소스 계정에서 대상 계정에 AWS Key Management Service(AWS KMS) 키 정책을 허용해야 합니다. 다양한 암호화 작업을 수행하려면 다음과 같은 AWS KMS 권한이 필요합니다.
- DescribeKey
- Encrypt
- Decrypt
- ReEncryptFrom
- ReEncryptTo
- GenerateDataKeyPair
- GenerateDataKeyPairWithoutPlaintext
- GenerateDataKeyWithoutPlaintext
- CreateGrant
- ListGrant
- RevokeGrant
해결 방법
대상 계정 루트 사용자를 소스 계정 AWS KMS 키 정책에 포함해야 합니다. 그런 다음 대상 계정 루트 사용자가 필요한 AWS Identity and Access Management(IAM) 권한을 사용자 및 역할에 위임하세요.
풀 AWS Backup 관리를 지원하는 리소스의 경우, 소스 AWS KMS 키는 볼트의 암호화 키입니다. 소스 AWS KMS 키는 고객 관리형 키 또는 AWS 관리형 키일 수 있습니다. 소스 AWS KMS 키가 고객 관리형 키인 경우, 대상 계정을 포함하도록 키 정책을 수정해야 합니다.
전체 AWS Backup 관리를 지원하지 않는 리소스의 경우, 소스 AWS KMS 키는 원본 리소스의 암호화 키입니다. 소스 AWS KMS 키는 고객 관리형 키여야 하며 대상 계정을 포함하도록 키 정책을 수정해야 합니다.
참고: 소스 AWS KMS 키는 AWS 관리형 키일 수 없습니다. 이는AWS 관리형 키를 사용하면 키 정책을 수정할 수 없기 때문입니다. 또한 AWS 관리형 키는 대상 계정과 공유할 수 없습니다.
소스 AWS KMS 키 정책
한 계정에서 다른 계정으로 사본을 만들려면 소스 AWS KMS 키를 다음 권한을 포함하도록 수정합니다.
참고: SourceAccountID 및 DestinationAccountID를 소스 및 대상 계정 ID로 바꿉니다.
{
"Version": "2012-10-17",
"Id": "cab-kms-key",
"Statement": [{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::SourceAccountID:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::SourceAccountID:root",
"arn:aws:iam::DestinationAccountID:root"
]
},
"Action": [
"kms:DescribeKey",
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*"
],
"Resource": "*"
},
{
"Sid": "Allow attachment of persistent resources",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::SourceAccountID:root",
"arn:aws:iam::DestinationAccountID:root"
]
},
"Action": [
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": "*",
"Condition": {
"Bool": {
"kms:GrantIsForAWSResource": "true"
}
}
}
]
}
팁: 앞의 정책에서 arn:aws:iam::DestinationAccountID:root을 사용하는 대신 ARN arn:aws:iam::DestinationAccountID:role/aws-service-role/backup.amazonaws.com/AWSServiceRoleForBackup을 사용하여 대상 계정에서 단일 역할에 대한 액세스를 제한할 수 있습니다. AWSServiceRoleforBackup은 대상 계정에 자동으로 생성되는 서비스 역할로, 소스 계정에서 대상 계정으로 백업을 가져오는 데 사용됩니다.
계정 간 사본에 대한 AWS Backup의 암호화에 대한 추가 고려 사항
전체 AWS Backup 관리를 사용할 수 있는 리소스 유형을 확인하려면 리소스별 기능 사용 가능성을 참조하세요.
리소스가 전체 AWS Backup 관리를 지원하는 경우, 고객 관리형 AWS KMS 키 또는 AWS 관리형 키를 사용하여 이러한 리소스를 암호화할 수 있습니다. 이 시나리오에서는 다음과 같은 암호화가 발생합니다.
- 소스 백업은 소스 볼트 AWS KMS 키로 암호화됩니다.
- 대상 사본은 대상 볼트 AWS KMS 키로 암호화됩니다.
전체 AWS Backup 관리를 지원하지 않는 리소스에서 교차 계정 사본을 만들려면 고객 관리형 AWS KMS 키로 리소스를 암호화하세요. 이 시나리오에서는 다음과 같은 암호화가 발생합니다.
- 소스 백업은 원본 리소스 암호화 키로 암호화됩니다.
- 대상 사본은 대상 볼트 AWS KMS 키로 암호화됩니다.
관련 정보
AWS Backup이란 무엇인가요?
리전 간/계정 간 배포 솔루션에서 코드의 보안 보장
AWS Backup의 백업 암호화