组织多个项目(AWS)

14

在我们的团队中,我们使用AWS作为我们的主要云服务提供商,目前我们有三个项目托管在他们的平台上。

接下来几周我们将要有两个新项目,但首先,我们想要组织我们的项目,因为我们当前的组织有点杂乱。

我们希望我们的项目遵循以下规则进行组织:

  • 每个项目必须拥有预发布和生产环境。
  • 每个项目都是独立的,因此不可能从另一个项目内部查看该项目的资源,例如 VPC 和 S3 存储桶。
  • 客户负责支付项目(预发布和生产环境)的账单。
  • 即使客户负责支付账单,我们也必须能够访问环境以部署代码和执行其他与开发、测试和运营相关的任务。
  • 我们可以为每个项目分配一个开发团队。开发人员可以同时参与一个或多个项目。此外,应该可以将我们的开发人员移动到其他项目中,并从一个项目中删除他们的访问权限。

Ideal organization for projects in AWS

那么,在AWS中是否可以根据先前提到的规则组织项目?如果可以,有哪些好资源可以学习如何做到这一点?如果不行,哪些云服务供应商允许按照我们想要的方式组织项目?

感谢您的关注和时间。我期待着您的回复。

1个回答

16
您希望将特定于项目的费用分配给客户,并希望每个项目都是独立的,这表明您最好为每个项目(或每个客户)使用单独的AWS账户
通过将项目保留在单独的AWS账户中:
  • 每个账户只与特定项目相关的成本
  • 每个账户中的资源将被保持分离
  • 每个账户中的用户权限将被保持分离
  • 您可以在同一账户内创建分段和生产环境(见下文)
您可以使用AWS Organizations将多个账户连接起来:

AWS Organizations是一个账户管理服务,允许您将多个AWS账户合并为您创建并集中管理的组织。 AWS Organizations包括账户管理和合并计费功能,使您能够更好地满足业务的预算,安全和合规需求。作为组织的管理员,您可以在组织中创建账户并邀请现有账户加入组织。

有些公司更进一步,也会将暂存 (Staging) 和生产 (Production) 存储在不同的 AWS 账户中。他们这样做是因为希望将生产资源和用户与非生产资源和用户隔离开来。这可以减少某人在想要更新暂存时不小心更改了生产环境的几率。虽然您可以使用 IAM 权限来减少此类意外发生的可能性,但将暂存和生产环境存储在单独的账户中可以确保仅具备暂存权限的人无法影响生产环境。

您的公司应该拥有所有的账户,以便您可以管理和控制它们。每月,您将收到一份汇总的账单,但它会按账户分类显示成本明细。因此,您将知道应向客户收取多少费用。

开发人员需要针对每个 AWS 账户单独登录。因此,如果他们想要在项目 1 上工作,他们需要登录到项目 1 的 AWS 账户。然后他们就可以访问项目 1 中的资源,但不能访问其他项目中的资源。当他们想要在另一个项目上工作时,他们需要使用其他项目的 AWS 账户凭据重新登录。您可能认为这增加了额外的工作,但它也增加了额外的安全性,并确保每个客户的资源被完全隔离。

使用独立账户的最后一个好处是,如果客户希望接管他们的系统,在未来,您可以将AWS账户分配给他们,而无需对其资源进行任何分离工作。这就像交出房子的钥匙一样-他们可以搬进来,而不需要任何人搬出去。

作为单个开发人员使用每个项目的多个账户,这意味着您应该使用许多不同的电子邮件地址,一个用于每个 AWS 账户。在仍然使每个项目隔离的情况下,是否有绕过此问题的方法? - dimyG
您可以使用 AWS 组织 来管理多个账户,并将计费汇总到“主”账户。 - John Rotenstein
这就是我的做法,但你仍然需要为每个用户使用一个新的电子邮件地址。因此我使用了我的主要gmail的电子邮件别名作为新用户的电子邮件。如果你的gmail是"your-name@gmail.com",那么像"your-name+whatever@gmail.com"这样的电子邮件地址会成为你主要地址的别名。所以你可以使用它。我现在面临的问题是,当我以新用户身份登录时,仍然可以看到我以前项目的所有资源。 - dimyG
您可以在每个“子”帐户中创建一个IAM角色,然后从“主”帐户中的IAM用户扮演该角色。这需要一些配置,但可以避免“多个电子邮件”的问题。 - John Rotenstein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接