AWS Control Tower 的工作原理 - AWS Control Tower

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS Control Tower 的工作原理

本部分将简要介绍 AWS Control Tower 的工作原理。您的着陆区(landing zone)是一个架构精良的多账户环境,可以存放您的所有资源。 AWS 您可以使用此环境对所有 AWS 账户强制执行合规性法规。

AWS Control Tower 登录区的结构

AWS Control Tower 中登录区的结构如下所示:

  • Root — 包含着陆区 OUs 中所有其他内容的父级。

  • 安全 OU – 此 OU 包含日志存档和审计账户。这些账户通常被称为共享账户。启动着陆区时,您可以为这些共享账户选择自定义名称,并且可以选择将现有 AWS 账户引入 AWS Control Tower,以确保安全和记录。但是,以后不能重命名这些账户,也不能在初始启动后添加现有账户,以确保安全性和日志记录。

  • 沙盒 OU - 如果启用了沙盒 OU,则会在启动登录区时创建该 OU。该账户和其他注册账户 OUs包含您的用户用来执行其工作 AWS 负载的注册账户。

  • IAM 身份中心目录 — 默认情况下,此目录容纳您的 IAM 身份中心用户。它定义每个 IAM Identity Center 用户的权限范围。或者,您可以选择自行管理您的身份和访问控制。有关更多信息,请参阅使用 AWS IAM 身份中心和 AWS Control Tower

  • IAM Identity Center 用户 — 这些是您的用户在您的着陆区域中执行 AWS 工作时可以假设的身份。

设置登录区时会发生什么

在设置登录区时,AWS Control Tower 将代表您在管理账户中执行以下操作:

  • 创建包含在 AWS Organizations 组织根结构中的两个组织单位 (OUs):安全和沙盒(可选)。

  • 在安全 OU 中创建或添加两个共享账户:日志存档账户和审计账户。

  • 在 IAM Identity Center 中创建一个云原生目录,其中包含预配置的组和单点登录访问,或者如果选择默认的 AWS Control Tower 配置,它将允许您自行管理身份提供者。

  • 应用所有强制性的预防性控件来执行策略。

  • 应用所有强制性的检测性控件来检测配置违规情况。

  • 预防性控件不适用于管理账户。

  • 除管理账户外,控件将应用于整个组织。

安全管理您的 AWS Control Tower 登录区和账户中的资源
  • 创建着陆区时,会创建许多 AWS 资源。要使用 AWS Control Tower,您不能在本指南中描述的受支持方法之外修改或删除这些 AWS Control Tower 托管资源。删除或修改这些资源将导致登录区进入未知状态。有关详细信息,请参阅 关于创建和修改 AWS Control Tower 资源的指南

  • 当您启用可选控件(带有强烈推荐或选择性指导的控件)时,AWS Control Tower 会创建在您的账户中管理的 AWS 资源。请勿修改或删除 AWS Control Tower 所创建的资源。这样做可能会导致控件进入未知状态。

AWS Control Tower 是如何使用的 StackSets

默认情况下,AWS C CloudFormation StackSets ontrol Tower 使用在您的账户中设置资源。每个堆栈集都有 StackInstances 对应于账户和 AWS 区域 每个账户的堆栈集。AWS Control Tower 为每个账户和区域部署一个堆栈集实例。

AWS Control Tower 会根据 CloudFormation 参数 AWS 区域 有选择地将更新应用于某些账户。将更新应用于某些堆栈实例时,其他堆栈实例可能会处于 Outdated (过时) 状态。这是正常的,也是预期行为。

当堆栈实例处于 Outdated (过时) 状态时,通常意味着对应于该堆栈实例的堆栈未采用堆栈集中的最新模板。堆栈仍采用旧模板,因此它可能未包含最新的资源或参数。堆栈仍然完全可用。

下面简要总结了根据更新期间指定的 CloudFormation 参数将出现哪些预期行为:

如果堆栈集更新包括对模板的更改(也就是说,如果指定了TemplateBodyTemplateURL属性),或者指定了Parameters属性,则在更新指定账户中的堆栈实例之前,将所有堆栈实例的状态 CloudFormation 标记为 “已过期” 和 AWS 区域。如果堆栈集更新不包括对模板或参数的更改,则 CloudFormation 更新指定账户和区域中的堆栈实例,同时保留所有其他堆栈实例的现有堆栈实例状态。要更新与堆栈集关联的所有堆栈实例,请勿指定 AccountsRegions 属性。

有关更多信息,请参阅《 CloudFormation 用户指南》中的 “更新堆栈集”。