我在EC2上创建了AMI并与另一个EC2帐户共享,但我无法从其他EC2帐户访问AMI。任何帮助将不胜感激。
这是我到目前为止所做的:
使用ubuntu 14.04
创建实例登录实例并安装所需的所有工具
基于实例
创建新的AMI将AMI与另一个EC2帐户共享
登录到其他EC2帐户,但我找不到AMI列表下的AMI
我能找到AMI的任何帮助吗?
非常感谢。
答案 0 :(得分:2)
我假设您已根据此文档分享了AMI:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html
分享后,当您登录其他EC2帐户时,请确保已选择 Private Images
,如下所示。
只有private Images
选项会列出/显示您从其他帐户共享的AMI。
答案 1 :(得分:0)
我最近有同样的问题。我知道这个问题很旧,但这是google上第一个出现的问题。
我使用的是自动伸缩组,因此我使用了默认的服务链接角色(arn:aws:iam ::((account_id):role / aws-service-role / autoscaling.amazonaws.com / AWSServiceRoleForAutoScaling)
如果从(ACCOUNT 1)->(ACCOUNT 2)共享:
在(ACCOUNT 1)中用于加密AMI的KMS密钥所在的位置。添加以下策略:
{
"Sid": "Allow access for Key Administrators",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::(ACCOUNT 1 ID):root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow use of the key",
"Effect": "Allow",
"Principal": {
"AWS": [
"arn:aws:iam::(ACCOUNT 2 ID):role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling",
"arn:aws:iam::(ACCOUNT 1 ID):role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling",
"arn:aws:iam::(ACCOUNT 2 ID):root"
]
},
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:DescribeKey",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:CreateGrant",
"kms:ListGrants",
"kms:RevokeGrant"
],
"Resource": "*"
}
现在在控制台中找到您的AMI,右键单击并与(ACCOUNT 2 ID)共享。现在,您应该在(ACCOUNT 2)中看到您的AMI被列为“私人” AMI。
如果尝试在(帐户2)中启动AMI,它将自动停止并向您扔ClientError
。您必须运行下一步(通过aws cli):
aws kms create-grant --region (REGION WHERE KMS KEY LIVES) --key-id arn:aws:kms:us-west-2:(ACCOUNT 1 ID):key/(ACCOUNT 1 KMS KEY ID) --grantee-principal arn:aws:iam::(ACCOUNT 2 ID):role/aws-service-role/autoscaling.amazonaws.com/AWSServiceRoleForAutoScaling --operations "Encrypt" "Decrypt" "ReEncryptFrom" "ReEncryptTo" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "DescribeKey" "CreateGrant"
现在一切正常。