

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

# 合规包的先决条件 AWS Config
<a name="cpack-prerequisites"></a>

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

**Topics**
+ [第 1 步：开始 AWS Config 录制](#cpack-prerequisites-config-recording)
+ [步骤 2：按合规包类型列出的其他先决条件](#cpack-prerequisites-config-recording)

## 第 1 步：开始 AWS Config 录制（所有一致性包均为必填项）
<a name="cpack-prerequisites-config-recording"></a>

1. 登录 AWS 管理控制台 并在家中打开[https://console.aws.amazon.com/config/主 AWS Config](https://console.aws.amazon.com/config/home)机。

1. 在导航窗格中，选择**设置**。

1. 要开始记录，请选择 **Recording is off（记录已关闭）**下的 **Turn on（开启）**。系统提示时，请选择**继续**。

## 步骤 2：按合规包类型列出的其他先决条件
<a name="cpack-prerequisites-config-recording"></a>

### 将合规性包与修正结合使用的先决条件
<a name="cpack-prerequisites-remediations"></a>

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

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

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

AWS Config 不支持自动化执行角色或. 的 CloudFormation 内部函数。`ConfigRuleName`您必须以字符串形式提供角色的确切 ARN，并且必须使用不带内置函数的完整规则名称。

有关如何传递准确 ARN 的更多信息，请参阅 [一致性包样本模板适用于 AWS Config](conformancepack-sample-templates.md) 使用示例模板时，请更新您的账户 ID 和组织的管理账户 ID。

### B. 使用包含一个或多个自定义 AWS Config 规则的一致性包的先决条件
<a name="cpack-prerequisites-oneormorerules"></a>

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

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

如果您没有现有的自定义 AWS Config 规则，则可以创建一个 AWS Lambda 函数并使用 Lambda 函数的 ARN。有关更多信息，请参阅 [AWS Config 自定义规则](evaluate-config_develop-rules.md)。

如果您的 AWS Lambda 函数存在于不同的中 AWS 账户，则可以使用适当的跨账户 AWS Lambda 功能授权来创建 AWS Config 规则。有关更多信息，请参阅[如何集中管理多个 AWS Config 规则 AWS 账户](https://aws.amazon.com/blogs/devops/how-to-centrally-manage-aws-config-rules-across-multiple-aws-accounts/)博客文章。

------
#### [ Same account bucket policy ]

 AWS Config 为了能够存储合规包项目，您需要提供一个 Amazon S3 存储桶并添加以下权限。有关命名存储桶的更多信息，请参阅[存储桶命名规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSConfigConformsBucketPermissionsCheck",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333: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::111122223333: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 存储桶并添加以下权限。有关命名存储桶的更多信息，请参阅[存储桶命名规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AWSConfigConformsBucketPermissionsCheck",
            "Effect": "Allow",
            "Principal": {
                "AWS": [
                    "arn:aws:iam::111122223333: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::111122223333: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::111122223333: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` 开头。

------

### C. 组织合规性包的先决条件
<a name="cpack-prerequisites-organizationcpack"></a>

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

如果您的模板使用 AWS CloudFormation 内部函数`[Fn::ImportValue](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-importvalue.html)`来导入特定变量，则该变量必须在该组织的所有成员账户`[Export Value](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/outputs-section-structure.html)`中定义为。

有关自定义 AWS Config 规则，请参阅[如何集中管理多个 AWS Config 规则 AWS 账户](https://aws.amazon.com/blogs/devops/how-to-centrally-manage-aws-config-rules-across-multiple-aws-accounts/)博客以设置适当的权限。

**组织存储桶策略：**

 AWS Config 为了能够存储合规包项目，您需要提供一个 Amazon S3 存储桶并添加以下权限。有关命名存储桶的更多信息，请参阅[存储桶命名规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)。

------
#### [ JSON ]

****  

```
{
    "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` 开头。