本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
注册拥有现有 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
此过程有 5 个主要步骤。
-
将账户添加到 AWS Control Tower 允许列表中。
-
在该账户中创建一个新的 IAM 角色。
-
修改先前存在的 AWS Config 资源。
-
在不存在 AWS Config 资源的 AWS 地区创建资源。
-
在 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 角色
-
打开成员账户的 CloudFormation 控制台。
-
使用以下模板创建一个新的堆栈。
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 -
将堆栈的名称提供为 CustomerCreatedConfigRecorderRoleForControlTower
-
创建堆栈。
注意
您创建 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--regionCURRENT_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 进行此修改。将该字符串替换为现有的 AWS Config 录制器名称。DELIVERY_CHANNEL_NAME
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 --regionCURRENT_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。
-
导航到管理账户的 CloudFormation 控制台。
-
StackSet 用这个名字创建一个新的CustomerCreatedConfigResourcesForControlTower。
-
复制并更新以下模板:
注意
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_RECORDINGResourceTypes: [] CustomerCreatedConfigDeliveryChannel: Type: AWS::Config::DeliveryChannel Properties: Name: aws-controltower-BaselineConfigDeliveryChannel-customer-created ConfigSnapshotDeliveryProperties: DeliveryFrequency: TwentyFour_Hours S3BucketName:CONFIG_BUCKETS3KeyPrefix:ORGANIZATION_IDSnsTopicARN: !Sub arn:aws:sns:${AWS::Region}:AUDIT_ACCOUNT:aws-controltower-AllConfigNotifications CustomerCreatedAggregationAuthorization: Type: "AWS::Config::AggregationAuthorization" Properties: AuthorizedAccountId:AUDIT_ACCOUNTAuthorizedAwsRegion:HOME_REGION更新模板中的必填字段:
-
在 S3 BucketName 字段中,替换
CONFIG_BUCKET -
在 S3 KeyPrefix 字段中,替换
ORGANIZATION_ID -
在 SnsTopicARN 字段中,替换
AUDIT_ACCOUNT -
在AuthorizedAccountId字段中,替换
AUDIT_ACCOUNT -
在AuthorizedAwsRegion字段中,替换
HOME_REGION
-
-
在 CloudFormation 控制台上部署期间,添加成员账号。
-
添加步骤 4 中确定的 AWS 区域。
-
部署堆栈集。
第 7 步:在 AWS Control Tower 中注册 OU
在 AWS Control Tower 控制面板中,注册 OU。
注意
此任务的注册账户工作流不会成功。您必须选择注册 OU 或重新注册 OU。