将亚马逊资源从一个帐户复制到另一个帐户

时间:2015-02-23 12:19:23

标签: amazon-web-services

我有两个amazon aws帐户,我想将所有SQS EC2 RDS S3 CLOUDFRONT SECURITY GROUP'S移至新帐户。

我转移到新帐户后EC2 AMI IMAGE中有AWS CLI个帐户ID和帐户密钥,如何更改所有EC2帐户ID和帐户新帐户的密钥?

最好和最快的方法是什么?

谢谢

3 个答案:

答案 0 :(得分:1)

如果您使用 CloudFormation 构建了整个基础架构,您可以更轻松地复制它,即使在另一个帐户中也是如此。

您仍然需要处理数据迁移,这取决于您的部署设置。

如果您使用配置管理,您的大部分操作系统也可以复制到您的其他帐户中。

虽然 AWS 确实有一种方法可以根据您当前的环境对 CloudFormation 模板进行逆向工程,但我从未尝试过,听起来您应该试一试。

aws cli 具有移动 s3 数据“aws s3 sync s3://from s3://to”的命令。您可能需要导出或以其他方式共享 RDS 和 SNS 等其他数据。

SQS

创建一个新的 SQS 队列并指向它的代码/配置。或者,您可以启用跨账户委托(尽管这不会改变所有权)。 EC2

无法移动正在运行的实例。创建新实例并重新配置它们(例如,使用 ansible/salt/puppet/chef)或创建 EC2 的 AMI,共享 ami,然后重新启动。 RDS

RDS 实例无法复制。您需要提取数据并将其传输到新的数据库实例。 S3

无法在帐户之间移动存储桶。您可以将数据复制到新存储桶中或启用跨账户委托(尽管这不会更改所有权)。

答案 1 :(得分:0)

您提到的一些内容是配置。有些是满足的。让我们展开它并浏览每一个。一般来说,答案是“不”。

SQS

在其上创建新的SQS队列并指向代码/配置。或者,您可以enable cross-account delegation(虽然这不会改变所有权)。

EC2

Running instances cannot be moved。创建新实例并重新配置它们(例如,使用ansible / salt / puppet / chef)或创建EC2的AMI,share the ami,然后重新启动。

RDS

RDS instances can't be copied. You will need to extract the data and transfer it to a new database instance.

S3

无法在帐户之间移动存储桶。您可以copy data into a new bucketenable cross-account delegation(虽然这不会改变所有权)。

的Cloudfront

无法移动Cloudfront。但是,在一个新帐户中创建它很容易,因为它基本上是无状态的(除了设置它之外你不需要担心任何事情)。

安全小组

无法移动安全组。

帐户和秘密

  

在转移到新帐户后,我在AWS CLI的AMI IMAGE中拥有EC2帐户ID和帐户密钥,如何将所有EC2帐户ID和帐户密钥更改为新帐户?

使用AWS IAM生成具有安全密钥的正确用户。这涉及使用新的ID和密钥。如果您使用ID和密钥,则应该可以轻松旋转它们以降低安全风险。

另一种方法是使用IAM roles,这意味着您不需要存储或使用显式密钥。

底线

最终,您应该将大部分信息保留在配置管理中。这与使用CloudFormation几乎是微不足道的,{{3}}描述了整个堆栈(EC2,云端,安全组,数据库),并且可以在单个命令中创建它们。

答案 2 :(得分:0)

我只会使用AWS Organizations将您的子帐户汇总到父帐户,而不是试图手动移动所有帐户。