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

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

AWS Control Tower 的工作原理

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

AWS Control Tower 着陆区的结构

AWS Control Tower 中着陆区的结构如下:

  • Root — 包含着陆区域中所有其他 OU 的父级。

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

  • Sandbox OU — Sandbox OU 是在你启动着陆区时创建的(如果你启用了它)。此注册的 OU 和其他注册的 OU 包含您的用户用来执行 AWS 工作负载的注册账户。

  • IAM 身份中心目录 — 此目录存放您的 IAM 身份中心用户。它定义了每个 IAM 身份中心用户的权限范围。

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

设置着陆区后会发生什么

在您设置着陆区时,AWS Control Tower 会代表您在您的管理账户中执行以下操作:

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

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

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

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

  • 应用所有必需的检测控件来检测配置违规。

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

  • 除管理账户外,控制措施适用于整个组织。

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

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

共享账户有哪些?

在 AWS Control Tower 中,着陆区中的共享账户是在设置过程中配置的:管理账户、日志存档账户和审计账户。

什么是管理账户?

这是您专门为着陆区(landing zone)创建的账户。此账户用于为您的 landing zone 中的所有内容计费。它还用于 Account Factory 配置帐户,以及管理 OU 和控件。

注意

不建议从 AWS Control Tower 管理账户运行任何类型的生产工作负载。创建一个单独的 AWS Control Tower 账户来运行您的工作负载。

有关更多信息,请参阅管理账户

什么是日志存档账户?

此账户可用作 landing zone 中所有账户的 API 活动和资源配置日志的存储库。

有关更多信息,请参阅日志存档账户

什么是审计账户?

审计账户是一个受限账户,旨在让您的安全和合规团队能够读写您的 landing zone 中所有账户。从审计账户,您可以通过仅授予 Lambda 函数的角色对审核账户进行编程访问。审计账户不支持手动登录到其他账户。有关 Lambda 函数和角色的更多信息,请参阅配置 Lambda 函数以代入另一个函数。 AWS 账户

有关更多信息,请参阅审计账户

控件的工作原理

控制是一条高级规则,可为您的整体 AWS 环境提供持续的治理。每个控件都强制执行一条规则,并用通俗易懂的语言表达。您可以随时从 AWS Control Tower 控制台或 AWS Control Tower API 中更改有效的选修或强烈推荐的控制措施。强制性控制始终适用,并且无法更改。

预防性控制措施可防止采取行动。例如,名为 “不允许更改 Amazon S3 存储桶的存储桶策略”(以前称为 “禁止更改日志存档策略”)的选择性控件可防止日志档案共享账户中的任何 IAM 策略更改。任何执行所阻止操作的尝试都将被拒绝并记录在 CloudTrail 中。资源也已登录 AWS Config。

Detective 控件会在特定事件发生时对其进行检测并将操作记录在内CloudTrail。例如,强烈推荐使用名为 “检测是否为附加到 Amazon EC2 实例的 Amazon EBS 卷启用了加密” 的控件可以检测未加密的 Amazon EBS 卷是否已连接到您的着陆区中的 EC2 实例。

在您的账户中配置资源之前,主动控制会检查资源是否符合贵公司的政策和目标。如果资源不合规,则不会对其进行配置。主动控制通过 AWS CloudFormation 模板监控将在您的账户中部署的资源。

对于那些熟悉的人 AWS:在 AWS Control Tower 中,预防性控制是通过服务控制策略 (SCP) 实施的。Detective 控件是通过 AWS Config 规则实现的。主动控制是通过 AWS CloudFormation 挂钩实现的。

AWS Control Tower 是如何使用的 StackSets

AWS Control Tower 用于 AWS CloudFormation StackSets 在您的账户中设置资源。每个堆栈集都有 StackInstances 对应于账户和 AWS 区域 每个账户的堆栈集。AWS Control Tower 为每个账户和每个地区部署一个堆栈集实例。

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

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

以下是根据更新期间指定的 AWS CloudFormation 参数简要概述预期的行为:

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

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