Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
如何对在不同区域或账户之间复制 AMI 时出现的错误进行故障排除?
我想将亚马逊机器映像 (AMI) 从一个 AWS 区域或 AWS 账户复制到另一个区域或账户。但是,我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例中出现错误。
解决方法
要在区域之间复制 AMI,请配置 AMI 及其组件的权限,例如快照和 AWS Key Management Service (AWS KMS) 加密密钥。
对权限错误进行故障排除
缺少 IAM 权限
如果 AWS Identity and Access Management (IAM) 用户或角色没有复制 AMI 的所需权限,您可能会收到以下错误:
“您无权执行此操作”
要对此问题进行故障排除,请确保您的 IAM 实体具有所需的权限。
缺少 AMI 存储访问权限
如果您复制共享 AMI,但目标账户无权访问关联快照,则可能会收到以下错误:
“您无权访问此 AMI 的存储”
要解决此问题,请完成以下步骤:
- 要共享源 AMI,请选择 Edit AMI permissions(编辑 AMI 权限)。
- 选择 Add 'Create volume' permission to associated snapshots when creating account permissions(创建账户权限时为关联快照添加“创建卷”权限)。
- 与目标账户共享源 AMI。
**注意:**如果您已共享 AMI,请在选择 Create volume(创建卷)权限的情况下删除 AMI 并将其从源账户重新共享到目标。
对加密 AMI 和 AWS KMS 密钥问题进行故障排除
对于加密的 AMI,目标账户必须访问源 AWS KMS 密钥才能在复制过程中解密。目标账户还必须使用相同的密钥或在目标地区拥有匹配的密钥。
要为加密 AMI 配置权限,请向目标账户授予对 KMS 密钥的访问权限,然后为密钥访问创建 IAM 策略。
向目标账户授予密钥访问权限
要处理加密的 AMI,请在源账户中完成以下步骤:
- 打开 AWS KMS 控制台。
- 在导航窗格中,选择 Customer managed keys(客户自主管理型密钥)。
- 选择您用于加密 AMI 的 KMS 密钥。
- 在 Key policy(密钥策略)下,对于 Default view(默认视图),选择 Add other AWS accounts(添加其他 AWS 账户)。
- 输入目标账户 ID。
- 选择 Save changes(保存更改)。
- 对于 Policy view(策略视图),选择 Edit(编辑)。
- 输入以下访问策略:
**注意:**将 SOURCE_ACCOUNT_ID 替换为您的源账户 ID,将 DESTINATION_ACCOUNT_ID 替换为您的目标账户 ID。{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::[SOURCE_ACCOUNT_ID]:user/KeyUser", "arn:aws:iam::[TARGET_ACCOUNT_ID]: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::SOURCE_ACCOUNT_ID:user/KeyUser", "arn:aws:iam::DESTINATION_ACCOUNT_ID:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}} }
为目标账户创建 IAM 策略以获得密钥访问权限
在目标账户中创建 IAM 策略。
策略示例:
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowUseOfTheKey", "Effect": "Allow", "Action": ["kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey"], "Resource": ["KEY_ARN"] }, { "Sid": "AllowAttachmentOfPersistentResources", "Effect": "Allow", "Action": ["kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant"], "Resource": ["KEY_ARN"], "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } }] }
**注意:**将 KEY_ARN 替换为您的 AWS KMS 密钥的 Amazon 资源名称 (ARN)。
然后,将策略附加到需要使用加密 AMI 的 IAM 用户或角色。
相关信息
相关内容
AWS 官方已更新 6 个月前