10

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

在接下来的几周里,我们还有 2 个项目,但首先,我们要组织我们的项目,因为我们目前的组织有点混乱。

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

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

AWS 中项目的理想组织

那么,是否可以按照前面提到的规则在 AWS 中组织项目呢?如果是这样,有什么好的资源来学习如何做到这一点?如果没有,哪些云提供商允许按照我们想要的方式组织项目?

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

4

1 回答 1

11

您希望向客户收取特定项目费用并且希望每个项目独立的事实表明,您最好的选择是为每个项目(或每个客户)使用单独的 AWS 账户。

通过将项目保存在单独的 AWS 账户中:

  • 每个帐户将仅具有与特定项目相关的成本
  • 每个帐户中的资源将分开保存
  • 每个帐户中的用户权限将分开保存
  • 您可以在同一帐户中创建登台和生产环境(见下文)

您可以使用AWS Organizations将多个账户连接在一起:

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

一些公司更进一步,还在单独的 AWS 账户中进行暂存和生产。他们这样做是因为他们希望使生产资源和用户远离非生产资源和用户。这减少了有人在打算更新 Staging 时意外更改 Production 的机会。虽然您可以使用 IAM 权限来减少此类事情的发生,但将暂存和生产保存在不同的账户中可以保证只有暂存权限的人无法影响生产。

您的公司应保留所有帐户的所有权,以便您可以管理和控制它们。每个月,您都会收到一份综合账单,但会显示按账户细分的费用。因此,您将知道向您的客户收取多少费用。

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

使用单独账户的最后一个好处是,将来,如果客户希望控制他们的系统,您可以将 AWS 账户分配给他们,而无需做任何工作来将他们的资源与其他客户分开。这就像交出房子的钥匙——他们可以搬进来,而无需任何人搬出去。

于 2019-05-31T05:48:42.587 回答