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

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

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

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

注意

如果您计划将现有 AWS 账户作为审计日志存档账户引入 AWS Control Tower,并且这些账户具有现有 AWS Config 资源,则必须完全删除现有 AWS Config 资源,然后才能将这些账户注册到 AWS Control Tower 以实现此目的。对于不打算成为审计日志存档帐户的帐户,您可以修改现有的 Config 资源。

AWS Config 资源示例

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

  • AWS Config 录音机

  • AWS Config 配送渠道

  • AWS Config 聚合授权

假设
  • 您已经部署了 AWS Control Tower 着陆区

  • 您的账户尚未注册 AWS Control Tower。

  • 您的账户在管理账户管理的至少一个 AWS Control Tower 区域中至少有一个预先存在的 AWS Config 资源。

  • 您的账户不是 AWS Control Tower 管理账户。

  • 您的账户未处于治理偏离状态。

有关描述使用现有资源注册账户的自动方法的博客,请参阅使用现有 AWS Config 资源自动将账户注册到 AWS Control Tower。 AWS Config 您将能够为所有想要注册的账户提交一份支持请求,如以下所第 1 步:联系客户支持并提交工单,将该账户添加到 AWS Control Tower 允许名单述。

限制
  • 只有通过使用 AWS Control Tower 工作流程来扩大监管范围才能注册该账户。

  • 如果资源被修改并在账户上造成偏差,AWS Control Tower 不会更新资源。

  • AWS Config 不受 AWS Control Tower 管理的区域中的资源不会发生变化。

注意

如果您尝试注册拥有现有 Config 资源的账户,但未将该账户添加到允许列表,则注册将失败。此后,如果您随后尝试将该账户添加到允许列表中,AWS Control Tower 将无法验证该账户的配置是否正确。您必须先从 AWS Control Tower 取消配置账户,然后才能申请允许列表并进行注册。如果您仅将账户转移到其他 AWS Control Tower OU,则会导致监管偏差,从而也无法将该账户添加到允许列表中。

此过程有 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 Control Tower 允许名单

在你的门票主题行中加入这句话:

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

在门票正文中包含以下详细信息:
  • 管理账号

  • 拥有现有 AWS Config 资源的成员账号的账号

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

注意

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

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

  1. 打开成员账户的 AWS 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. 创建堆栈。

注意

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

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

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

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

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

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

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

在此步骤中,需要提供有关您的 AWS Control Tower 设置的以下信息。

  • LOGGING_ACCOUNT-登录账户 ID

  • AUDIT_ACCOUNT-审计账户 ID

  • IAM_ROLE_ARN-在步骤 1 中创建的 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

  • 名称:别改变

  • 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 配送渠道。如果存在其他设置,请修改设置,如图所示。

  • 名称:别改变

  • ConfigSnapshotDeliveryProperties: TwentyFour _Hou rs

  • S3BucketName:来自 AWS Control Tower 日志账户的日志存储桶名称

    aws-controltower-logs-LOGGING_ACCOUNT-HOME_REGION

  • S3KeyPrefix:组织_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=aws-controltower-logs-LOGGING_ACCOUNT_ID-HOME_REGION,s3KeyPrefix="ORGANIZATION_ID",configSnapshotDeliveryProperties={deliveryFrequency=TwentyFour_Hours},snsTopicARN=arn:aws:sns:CURRENT_REGION:AUDIT_ACCOUNT:aws-controltower-AllConfigNotifications --region CURRENT_REGION

步骤 5c。修改 AWS Config 聚合授权资源

每个区域可以存在多个聚合授权。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 管理的区域中,在不存在资源的地方创建资源

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

在你的家乡地区将该物品GLOBAL_RESOURCE_RECORDING替换为 true。对于存在 AWS Config 录制器的其他区域,将该项目替换为 false

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

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

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

    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: aws-controltower-logs-LOGGING_ACCOUNT-HOME_REGION 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 字段中,替换 LOGGING_ACCOUNT_ID 和 HO ME_REGIO N

    2. S3 KeyPrefix 字段中,替换 “组织 _ID”

    3. SnsTopicARN 字段中,替换 AUDIT_ACCOUNT

    4. AuthorizedAccountId字段中,替换 AUDIT_ACCOU NT

    5. AuthorizedAwsRegion字段中,替换 HOME _REGION

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

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

  6. 部署堆栈集。

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

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

注意

此任务的注册账户工作流程将无法成功。您必须选择 “注册 OU” 或 “重新注册 OU”。