建立您的最佳实践 AWS 环境

为何要建立多账户 AWS 环境?

AWS 使您能够更快地试验、创新和扩展,并提供最灵活、安全的云环境。为了保障您应用程序的安全,AWS 采用的一种重要手段是使用 AWS 账户。AWS 账户为您的 AWS 资源提供了自然的安全性、访问权限和账单边界,并使您能够实现资源独立性和隔离。例如,您账户之外的用户默认无法访问您的资源。同样,您使用的 AWS 资源的费用会分配给您的账户。尽管您可以只使用一个账户开启您的 AWS 旅程,但 AWS 建议建立多个账户,因为您工作负载的大小和复杂性会不断增长。使用多账户环境是一种 AWS 最佳实践,可提供多项优势:

  • 根据各种要求进行快速创新 – 您可以将 AWS 账户分配给公司内的不同团队、项目或产品,以确保他们都能快速创新并考虑到他们自己的安全性要求。
  • 简化的记账方式 – 使用多个 AWS 账户帮助识别哪个产品或服务系列产生了 AWS 费用,以简化 AWS 费用的分配方式。
  • 灵活的安全控制 – 如果工作负载或应用程序具有特定的安全性要求或者需要遵循严格的合规性指南(例如 HIPAA 或 PCI),您可以使用多个 AWS 账户将它们隔离。
  • 轻松适应业务流程 – 您可以轻松组织多个 AWS 账户,以便尽可能反映贵公司业务流程的各项运营、监管和预算要求。

最终,多账户 AWS 环境使您能够借助云来更快地发展,并构建差异化的产品和服务,同时确保以安全、可扩展和具有弹性的方式完成这些活动。但您应该如何构建多账户 AWS 环境呢? 您可能遇到一些问题,例如要使用什么样的账户结构、应当实施哪些策略和防护机制,或者如何建立您的环境以进行审计。

本指南的其余部分将引导您了解 AWS 推荐用于构建安全且富有成效的多账户 AWS 环境(通常称为“登录区”)的要素。这些要素代表了一些最佳实践,这些实践可用于构建初始框架,但仍能在您的 AWS 工作负载随着时间的推移而增大时提供灵活性。

用于建立多账户 AWS 环境的最佳实践

架构完善的多账户 AWS 环境的基础是 AWS Organizations,这项 AWS 服务使您能够集中管理和监管多个账户。在开始之前,我们来熟悉几个术语。组织部门 (OU) 是对您的 AWS Organizations 中的账户进行的逻辑分组。使用 OU,您可以将账户整理到层次结构中,并便于实施管理控制。您需要通过 AWS Organizations 策略来实施这样的控制。服务控制策略 (SCP) 是一项策略,它定义了您的企业中的账户能够执行的 AWS 服务操作(例如 Amazon EC2 Run Instance)。

首先考虑您应创建哪些账户分组,即 OU。您的 OU 应当基于职能或一组常用的控制,而不是照搬贵公司的报告结构。AWS 建议您首先考虑安全性和基础设施。大多数企业都拥有集中化的团队,这些团队负责满足整个企业的这些需求。因此,我们建议为下面这些特定的职能创建一组职能 OU:

  • 基础设施:用于共享的基础设施服务,例如联网和 IT 服务。为您需要的每种基础设施服务创建账户。
  • 安全性:用于安全性服务。为日志归档、安全性只读权限、安全性工具和 break-glass 创建账户。

鉴于大多数公司对于生产工作负载、基础设施和安全性具有不同的策略要求,因此可以为非生产环境 (SDLC) 和生产环境 (Prod) 创建嵌套 OU。SDLC OU 中的账户托管非生产工作负载,因此不应具有来自其他账户的生产依赖项。如果生命周期不同阶段之间的 OU 策略存在差异,可以将 SDLC 拆分成多个 OU(例如开发和预生产)。Prod OU 中的账户托管生产工作负载。

在 OU 级别实施策略,以按照您的要求监管 Prod 环境和 SDLC 环境。与在个别账户级别实施策略相比,在 OU 级别实施策略通常是一种更好的实践方法,因为它可以简化策略管理和任何潜在的问题排查。

实施了中央服务之后,我们建议创建直接与构建或运行产品或服务相关的 OU。很多 AWS 客户会在奠定基础之后构建这些 OU。

  • 沙盒:保留可供个别开发人员用来试验 AWS 服务的 AWS 账户。确保这些账户能够从内部网络中分离,并建立一个用于设置支出上限的流程以防止过度使用。
  • 工作负载:包含用于托管对外应用程序服务的 AWS 账户。您应(像对基础 OU 那样)在 SDLC 和 Prod 环境中构建 OU,以隔离并严密控制生产工作负载。

建立了基础 OU 和面向生产的 OU 之后,建议根据您的具体要求添加用于维护和持续扩张的 OU。下面是一些基于现有 AWS 客户的实践的常见主题:

  • 策略暂存:保留 AWS 账户,您可以在这些账户中测试所提议的策略变更,然后在企业内广泛应用这些变更。首先在目标 OU 的账户级别实施变更,然后慢慢推广到其他的账户和 OU 以及企业的其余部分。
  • 已暂停:包含已经关闭和正在等待从企业中删除的 AWS 账户。将一个拒绝所有操作的 SCP 附加到此 OU。确保为账户标记了详细信息,以便能够在需要还原时进行追溯。
  • 个别商业用户:具有有限权限的 OU,包含用于商业用户(开发人员除外)的 AWS 账户,这些商业用户可能需要创建与企业生产力相关的应用程序,例如建立一个 S3 存储桶以便与合作伙伴共享报告或文件。
  • 例外情况:保留用于商业使用案例的 AWS 账户,这些使用案例具有高度定制的安全性和审计要求,而且它们不同于工作负载 OU 中定义的那些安全性和审计要求。例如为需要保密的新应用程序或功能专门建立一个 AWS 账户。在账户级别使用 SCP 满足定制的需求。考虑使用 CloudWatch Events 和 AWS Config 规则建立一个检测和响应系统。
  • 部署:包含用于执行 CI/CD 部署的 AWS 账户。对于 CI/CD 部署,如果您使用的监管和运营模式不同于工作负载 OU(Prod 环境和 SDLC 环境)中的账户,则可以创建此 OU。CI/CD 的分配有助于降低企业对中心团队运营的共享 CI/CD 环境的依赖性。对于用于工作负载 OU 中的应用程序的每组 SDLC/Prod AWS 账户,在 Deployments OU(部署 OU)下为 CI/CD 创建一个账户。
  • 过渡:这在将现有的账户和工作负载移到您企业中的标准区域之前用作一个临时保留区。这可能是因为账户是所获取的内容的一部分、之前由第三方管理,或者是来自原有组织结构的旧账户。 

结论

架构完善的多账户策略可以帮助您在 AWS 中更快地进行创新,并确保满足您的安全性和可扩展性需求。此页面上说明的框架代表 AWS 最佳实践,您应将这些实践用作您的 AWS 旅程的起点。

要开始使用,请参阅 AWS Organizations 入门指南,以构建您自己的多账户 AWS 环境。您也可以使用 AWS Control Tower,只需单击几下鼠标即可建立一个安全的初始 AWS 环境。