先决条件 - AWS Config

先决条件

在部署合规包之前,请打开 AWS Config 记录。

开始 AWS Config 记录

  1. 登录到 AWS Management Console,然后通过以下网址打开 AWS Config 控制台:https://console.aws.amazon.com/config/

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

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

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

在部署使用了具备修正功能的示例模板的合规包之前,您必须根据修正目标创建合适的资源,例如 Automation 代入角色和其他 AWS 资源。

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

注意

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

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

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

将一致性包与一个或多个 AWS Config 规则结合使用的先决条件

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

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

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

如果您的 AWS Lambda 函数位于其他 AWS 账户中,可以创建具有相应跨账户 AWS Lambda 函数授权的 AWS Config 规则。有关更多信息,请参阅如何跨多个 AWS 账户集中管理 AWS Config 规则博客帖子。

相同的账户存储桶策略:

为了让 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" } } } ] }

跨账户存储桶策略:

为了让 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 账户集中管理 AWS Config 规则,以设置合适的权限。

组织存储桶策略:

为了让 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 开头。