【问题标题】:ec2 share ami with another accountec2 与另一个帐户共享 ami
【发布时间】:2014-10-06 19:51:53
【问题描述】:

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

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

使用 ubuntu 14.04 创建实例

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

基于实例创建了一个新的 AMI

与另一个 EC2 帐户共享 AMI

登录到另一个 EC2 帐户,但我在 AMI 列表下找不到 AMI

在哪里可以找到 AMI 的任何帮助?

非常感谢。

【问题讨论】:

    标签: amazon-ec2 amazon-ami


    【解决方案1】:

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

    共享后,当您登录另一个 EC2 帐户时,请确保您已选择 Private Images,如下所示。

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

    【讨论】:

      【解决方案2】:

      我最近也遇到了同样的问题。我知道这个问题很老,但它是第一个出现在 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) 共享:
      在用于加密 AMI 的 KMS 密钥所在的 (ACCOUNT 1) 中。添加以下策略:

      {
                  "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) 共享。您现在应该会在(帐户 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"

      现在应该一切正常了。

      【讨论】:

        【解决方案3】:

        当您共享 AMI 跨账户时,加密的 AMI 将无法启动,除非您已设置密钥策略以允许其他 aws 账户。

        然后您可以通过过滤私有图像部分轻松地在 aws 控制台中列出

        【讨论】:

          猜你喜欢
          • 2022-11-09
          • 1970-01-01
          • 2012-07-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多