本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
先决条件
在部署一致性包之前,请开启AWS Config录制。
启动AWS Config录制
登录到 AWS Management Console,然后通过以下网址打开 AWS Config 控制台:https://console.aws.amazon.com/config/
。 -
在导航窗格中,选择 Settings (设置)。
-
要开始记录,请选择 Recording is off (记录已关闭) 下的 Turn on (开启)。系统提示时,选择继续.
将一致性包与修正结合使用的先决条件
在使用带有补救措施的示例模板部署一致性包之前,必须创建相应的资源,例如自动化、代入角色等AWS基于您的修复目标的资源。
如果您已有 Automation 角色并使用该角色通过 SSM 文档进行修复,则可以直接提供该角色的 ARN。如果您有任何资源,可以在模板中提供这些资源。
AWS Config 不支持 Automation 执行角色的 AWS CloudFormation 内部函数。您必须以字符串形式提供角色的准确 ARN。
有关如何传递准确 ARN 的更多信息,请参阅一致性包示例模板。使用示例模板时,更新组织的账户 ID 和管理账户 ID。
将一致性包与一个或多个 AWS Config 规则结合使用的先决条件
在部署具有一个或多个自定义 AWS Config 规则的一致性包之前,请创建合适的资源,例如 AWS Lambda 函数和对应的执行角色。
如果您已有自定义 AWS Config 规则,则可以直接提供 AWS Lambda 函数的 ARN
,以创建该自定义规则的另一个实例作为包的一部分。
如果您没有现有的习惯AWS Config规则,你可以创建一个AWS LambdaLambda 函数) — ARN ambda 函数) — Lambda 有关更多信息,请参阅 AWS Config 自定义规则。
如果你的AWS Lambda函数存在于不同的AWS 账户,您可以创建AWS Config具有相应跨账户的规则AWS Lambda函数授权。有关更多信息,请参阅如何集中管理AWS Config跨多个规则AWS 账户
相同的账户存储桶政策:
对于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" } } }, { "Sid": " AWSConfigConformsBucketReadAccess", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::AccountId
:role/aws-service-role/config-conforms.amazonaws.com/AWSServiceRoleForConfigConforms" ] }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::delivery-bucket-name
/[optional] prefix/AWSLogs/AccountId
/Config/*" } ] }
跨账户存储桶策略:
对于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
.