ec2与另一个帐户共享ami

时间:2014-10-06 19:51:54

标签: amazon-ec2 ami

我在EC2上创建了AMI并与另一个EC2帐户共享,但我无法从其他EC2帐户访问AMI。任何帮助将不胜感激。

这是我到目前为止所做的:

使用ubuntu 14.04

创建实例

登录实例并安装所需的所有工具

基于实例

创建新的AMI

将AMI与另一个EC2帐户共享

登录到其他EC2帐户,但我找不到AMI列表下的AMI

我能找到AMI的任何帮助吗?

非常感谢。

2 个答案:

答案 0 :(得分:2)

我假设您已根据此文档分享了AMI:http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/sharingamis-explicit.html

分享后,当您登录其他EC2帐户时,请确保已选择 Private Images ,如下所示。

enter image description here

只有private Images选项会列出/显示您从其他帐户共享的AMI。

答案 1 :(得分:0)

我最近有同样的问题。我知道这个问题很旧,但这是google上第一个出现的问题。

用于共享加密的AMI的文档:
https://docs.aws.amazon.com/autoscaling/ec2/userguide/key-policy-requirements-EBS-encryption.html#policy-example-cmk-cross-account-access

我使用的是自动伸缩组,因此我使用了默认的服务链接角色(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"

现在一切正常。