# 通过AWS Control Tower简化跨账号部署

[AWS Control Tower](https://aws.amazon.com/controltower/) 提供 [500+ managed controls](https://docs.aws.amazon.com/controltower/latest/controlreference/controls-reference.html) 通过AWS Security Hub, AWS Config, 和 [service control policies](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) (SCPs) 简化安全合规管理流程，保护您的AWS资源。比如，你可能有一个检测控制提醒您 [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (Amazon S3) 存储桶 配置的变化，使其公网可以访问。你可能设置了一个响应控制来修复它。但是，即使你有两个控制策略，你可以添加新的一层防护，添加主动控制防止创建或者允许修改Amazon S3 bucket配置使其开放到公网。&#x20;

本文您将学习到如何创建一个账户作为AWS Control Tower的主账户。主账户中，您将启动您的AWS Control Tower环境，这将带来两个额外的核心账户：日志存档和审计。然后，您将使用AWS Service Catalog来创建一个新的配置账户。

{% hint style="warning" %}
目前AWS Control Tower只在Global Region可用，China Region不支持
{% endhint %}

## 什么是AWS Control Tower？

持续管理所有的账户是非常困难的，尤其当账户划分越来越多，企业规模不断增长的时候。AWS Control Tower可以帮助您集中管理您的AWS账户，将他们划分成不同的逻辑分组和层级，应用控制策略帮助您创建一个安全合规的环境。

**收益1: 解决能见度不足的问题**

能够看到所有环境和云账户。集中的管理窗口dashboard。

**收益2: 简单点击几下构建最佳实践AWS环境**

在这个环境的基础上再部署资源可以节省后期再进行安全合规整改的工作。

**收益3: 标准化的账户服务**

是基于AWS成千上万客户总结出来的最佳实践。

**收益4: 集中策略管理**

多账户统一策略，集中管理。

**收益5: 强化安全合规**

通过提供预置的[SCP](https://aws-gcr-wwso-security.gitbook.io/an-quan-zui-jia-shi-jian/1.-iam-shen-fen-shi-bie-yu-fang-wen-kong-zhi/xin-shou-qi-bu/iam-scp-de-ying-yong-chang-jing)实现额外一层的安全控制， 也叫**预防型控制**。通过提供预置的Config规则，持续检查资源的安全合规性，也叫**发现性控制**。此外还有一个preview的控制类型，**预测性控制**，也就是当使用CloudFormation部署资源时，通过CloudFormation Guard检查部署是否符合安全标准，如果不符合则拦截部署。

**收益6: 允许终端用户自助服务**

## **AWS Control Tower预启动检查**

1. 管理账户具有足够的服务限制；
2. 现有的IAM identity Center（之前的SSO）区域与AWS Control Tower的区域相同；
3. 管理账户不能有AWS Config或AWS CloudTrail的访问权限。

## 1 - 启用AWS Control Tower？

1. 创建新的账号/使用一个已有的账号作为<mark style="color:blue;">**主账号**</mark>。如果使用已有账号，需要确保AWS Config没有开启，已经开启的需要先关闭。并且AWS organizations中AWS Control Tower的状态为Access disabled。

<figure><img src="https://3752289132-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LTfg4e0NhLEbwi6WFJp%2Fuploads%2FQaxY2UR0RGTVamsRudLg%2FScreen%20Shot%202023-03-27%20at%2021.21.51.png?alt=media&#x26;token=81a240e9-b43b-4781-8abe-566471223b1d" alt=""><figcaption><p>AWS Organizations - Services</p></figcaption></figure>

2. 用超级管理员administrator登录主账号，进入Control Tower控制台。点击Get Started按钮创建新环境。
3. 按照提示信息进行选择和填写，其中注意创建新的账号时为账号指定一个邮箱地址。建议使用组邮箱而非个人邮箱，这样某个人离职也不会影响这个账号的使用。比如使用：<you-controltower-log-archive@gmail.com>

<figure><img src="https://3752289132-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LTfg4e0NhLEbwi6WFJp%2Fuploads%2FvH90PWkNzss1QElLfTtX%2FScreen%20Shot%202023-03-27%20at%2021.42.16.png?alt=media&#x26;token=0236f3bb-79c3-4830-a472-62462a2e14d0" alt=""><figcaption><p>Log archive account</p></figcaption></figure>

4. 选择完成以后，Control Tower就开始部署，可以在Dashboard看到部署进展。你会收到一些邮件，请关注您的收件箱这样你可以验证您的邮件地址和确认订阅Simple Notification Service（SNS）的提醒。

<figure><img src="https://3752289132-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LTfg4e0NhLEbwi6WFJp%2Fuploads%2FwHrDptqXUuEkkrrGVsq9%2FScreen%20Shot%202023-03-27%20at%2021.53.04.png?alt=media&#x26;token=3142d498-b544-466b-a7a1-ec202193718e" alt=""><figcaption><p>AWS Control Tower Dashboard</p></figcaption></figure>

## 2 - 分模块浏览

创建完成以后，花一些时间浏览Dashboard和其他组件，包括Organization，Account factory，Controls Library，Users and access，Shared accounts，Landing zone settings，Activities。

<table><thead><tr><th width="297">AWS Control Tower Component</th><th>描述</th></tr></thead><tbody><tr><td>Organization</td><td>该组件实现依赖<a href="https://aws.amazon.com/organizations/getting-started/">AWS Organizations</a>，您可以创建账户并分配资源，对账户进行分组以组织您的工作流程，应用政策进行治理，并通过对所有账户使用单一付款方式来简化计费。</td></tr><tr><td>Account factory</td><td>通过账户工厂，你可以提供新的账户并注册现有的账户，你可以为创建多个账户而规范你的账户和网络配置。该组件的实现依赖 <a href="https://console.aws.amazon.com/servicecatalog/home">AWS Service Catalog</a>。</td></tr><tr><td>Controls Library</td><td>该组件实现依赖<a href="https://docs.aws.amazon.com/config/">AWS Config</a>来进行安全合规治理。在此模块可以看到已经部署了很多预制的安全控制项，可以浏览资源是否满足安全基线要求。</td></tr><tr><td>Users and access</td><td>该组件实现依赖<a href="https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html">IAM Identity Center</a>，你的登陆区设置了一个目录来管理用户身份和单点登录，为你的用户提供跨账户的联合访问。它提供预配置的用户组和权限集，让你轻松地管理组织内的专门角色。</td></tr><tr><td>Shared accounts</td><td><p>AWS Control Tower创建了三个共享账户，每个账户都有特定用途，是其自动设置的一部分。</p><ul><li><strong>管理账户</strong>是用来管理和配置您的登陆区与AWS组织和IAM身份中心。</li><li><strong>日志存档账户</strong>用于集中存储所有账户的账户活动和资源配置日志。可以避免子账号自己管理日志随意修改的情况出现。</li><li><strong>审计账户</strong>用于启用安全和合规性角色来执行所有账户的审计活动。</li></ul></td></tr><tr><td>Landing zone settings</td><td>查看你的着陆区版本细节。如果需要的话，可以更新和修复。比如配置Home Region，是否进行加密，日志保存时长等等。</td></tr><tr><td>Activities</td><td>方便安全审计使用，活动页面显示从管理帐户发起的所有AWS Control Tower行动。它包括当你通过AWS Control Tower控制台导航时自动记录的操作。</td></tr></tbody></table>
