注册拥有现有 AWS Config 资源的账户 - AWS Control Tower

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

注册拥有现有 AWS Config 资源的账户

本主题提供了一种如何注册拥有现有 AWS Config 资源的账户 step-by-step的方法。有关如何检查现有资源的示例,请参阅 使用 AWS Config 资源注册账户

AWS Config 资源示例

以下是您的账户可能已经拥有的一些 AWS Config 资源类型。可能需要对这些资源进行修改,这样才能将账户注册到 AWS Control Tower 中。

  • AWS Config 录音机

  • AWS Config 配送渠道

  • AWS Config 聚合授权

限制
  • 在 landing zone 中配置的管理账户或服务集成账户不支持使用现有 AWS Config 资源注册账户。

  • 只有使用OU注册或重新注册工作流程才能注册该帐户,该工作流程启用. AWSControlTowerBaseline 无法通过启用或重置来注册该ConfigBaseline帐户。

  • 不支持使用现有 AWS Config 资源的账户使用自动注册功能移动和注册账户

  • 如果对资源进行修改并在账户上造成偏移,则 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。 AWS Config

此过程有 5 个主要步骤。
  1. 将账户添加到 AWS Control Tower 允许列表中。

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

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

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

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

在继续执行之前,请考虑以下有关此过程的预期情况。
  • AWS Control Tower 不会在此账户中创建任何 AWS Config 资源。

  • 注册后,AWS Control Tower 控件会自动保护您创建的 AWS Config 资源,包括新的 IAM 角色。

  • 如果在注册后对 AWS Config 资源进行了任何更改,则必须先更新这些资源以使其与 AWS Control Tower 设置保持一致,然后才能重新注册账户。

第 1 步:联系支持人员,将账户添加到允许列表

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

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

在工单正文中提供以下详细信息:
  • 管理账号

  • 拥有现有 AWS Config 资源的成员账户的账号。您将能够为所有想要注册的账户创建支持案例。

  • 您为 AWS Control Tower 设置选择的主区域

注意

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

步骤 2:在成员账户中创建一个新的 IAM 角色

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

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

    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
  3. 将堆栈的名称提供为 CustomerCreatedConfigRecorderRoleForControlTower

  4. 创建堆栈。

注意

您创建 SCPs 的任何内容都应排除aws-controltower-ConfigRecorderRole*角色。请勿修改限制 AWS Config 规则执行评估能力的权限。

请遵循这些准则,这样当你被aws-controltower-ConfigRecorderRole*阻止调用 Config AccessDeniedException 时 SCPs ,你就不会收到。

步骤 3:确定已有资源 AWS 的地区

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

步骤 4:确定没有任何 AWS Config 资源 AWS 的地区

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

步骤 5:修改每个 AWS 区域的现有资源

在此步骤中,需要提供有关您的 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 录音机资源

每个 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 配送渠道资源

每个地区只能存在一个 AWS Config 配送渠道。如果存在其他传输通道,需按如下所示修改设置。

  • Name:不要更改

  • ConfigSnapshotDeliveryProperties: TwentyFour _Hou rs

  • S3BucketName:CONFIG_BUCKET

  • S3KeyPrefix:ORGANIZATION_ID

  • 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 聚合授权资源

注意

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 监管的区域中创建尚不存在的资源

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

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

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

  2. StackSet 用这个名字创建一个新的CustomerCreatedConfigResourcesForControlTower

  3. 复制并更新以下模板:

    注意

    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_BUCKET

    2. S3 KeyPrefix 字段中,替换 ORGANIZATION_ID

    3. SnsTopicARN 字段中,替换 AUDIT_ACCOUNT

    4. AuthorizedAccountId字段中,替换 AUDIT_ACCOUNT

    5. AuthorizedAwsRegion字段中,替换 HOME_REGION

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

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

  6. 部署堆栈集。

第 7 步:在 AWS Control Tower 中注册 OU

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

注意

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