为什么 AWS Backup 中的跨账户复制失败?
我想排查我的跨账户复制作业在 AWS Backup 中失败的原因。
简短描述
要排查 AWS 账户的复制作业失败的原因,请检查以下配置:
- 确认您的源账户和目标账户属于 AWS Organizations 中的同一个组织。
- 确保资源类型支持指定的 AWS 区域中的跨账户复制。
- 查看您的源账户备份的加密标准。
- 确认源 AWS Key Management Service (AWS KMS) 密钥策略是否允许目标账户。
- 验证目标保管库访问策略是否允许源账户。
- 确保已正确配置组织的标签策略。
解决方法
**重要事项:**当您首次将备份复制到新区域或跨账户复制备份时,AWS Backup 会完整复制备份。如果服务支持增量备份,则同一区域或账户中的后续备份副本为增量备份。AWS Backup 使用目标保管库的客户自主管理型密钥对您的副本进行加密。跨账户复制需要源账户和目标账户之间适当的授权和权限。
有关详细信息,请参阅对不同账户或 AWS 区域的备份副本进行加密。
查看贵组织的成员账户
如果您的源账户和目标账户不在同一个组织中,则会收到以下错误消息:
"Copy job failed. Both source and destination account must be a member of the same organization."
要解决此问题,请将您的一个账户迁移到与另一个账户相同的组织。
检查资源类型是否支持复制操作
确保您的资源的 AWS 服务支持跨账户和跨区域备份。有关 AWS 服务支持 AWS Backup 的功能列表,请参阅不同资源的功能可用性。有关不同区域的可用功能列表,请参阅不同 AWS 区域的功能可用性。
如果您的资源不支持同时执行跨账户和跨区域复制备份的复制操作,则您会收到一条与以下类似的错误消息:
"Copy job from us-west-2 to us-east-1 cannot be initiated for RDS resources. Feature is not supported for provided resource type."
以下服务不支持执行跨账户和跨区域备份的复制操作:
- Amazon Relational Database Service (Amazon RDS)
- Amazon Aurora
- Amazon DocumentDB(与 MongoDB 兼容)
- Amazon Neptune
对于上述服务,您必须执行跨账户备份或跨区域备份。对于 Amazon DynamoDB,您必须启用含 AWS Backup 高级功能的 DynamoDB,才能执行跨账户备份。
查看加密标准
如果您的跨账户备份作业因加密问题而失败,则您会收到以下错误消息之一:
"Copy job failed because the destination Backup vault is encrypted with the default Backup service managed key. The contents of this vault cannot be copied. Only the contents of a Backup vault encrypted by a customer master key (CMK) may be copied."
-或-
"Snapshots encrypted with the AWS Managed CMK can't be shared. Specify another snapshot. (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameter; Request ID: ; Proxy: null)"
要解决这些问题,请完成以下步骤:
对于 AWS Backup 无法完全管理的资源,备份使用与源资源相同的 AWS KMS 密钥。对于完全管理的资源,备份使用备份保管库的加密密钥。
有关详细信息,请参阅 AWS Backup 中的备份加密。
**注意:**对于 AWS Backup 无法完全管理的资源,AWS Backup 不支持使用 AWS 托管式密钥进行跨账户复制。
检查源 KMS 密钥策略
如果源账户的 AWS KMS 密钥策略不允许使用目标账户,则您会收到以下错误消息之一:
"The source snapshot KMS key does not exist, is not enabled or you do not have permissions to access it"
-或-
"AMI snapshot copy failed with error: Given key ID is not accessible. You must have DescribeKey permissions on the default CMK."
要解决这些问题,请将目标账户的权限添加到源 AWS KMS 密钥策略中。
请参阅以下策略示例:
{ "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", "kms:GenerateDataKeyWithoutPlaintext" ], "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" } } } ] }
**注意:**将 SourceAccountID 替换为您的源账户 ID,将 DestinationAccountID 替换为您的目标账户 ID。
检查目标保管库访问策略
如果您没有与源账户共享目标 AWS Backup 保管库,则会收到以下错误消息:
"Access Denied trying to call AWS Backup service"
要解决此问题,请将您的源账户的权限添加到目标保管库访问策略中。
请参阅以下策略示例:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::SourceAccountID:root" }, "Action": "backup:CopyIntoBackupVault", "Resource": "*" } ] }
**注意:**将 SourceAccountID 替换为您的源账户 ID。
查看贵组织的标签策略
AWS Backup 将标签从资源复制到恢复点。例如,当您备份 Amazon Elastic Block Store (Amazon EBS) 卷时,AWS Backup 会将标签复制到快照中。有关详细信息,请参阅在还原期间复制标签。
如果您的跨账户备份作业由于不正确的标签策略而失败,则您会收到以下错误消息之一:
"We are unable to copy resource tags to your backup because of the Internal Failure"
-或-
"The tag policy does not allow the specified value for the following tag key: 'xyz'"
要解决这些问题,请执行以下操作:
