

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

# 注册拥有现有 AWS Config 资源的账户
<a name="existing-config-resources"></a>

本主题提供了一种如何注册拥有现有 AWS Config 资源的账户 step-by-step的方法。有关如何检查现有资源的示例，请参阅 [使用 AWS Config 资源注册账户](enroll-account.md#example-config-cli-commands)。

**AWS Config 资源示例**

以下是您的账户可能已经拥有的一些 AWS Config 资源类型。可能需要对这些资源进行修改，这样才能将账户注册到 AWS Control Tower 中。
+ AWS Config 录音机
+ AWS Config 配送渠道
+ AWS Config 聚合授权

**限制**
+  在 landing zone 中配置的管理账户或服务集成账户不支持使用现有 AWS Config 资源注册账户。
+  只有使用OU注册或重新注册工作流程才能注册该帐户，该工作流程启用. `AWSControlTowerBaseline` 无法通过启用或重置来注册该`ConfigBaseline`帐户。
+  不支持使用现有 AWS Config 资源的账户[使用自动注册功能移动和注册账户](account-auto-enrollment.md)。
+ 如果对资源进行修改并在账户上造成偏移，则 AWS Control Tower 不会更新资源。
+ AWS Config 不受 AWS Control Tower 管理的区域中的资源不会发生变化。

**假设**
+ 您已经部署了 AWS Control Tower 着陆区。
+ 您的账户尚未注册 AWS Control Tower。
+ 您的账户在至少一个受 AWS Control Tower 管理的区域中至少有一个预先存在的 AWS Config 资源。
+ 您的账户不存在监管偏移。

**注意**  
如果您尝试注册一个已有 Config 资源但未添加到允许列表中的账户，注册将会失败。此后，如果您尝试将同一账户添加到允许列表中，AWS Control Tower 将无法验证该账户是否已正确预置。您必须先从 AWS Control Tower 取消预置账户，然后才能申请允许列表并进行注册。如果您只是将该账户移动到另一个 AWS Control Tower OU，这会导致监管偏移，同样也会阻止将该账户添加到允许列表中。

 有关描述使用现有资源注册账户的自动方法的博客，请参阅使用现有 AWS Config 资源[自动将账户注册到 AWS Control Tower](https://aws.amazon.com//blogs/mt/automate-enrollment-of-accounts-with-existing-aws-config-resources-into-aws-control-tower/)。 AWS Config 

**此过程有 5 个主要步骤。**

1. 将账户添加到 AWS Control Tower 允许列表中。

1. 在该账户中创建一个新的 IAM 角色。

1. 修改先前存在的 AWS Config 资源。

1. 在不存在 AWS Config 资源的 AWS 地区创建资源。

1. 在 AWS Control Tower 中注册账户。

**在继续执行之前，请考虑以下有关此过程的预期情况。**
+ AWS Control Tower 不会在此账户中创建任何 AWS Config 资源。
+ 注册后，AWS Control Tower 控件会自动保护您创建的 AWS Config 资源，包括新的 IAM 角色。
+ 如果在注册后对 AWS Config 资源进行了任何更改，则必须先更新这些资源以使其与 AWS Control Tower 设置保持一致，然后才能重新注册账户。

## 第 1 步：联系支持人员，将账户添加到允许列表
<a name="existing-config-step-1"></a>

**在工单主题行中包含以下语句：**

*将拥有现有 AWS Config 资源的账户注册到 AWS Control Tower*

**在工单正文中提供以下详细信息：**
+ 管理账号
+  拥有现有 AWS Config 资源的成员账户的账号。您将能够为所有想要注册的账户创建支持案例。
+ 您为 AWS Control Tower 设置选择的主区域

**注意**  
将账户添加到允许列表需要 2 个工作日的时间。

## 步骤 2：在成员账户中创建一个新的 IAM 角色
<a name="existing-config-step-2"></a>

1. 打开成员账户的 CloudFormation 控制台。

1. 使用以下模板创建一个新的堆栈。

   ```
   AWSTemplateFormatVersion: 2010-09-09
   Description: Configure AWS Config
       
   Resources:
     CustomerCreatedConfigRecorderRole:
       Type: AWS::IAM::Role
       Properties:
         RoleName: aws-controltower-ConfigRecorderRole-customer-created
         AssumeRolePolicyDocument:
           Version: 2012-10-17		 	 	 
           Statement:
             - Effect: Allow
               Principal:
                 Service:
                   - config.amazonaws.com
               Action:
                 - sts:AssumeRole
         Path: /
         ManagedPolicyArns:
           - arn:aws:iam::aws:policy/service-role/AWS_ConfigRole
           - arn:aws:iam::aws:policy/ReadOnlyAccess
   ```

1. 将堆栈的名称提供为 **CustomerCreatedConfigRecorderRoleForControlTower**

1. 创建堆栈。

**注意**  
您创建 SCPs 的任何内容都应排除`aws-controltower-ConfigRecorderRole*`角色。请勿修改限制 AWS Config 规则执行评估能力的权限。  
请遵循这些准则，这样当你被`aws-controltower-ConfigRecorderRole*`阻止调用 Config `AccessDeniedException` 时 SCPs ，你就不会收到。

## 步骤 3：确定已有资源 AWS 的地区
<a name="existing-config-step-3"></a>

对于账户中的每个受管辖区域（AWS Control Tower 管辖），请识别并记下至少具有前面显示的现有 AWS Config 资源示例类型之一的区域。

## 步骤 4：确定没有任何 AWS Config 资源 AWS 的地区
<a name="existing-config-step-4"></a>

对于账户中的每个受管辖区域（AWS Control Tower 管辖），识别并记下没有前面所示示例类型 AWS Config 资源的区域。

## 步骤 5：修改每个 AWS 区域的现有资源
<a name="existing-config-step-5"></a>

在此步骤中，需要提供有关您的 AWS Control Tower 设置的以下信息。
+  `AUDIT_ACCOUNT`-AWS Config 服务集成账户（以前称为审计账户）ID 
+  `CONFIG_BUCKET`-AWS S3 存储桶，AWS Config 向其提供配置快照和配置历史记录文件。在继续执行后续步骤之前，请找到并确认 AWS S3 存储桶存在。
  + 对于 landing zone 版本 3.3 或更低版本，AWS S3 存储桶命名`aws-controltower-logs-LOGGING_ACCOUNT-HOME_REGION`，位于日志账户中。
  + 对于 landing zone 版本 4.0 或更高版本，AWS S3 存储桶命名为`aws-controltower-config-logs-AUDIT_ACCOUNT-<REGION_STRING>-<SUFFIX_STRING>`，位于 AWS Config 服务集成账户（以前称为审核账户）中。
+ `IAM_ROLE_ARN`-在步骤 2 中创建的 IAM 角色 ARN
+ `ORGANIZATION_ID` - 管理账户的组织 ID
+ `MEMBER_ACCOUNT_NUMBER` - 正在修改的成员账户
+ `HOME_REGION` - AWS Control Tower 设置的主区域。

 按照下文步骤 5a 至 5c 中给出的说明，修改每个现有资源。

## 步骤 5a。 AWS Config 录音机资源
<a name="modify-config-recorder-resources-step-5a"></a>

每个 AWS 区域只能存在一个 AWS Config 录制器。如果已经存在一个，需按如下所示修改设置。在您的主区域中，将 `GLOBAL_RESOURCE_RECORDING` 项替换为 **true**。对于存在 AWS Config 录制器的其他区域，将该项目替换**为 false**。
+ **Name：**不要更改
+ **RoleARN：**` IAM_ROLE_ARN`
  + **RecordingGroup:**
  + **AllSupported:** 真的
  + **IncludeGlobalResourceTypes:** `GLOBAL_RESOURCE_RECORDING`
  + **ResourceTypes:** 空

可以使用以下命令通过 AWS CLI 进行此修改。将该字符串`RECORDER_NAME`替换为现有的 AWS Config 录制器名称。

```
aws configservice put-configuration-recorder --configuration-recorder  name=RECORDER_NAME,roleARN=arn:aws:iam::MEMBER_ACCOUNT_NUMBER:role/aws-controltower-ConfigRecorderRole-customer-created --recording-group allSupported=true,includeGlobalResourceTypes=GLOBAL_RESOURCE_RECORDING --region CURRENT_REGION
```

## 步骤 5b. 修改 AWS Config 配送渠道资源
<a name="modify-config-delivery-channel-step-5b"></a>

每个地区只能存在一个 AWS Config 配送渠道。如果存在其他传输通道，需按如下所示修改设置。
+ **Name：**不要更改
+ **ConfigSnapshotDeliveryProperties: TwentyFour \$1Hou** rs
+  **S3BucketName：***CONFIG\$1BUCKET*
+ **S3KeyPrefix：***ORGANIZATION\$1ID*
+ **SnsTopicARN：**来自审核账户的 SNS 主题 ARN，格式如下：

  `arn:aws:sns:CURRENT_REGION:AUDIT_ACCOUNT:aws-controltower-AllConfigNotifications`

可以使用以下命令通过 AWS CLI 进行此修改。将该字符串`DELIVERY_CHANNEL_NAME`替换为现有的 AWS Config 录制器名称。

```
aws configservice put-delivery-channel --delivery-channel name=DELIVERY_CHANNEL_NAME,s3BucketName=CONFIG_BUCKET,s3KeyPrefix="ORGANIZATION_ID",configSnapshotDeliveryProperties={deliveryFrequency=TwentyFour_Hours},snsTopicARN=arn:aws:sns:CURRENT_REGION:AUDIT_ACCOUNT:aws-controltower-AllConfigNotifications --region CURRENT_REGION
```

## 步骤 5c. 修改 AWS Config 聚合授权资源
<a name="modify-config-aggregator-auth-step-5c"></a>

**注意**  
landing zone 4.0 或更高版本不需要执行此步骤。

每个区域可以存在多个聚合授权。AWS Control Tower 需要的聚合授权是，将审计账户指定为授权账户，并将 AWS Control Tower 的主区域指定为授权区域。如果不存在聚合授权，请使用以下设置进行创建：
+ **AuthorizedAccountId:** 审计账户 ID
+ **AuthorizedAwsRegion:** AWS Control Tower 设置的主区域

可以使用以下命令通过 AWS CLI 进行此修改：

 `aws configservice put-aggregation-authorization --authorized-account-id AUDIT_ACCOUNT_ID --authorized-aws-region HOME_REGION --region CURRENT_REGION` 

## 步骤 6：在 AWS Control Tower 监管的区域中创建尚不存在的资源
<a name="existing-config-step-6"></a>

修改 CloudFormation 模板，使您的主区域中的**IncludeGlobalResourcesTypes**参数具有值`GLOBAL_RESOURCE_RECORDING`，如以下示例所示。同时，按照本节所述更新模板中的必填字段。

在您的主区域中，将 `GLOBAL_RESOURCE_RECORDING` 项替换为 **true**。对于其他不存在 AWS Config 录制器的区域，将该项目替换**为 false**。

1. 导航到管理账户的 CloudFormation 控制台。

1.  StackSet 用这个名字创建一个新的**CustomerCreatedConfigResourcesForControlTower**。

1. 复制并更新以下模板：
**注意**  
landing zone 4.0 或更高版本不需要模板中的`CustomerCreatedAggregationAuthorization`资源。

   ```
   AWSTemplateFormatVersion: 2010-09-09
   Description: Configure AWS Config
   Resources:
     CustomerCreatedConfigRecorder:
       Type: AWS::Config::ConfigurationRecorder
       Properties:
         Name: aws-controltower-BaselineConfigRecorder-customer-created
         RoleARN: !Sub arn:aws:iam::${AWS::AccountId}:role/aws-controltower-ConfigRecorderRole-customer-created
         RecordingGroup:
           AllSupported: true
           IncludeGlobalResourceTypes: GLOBAL_RESOURCE_RECORDING
           ResourceTypes: []
     CustomerCreatedConfigDeliveryChannel:
       Type: AWS::Config::DeliveryChannel
       Properties:
         Name: aws-controltower-BaselineConfigDeliveryChannel-customer-created
         ConfigSnapshotDeliveryProperties:
           DeliveryFrequency: TwentyFour_Hours
         S3BucketName: CONFIG_BUCKET
         S3KeyPrefix: ORGANIZATION_ID
         SnsTopicARN: !Sub arn:aws:sns:${AWS::Region}:AUDIT_ACCOUNT:aws-controltower-AllConfigNotifications
     CustomerCreatedAggregationAuthorization:
       Type: "AWS::Config::AggregationAuthorization"
       Properties:
         AuthorizedAccountId: AUDIT_ACCOUNT
         AuthorizedAwsRegion: HOME_REGION
   ```

**更新模板中的必填字段：**

   1. 在 **S3 BucketName** 字段中，替换 *CONFIG\$1BUCKET*

   1. 在 **S3 KeyPrefix** 字段中，替换 *ORGANIZATION\$1ID*

   1. 在 **SnsTopicARN** 字段中，替换 *AUDIT\$1ACCOUNT*

   1. 在**AuthorizedAccountId**字段中，替换 *AUDIT\$1ACCOUNT*

   1. 在**AuthorizedAwsRegion**字段中，替换 *HOME\$1REGION*

1. 在 CloudFormation 控制台上部署期间，添加成员账号。

1. 添加步骤 4 中确定的 AWS 区域。

1. 部署堆栈集。

## 第 7 步：在 AWS Control Tower 中注册 OU
<a name="existing-config-step-7"></a>

在 AWS Control Tower 控制面板中，注册 OU。

**注意**  
此任务的**注册账户**工作流不会成功。您必须选择**注册 OU** 或**重新注册 OU**。