先决条件 - AWS Config

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

先决条件

在部署一致性包之前,请开启 AWS Config 录制。

开始 AWS Config 录制

  1. 登录 AWS Management Console 并打开 AWS Config 控制台,网址为 https://console.aws.amazon.com/config/

  2. 在导航窗格中,选择设置

  3. 要开始记录,请选择 Recording is off (记录已关闭) 下的 Turn on (开启)。系统提示时,请选择继续

将一致性包与修正结合使用的先决条件

在使用带有修复功能的示例模板部署一致性包之前,必须根据修复目标创建相应的 AWS 资源,例如自动代入角色和其他资源。

如果您已有 Automation 角色并使用该角色通过 SSM 文档进行修复,则可以直接提供该角色的 ARN。如果您有任何资源,可以在模板中提供这些资源。

注意

向组织部署具有修正功能的合规包时,需要指定该组织的管理账户 ID。否则,在部署组织合规包期间, AWS Config 会自动将管理账户 ID 替换为成员账户 ID。

AWS Config 不支持自动化执行角色的 AWS CloudFormation 内部函数。您必须以字符串形式提供角色的准确 ARN。

有关如何传递准确 ARN 的更多信息,请参阅一致性包示例模板。使用示例模板时,请更新您的账户 ID 和组织的管理账户 ID。

使用带有一条或多 AWS Config 条规则的一致性包的先决条件

在部署包含一个或多个自定义 AWS Config 规则的一致性包之前,请创建相应的资源,例如 AWS Lambda 函数和相应的执行角色。

如果您已有自定义 AWS Config 规则,则可以直接提供 of AWS Lambda 函数来创建该ARN自定义规则的另一个实例,作为包的一部分。

如果您没有现有的自定义 AWS Config 规则,则可以创建一个 AWS Lambda 函数并使用 Lambda 函数的 ARN。有关更多信息,请参阅 AWS Config 自定义规则

如果您的 AWS Lambda 函数存在于不同的中 AWS 账户,则可以使用适当的跨账户 AWS Lambda 功能授权来创建 AWS Config 规则。有关更多信息,请参阅如何集中管理多个 AWS Config 规则 AWS 账户博客文章。

Same account bucket policy

AWS Config 为了能够存储合规包项目,您需要提供一个 Amazon S3 存储桶并添加以下权限。有关命名存储桶的更多信息,请参阅存储桶命名规则

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSConfigConformsBucketPermissionsCheck", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::AccountId:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms" ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::delivery-bucket-name" }, { "Sid": "AWSConfigConformsBucketDelivery", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::AccountId:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::delivery-bucket-name/[optional] prefix/AWSLogs/AccountId/Config/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
Cross-account bucket policy

AWS Config 为了能够存储合规包项目,您需要提供一个 Amazon S3 存储桶并添加以下权限。有关命名存储桶的更多信息,请参阅存储桶命名规则

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSConfigConformsBucketPermissionsCheck", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::SourceAccountId:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms", "PutConformancePack API caller user principal like arn:aws:iam::SourceAccountId:user/userName " ] }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name" }, { "Sid": "AWSConfigConformsBucketDelivery", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::SourceAccountId:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms" ] }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name/[optional] prefix/AWSLogs/AccountID/Config/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } }, { "Sid": " AWSConfigConformsBucketReadAccess", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::SourceAccountId:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms" ] }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name/[optional] prefix/AWSLogs/AccountID/Config/*" } ] }
注意

部署跨账户合规包时,传输 Amazon S3 存储桶的名称应以 awsconfigconforms 开头。

Organization 一致性包的先决条件

如果输入模板具有自动修正配置,则在模板中为该修正指定 Automation 执行角色 ARN。确保组织的所有账户(管理账户和成员账户)中都有具有指定名称的角色。您必须先在所有账户中创建此角色,然后再调用 PutOrganizationConformancePack。您可以手动创建此角色,也可以使用 AWS CloudFormation 堆栈集在每个账户中创建此角色。

如果您的模板使用 AWS CloudFormation 内部函数Fn::ImportValue来导入特定变量,则该变量必须在该组织的所有成员账户Export Value中定义为。

有关自定义 AWS Config 规则,请参阅如何集中管理多个 AWS Config 规则 AWS 账户博客以设置适当的权限。

组织存储桶策略:

AWS Config 为了能够存储合规包项目,您需要提供一个 Amazon S3 存储桶并添加以下权限。有关命名存储桶的更多信息,请参阅存储桶命名规则

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowGetObject", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name/*", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "customer_org_id" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms" } } }, { "Sid": "AllowGetBucketAcl", "Effect": "Allow", "Principal": "*", "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::awsconfigconforms-suffix in bucket name", "Condition": { "StringEquals": { "aws:PrincipalOrgID": "customer_org_id" }, "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::*:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms" } } } ] }
注意

在组织中部署合规包时,传输 Amazon S3 存储桶的名称应以 awsconfigconforms 开头。