

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

# Customizations for AWS Control Tower（CfCT）概述
<a name="cfct-overview"></a>

*AWS Control Tower* (cfcT) 的自定义可帮助您自定义 AWS Control Tower 着陆区，并与 AWS 最佳实践保持一致。使用 AWS CloudFormation 模板和服务控制策略（SCPs）实现自定义。

此 CfCT 功能与 AWS Control Tower 生命周期事件集成，因此您的资源部署会与登录区保持同步。例如，在通过 Account Factory 创建新账户时，将自动部署附加到该账户的所有资源。您可以将自定义模板和策略部署到组织内的个人账户和组织单位 (OUs)。

**注意**  
在 cfcT 中配置的目标组织单位 (OU) 必须已在 AWS Control Tower 中 AWSControlTowerBaseline 启用。有关详细信息 AWSControlTowerBaseline，请参阅：[适用于 OU 级别的基准类型](types-of-baselines.md#ou-baseline-types)。

 以下视频介绍了关于部署可扩展的 CfCT 管道和常见 CfCT 自定义项的最佳实践。

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/fDtxiBW_J8I/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/fDtxiBW_J8I)


以下部分针对部署 Customizations for AWS Control Tower（CfCT），介绍了架构方面的注意事项以及相关配置步骤。它包括一个指向[AWS CloudFormation](https://aws.amazon.com/cloudformation)模板的链接，该模板根据安全性和可用性 AWS 的最佳实践来启动、配置和运行所需 AWS 服务。

*本主题面向在 AWS 云架构方面拥有实践经验的 IT 基础设施架构师和开发人员。*

有关 AWS Control Tower 自定义项 (cfcT) 的最新更新和变更的信息，请参阅存储库中的 [changelog.md 文件。](https://github.com/aws-solutions/aws-control-tower-customizations/blob/master/CHANGELOG.md) GitHub 

# 架构概述
<a name="architecture"></a>

部署 cfcT 将在 AWS 云中构建以下环境，并以 Amazon S3 存储桶作为配置源。

![\[AWS Control Tower 自定义项的架构图\]](http://docs.aws.amazon.com/zh_cn/controltower/latest/userguide/images/customizations-for-aws-control-tower-architecture-diagram.png)


cfcT 包括一个您在 AWS Control Tower 管理账户中部署的 AWS CloudFormation 模板。该模板会启动构建工作流所需的所有组件，因此您可以自定义 AWS Control Tower 登录区。

**注意**  
CfCT 必须部署在 AWS Control Tower 主区域和 AWS Control Tower 管理账户中，因为 AWS Control Tower 登录区正是部署在这些位置。有关设置 AWS Control Tower 登录区的信息，请参阅 [开始使用 AWS Control Tower](getting-started-with-control-tower.md)。

在部署 CfCT 时，它会通过 [Amazon Simple Storage Service](https://aws.amazon.com/s3/)（Amazon S3）将自定义资源打包并上传到代码管道源。上传过程会自动调用服务控制策略 (SCPs) 状态机和[AWS CloudFormation StackSets](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html)状态机以 SCPs 在 OU 级别部署，或者在 OU 或账户级别部署堆栈实例。

**备注**  
默认情况下，CfCT 创建一个 Amazon S3 存储桶来存储管道源。如果您已有 AWS CodeCommit 存储库，则可以将其位置更改为[CodeCommit](https://aws.amazon.com/codecommit/)存储库。有关更多信息，请参阅 [[Set up Amazon S3 as the configuration source](cfct-s3-source.md)](cfct-s3-source.md)。

**CfCT 会部署两个工作流：**
+ [AWS CodePipeline](https://aws.amazon.com/codepipeline/) 工作流
+ 以及 AWS Control Tower 生命周期事件工作流。

**工作 AWS CodePipeline 流程**

工作 AWS CodePipeline 流程用于配置 AWS CodePipeline、[AWS CodeBuild](https://aws.amazon.com/codebuild/)项目和[AWS Step Functions](https://aws.amazon.com/step-functions/)协调组织内部的 AWS CloudFormation StackSets 管理。 SCPs

当您上传配置包时，CfCT 会调用代码管道来运行三个阶段。
+ **构建阶段** — 使用 AWS CodeBuild 验证配置包的内容。
+ **SCP Stag** e — 调用服务控制策略状态机，该状态机调用 AWS Organizations API 进行创建。 SCPs
+ CloudFormation St@@ **ag** e — 调用堆栈集状态机来部署您在清单[文件中提供的账户列表或 OUs中](the-manifest-file.md)指定的资源。

在每个阶段，代码管道都会调用堆栈集和 SCP 步骤函数，这些函数将自定义堆栈集部署 SCPs 到目标个人账户或整个组织单位。

**备注**  
有关自定义配置包的详细信息，请参阅 [CfCT 自定义指南](cfct-customizations-dev-guide.md)。

**AWS Control Tower 生命周期事件工作流**

在 AWS Control Tower 中创建新账户时，[生命周期事件](lifecycle-events.md)可以调用 AWS CodePipeline 工作流程。您可以通过此工作流程自定义配置包，该工作流程包括[亚马逊 EventBridge事件规则、亚马逊](https://aws.amazon.com/eventbridge/)[简单队列服务](https://aws.amazon.com/sqs/) (Amazon SQS) 先入先出 (FIFO) 队列和函数。[AWS Lambda](https://aws.amazon.com/lambda/)

当 Amazon EventBridge 事件规则检测到匹配的生命周期事件时，它会将事件传递到 Amazon SQS FIFO 队列，调用该 AWS Lambda 函数，然后调用代码管道来执行堆栈集的下游部署和。 SCPs

# 费用
<a name="cost"></a>

运行 cfCT 的成本取决于运行次数、 AWS CodePipeline 运行时长、 AWS Lambda 函数的 AWS CodeBuild 数量和持续时间以及发布的 Amazon EventBridge 事件数量。例如，如果您使用 **build.general1.small** 在一个月内运行 100 个构建，其中每个构建运行 5 分钟，则运行 CfCT 的大致成本为**每月 3.00 美元**。有关完整详细信息，您可以查看您正在运行的每项 AWS 服务的定价网页。

删除模板后，将保留亚马逊简单存储服务 (Amazon S3) Service 存储桶 AWS CodeCommit 和基于 Git 的存储库资源，以保护您的配置信息。根据您选择的选项，将根据存储在 Amazon S3 存储桶中的数据量和 Git 请求数量（不适用于 Amazon S3 资源）向您收费。有关详情，请参阅 [Amazon S3](https://aws.amazon.com/s3/pricing/) 和 [AWS CodeCommit](https://aws.amazon.com/codecommit/pricing/) 定价。