为自定义一致性包创建模板 - AWS Config

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

为自定义一致性包创建模板

自定义一致性包是唯一的 AWS Config 规则和补救措施集合,您可以将它们一起部署到一个账户和一个 AWS 区域,或者跨组织部署。 AWS Organizations

要创建自定义合规包,请按照以下自定义模板部分中的步骤创建一个 YAML 文件,其中包含要使用的 AWS Config 托管规则AWS Config 自定义规则列表。

术语

AWS Config 托管规则是所有者的预定义规则 AWS Config。

AWS Config 自定义规则是您从头开始创建的规则。

有两种方法可以创建 AWS Config 自定义规则:使用 Lambda 函数(AWS Lambda 开发者指南)和使用 Guard(防护 GitHub存储库)(一种 policy-as-code 语言)。 AWS Config 使用创建的 AWS Lambda 自定义规则称为AWS Config 自定义 Lambda 规则,使用 Guard 创建的 AWS Config 自定义规则称为AWS Config 自定义策略规则。

自定义模板

创建 YAML 文件

要创建 YAML 文件,请打开文本编辑器并将该文件另存为 .yaml

注意

您的文件将包含参数资源部分。

参数

YAML 文件中的Parameters部分用于您将在本Resources节稍后添加的一组 AWS Config 规则的规则参数。通过将以下代码块复制并粘贴到您的 YAML 文件中,根据需要对其进行自定义,然后对每个规则参数重复此操作来创建 Parameters 部分。

Parameters: NameOfRuleParamNameOfRuleParameter: Default: Parameter value Type: Type ...

例如:

Parameters: IamPasswordPolicyParamMinimumPasswordLength: Default: '14' Type: String
注意

在选择 AWS Config 规则来构建您的自定义一致性包时,请检查您的账户中是否预配置了将根据规则进行评估的 AWS Config 资源。

  1. 后面的参数部分的第一行Parameters:是 + Param NameOfRule+ 的串联字符串。NameOfRuleParameter

    1. 用您为该规则创建的一致名称替换 NameOfRule。例如,这可能是IamPasswordPolicy为了iam-password-policy 规则。

    2. 键入 Param

    3. 然后,将 NameOfRuleParameter 替换为特定规则的规则参数名称。对于 AWS Config 托管规则,规则参数的名称位于AWS Config 托管规则列表中(例如,MinimumPasswordLength是规则的规则参数的iam-password-policy名称)。对于 AWS Config 自定义规则,规则参数名称是您在创建该规则时选择的名称。

  2. 如果您使用的是 AWS Config 托管规则,请在托管 AWS Config 规则列表中找到相应的规则,这样您就可以知道特定规则Type的可接受值。Default对于 AWS Config 自定义规则,请使用您在创建规则时选择的值。

    注意

    Type必须为每个参数指定。 Type可以是 “字符串”、“整数”、“双精度”、“CSV”、“布尔值” 和 “StringMap” 之一。

资源

Resources 部分列出了要添加到您的自定义合规包中的规则。在 Parameters 部分正下方添加以下 Resources 块,根据需要对其进行自定义,然后对每条规则重复此操作。有关规格的更多信息,请参阅AWS::Config::ConfigRule

Resources: NameOfRule: Properties: ConfigRuleName: ActualConfigRuleName InputParameters: NameOfRuleParameter: NameOfRuleParamNameOfRuleParameter Source: Owner: Owner SourceIdentifier: SOURCE_IDENTIFIER Type: AWS::Config::ConfigRule ...

例如:

Resources: IamPasswordPolicy: Properties: ConfigRuleName: iam-password-policy InputParameters: MinimumPasswordLength: IamPasswordPolicyParamMinimumPasswordLength Source: Owner: AWS SourceIdentifier: IAM_PASSWORD_POLICY Type: AWS::Config::ConfigRule
注意

在选择用于构建自定义一致性包的 AWS Config 规则时,请检查您的账户中是否有资源可以根据预置的 AWS Config 规则进行评估。有关更多信息,请参阅支持的资源类型

  1. NameOfRule 替换为您在 Parameters 部分中创建的相同名称。

  2. 对于 AWS Config 托管规则,请ActualConfigRuleName替换为托AWS Config 管规则列表中相应规则页面的标题。对于 AWS Config 自定义规则,请使用您在创建规则时选择的 Config 规则名称。

  3. NameOfRuleParameter 替换为您在 Parameters 部分中使用的相同名称。在冒号之后,复制并粘贴您在小节中创建的 NameOfRule+ Param + NameOfRuleParameter的相同串联字符串。Parameters

  4. Owner 更改为相应的值。

    注意

    AWS Config 托管规则

    对于 AWS Config 托管规则,的值Owner将为AWS

    AWS Config 自定义规则

    对于使用 Guard 创建的 AWS Config 自定义规则,的值Owner将为CUSTOM_POLICY。对于使用 Lambda 创建的 AWS Config 自定义规则,的值Owner将为。CUSTOM_LAMBDA

  5. SOURCE_IDENTIFIER 更改为相应的值。

    注意

    AWS Config 托管规则

    对于 AWS Config 托管规则,请通过从托AWS Config 管规则列表中选择的规则中的链接复制标识符(例如,规则的源标识符是 ACCESS_KEYS_ RO access-keys-rotatedTATED)。


    AWS Config 自定义规则

    对于使用 Lambda 创建的 AWS Config 自定义规则,SourceIdentifier是规则 AWS Lambda 函数的亚马逊资源名称 (ARN),例如。arn:aws:lambda:us-east-2:123456789012:function:ActualConfigRuleName对于使用 Guard 创建的 AWS Config 自定义规则,不需要此字段。

总而言之,您填写的自定义一致性包应开始看起来与以下内容类似,这是一个使用这些 AWS Config 托管规则的示例:iam-password-policyaccess-keys-rotated、和 iam-user-unused-credentials- check。

Parameters: IamPasswordPolicyParamMinimumPasswordLength: Default: '14' Type: String AccessKeysRotatedParamMaxAccessKeyAge: Default: '90' Type: String IamUserUnusedCredentialsCheckParamMaxCredentialUsageAge: Default: '45' Type: String Resources: IamPasswordPolicy: Properties: ConfigRuleName: iam-password-policy InputParameters: MinimumPasswordLength: IamPasswordPolicyParamMinimumPasswordLength Source: Owner: AWS SourceIdentifier: IAM_PASSWORD_POLICY Type: AWS::Config::ConfigRule AccessKeysRotated: Properties: ConfigRuleName: access-keys-rotated InputParameters: maxAccessKeyAge: AccessKeysRotatedParamMaxAccessKeyAge Source: Owner: AWS SourceIdentifier: ACCESS_KEYS_ROTATED Type: AWS::Config::ConfigRule IamUserUnusedCredentialsCheck: Properties: ConfigRuleName: iam-user-unused-credentials-check InputParameters: maxCredentialUsageAge: IamUserUnusedCredentialsCheckParamMaxCredentialUsageAge Source: Owner: AWS SourceIdentifier: IAM_USER_UNUSED_CREDENTIALS_CHECK Type: AWS::Config::ConfigRule