Amazon web services 如何将AMI从一个aws帐户复制到另一个aws帐户?

Amazon web services 如何将AMI从一个aws帐户复制到另一个aws帐户?,amazon-web-services,amazon-ami,packer,Amazon Web Services,Amazon Ami,Packer,我试图使用packer将定制的ami从一个AWS帐户复制到另一个AWS帐户;然而,我能够在一个帐户内跨区域复制ami “构建器”:[{ “帐户id”:“12345678910”, “s3_桶”:“xyz/xqas/asd”, “x509证书路径”:“/Users/txyz/packer/certificate.pem”, “x509密钥路径”:“/Users/txyz/packer/private key.pem”, “类型”:“亚马逊实例”, “访问密钥”:“{useraccess\u key

我试图使用packer将定制的ami从一个AWS帐户复制到另一个AWS帐户;然而,我能够在一个帐户内跨区域复制ami

“构建器”:[{
“帐户id”:“12345678910”,
“s3_桶”:“xyz/xqas/asd”,
“x509证书路径”:“/Users/txyz/packer/certificate.pem”,
“x509密钥路径”:“/Users/txyz/packer/private key.pem”,
“类型”:“亚马逊实例”,
“访问密钥”:“{user
access\u key
}”,
“密钥”:“{user
secret\u key
}”,
“区域”:“us-east-1”,
“源ami”:“ami-452bd728”,
“实例类型”:“r3.xlarge”,
“ssh_用户名”:“ubuntu”,
“ami_名称”:“打包测试hvm{{timestamp}”,
“ami\u虚拟化\u类型”:“hvm”,
“强制注销”:对,
“阿美尤地区”:[“美国-东部-1”、“美国-西部-2”]

}],使用AWS ClI并在需要传输的AMI中运行以下命令

ec2-modify-image-attribute ami-2bb65342 -l -a 111122223333 
有关可用的其他选项,请参阅本指南


使用AWS ClI并在需要传输的AMI中运行以下命令

ec2-modify-image-attribute ami-2bb65342 -l -a 111122223333 
有关可用的其他选项,请参阅本指南


以下awscli命令将向指定的帐户id添加启动权限。这将实现类似的效果,尽管从技术上讲不会复制ami


aws ec2 modify image attribute--image id--launch permission“Add=[{UserId=}]”

以下awscli命令将向指定的帐户id添加启动权限。这将实现类似的效果,尽管从技术上讲不会复制ami


aws ec2修改图像属性--图像id--启动权限“Add=[{UserId=}]”

使用Packer这是您可以将AMI从一个帐户共享到另一个帐户的方式。 始终参考包装商文件:-https://www.packer.io/docs/builders/amazon/ebs 在这里你可以找到所有的信息

在“ami_用户”部分,您可以提到需要与之共享的AWS帐户

"ami_users": ["{{user `REMOTE_AWS_ACCOUNT_ID`}}"]
完整代码

   "builders": [
  {
    "type": "amazon-ebs",
    "access_key": "{{ user `aws_access_key` }}",
    "secret_key": "{{ user `aws_secret_key` }}",
    "region": "{{ user `region` }}",
    "launch_block_device_mappings" : [
        {
           "device_name": "/dev/sda1",
           "volume_size": 60
        }
      ],
    "instance_type": "t2.large",
    "ami_users": "{{ user `REMOTE_AWS_ACCOUNT_ID` }}",
    "source_ami": "{{ user `source_ami` }}",
    "ami_name": "xyz-ami",
    "user_data_file": "./bootstrap_win.txt",
    "communicator": "winrm",
    "winrm_username": "Administrator",
    "winrm_password": "XXXXXXXXX",
    "tags": [{"Name":"testing","release":"packer"}],
    "ami_regions": [
      "ap-southeast-2",
      "us-east-2"
    ]
  }
],

使用Packer,这是您可以将AMI从一个帐户共享到另一个帐户的方式。 始终参考包装商文件:-https://www.packer.io/docs/builders/amazon/ebs 在这里你可以找到所有的信息

在“ami_用户”部分,您可以提到需要与之共享的AWS帐户

"ami_users": ["{{user `REMOTE_AWS_ACCOUNT_ID`}}"]
完整代码

   "builders": [
  {
    "type": "amazon-ebs",
    "access_key": "{{ user `aws_access_key` }}",
    "secret_key": "{{ user `aws_secret_key` }}",
    "region": "{{ user `region` }}",
    "launch_block_device_mappings" : [
        {
           "device_name": "/dev/sda1",
           "volume_size": 60
        }
      ],
    "instance_type": "t2.large",
    "ami_users": "{{ user `REMOTE_AWS_ACCOUNT_ID` }}",
    "source_ami": "{{ user `source_ami` }}",
    "ami_name": "xyz-ami",
    "user_data_file": "./bootstrap_win.txt",
    "communicator": "winrm",
    "winrm_username": "Administrator",
    "winrm_password": "XXXXXXXXX",
    "tags": [{"Name":"testing","release":"packer"}],
    "ami_regions": [
      "ap-southeast-2",
      "us-east-2"
    ]
  }
],

我有其他帐户详细信息!通过AWS仪表板很容易。我希望通过cli自动完成任务,ami_用户如何。。。。是否尝试使用tat?是的,您只需要编写一个脚本来运行此命令aws ec2 modify image attribute--image id ami-2bb65342--launch permission“{\“Add\”:[{\“UserId\”:\“123456789012\”}}“我有其他帐户详细信息…”!通过AWS仪表板很容易。我希望通过cli自动完成任务,ami_用户如何。。。。有人试过使用tat吗?是的,你只需要写一个脚本来运行这个命令aws ec2 modify image attribute--image id ami-2bb65342--launch permission“{\“Add\”:[{\“UserId\”:\“123456789012\”}}“这可以作为内联命令推送到打包程序provisioner中吗?!不幸的是,只有3个选项AWS Dashboard、EC2 Cli和AWS Cli“ami_用户”:[account1”、“account2”]从packer获得帮助。。除了复制到其他帐户,还可以作为私有AMI进行共享。这些选项(
-l
-a
)无效。检查是否可以将其作为内联命令推入封隔器供应器内?!不幸的是,只有3个选项AWS Dashboard、EC2 Cli和AWS Cli“ami_用户”:[account1”、“account2”]从packer获得帮助。。除了复制到其他帐户,还可以作为私有AMI进行共享。这些选项(
-l
-a
)无效。检查