本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为 AWS Config 自定义合规包创建模板
自定义合规包是 AWS Config 规则和修正措施的唯一集合,可以一起部署在账户和 AWS 区域中,也可以在 AWS Organizations 中跨组织部署。
要创建自定义合规包,请按照以下自定义模板部分中的步骤创建一个 YAML 文件,其中包含要使用的 AWS Config 托管规则或 AWS Config 自定义规则列表。
术语
AWS Config 托管规则是 AWS Config 拥有的预定义规则。
AWS Config 自定义规则是您从头开始创建的规则。
有两种创建 AWS Config 自定义规则的方法:使用 Lambda 函数(AWS Lambda 开发人员指南)以及使用策略即代码语言 Guard(Guard GitHub 存储库
自定义模板
创建 YAML 文件
要创建 YAML 文件,请打开文本编辑器并将该文件另存为 .yaml。
注意
您的文件将包含参数和资源部分。
参数
YAML 文件中的 Parameters 部分用于您稍后将在 Resources 部分中添加的一组 AWS Config 规则的规则参数。通过将以下代码块复制并粘贴到您的 YAML 文件中,根据需要对其进行自定义,然后对每个规则参数重复此操作来创建 Parameters 部分。
Parameters:NameOfRuleParamNameOfRuleParameter: Default:Parameter valueType:Type...
例如:
Parameters: IamPasswordPolicyParamMinimumPasswordLength: Default: '14' Type: String
注意
在选择 AWS Config 规则来构建您的自定义合规包时,请检查您的账户中是否预置了将根据 AWS Config 规则进行评估的资源。
-
参数部分中
Parameters:后面的第一行是连接字符串NameOfRule+ Param +NameOfRuleParameter。-
用您为该规则创建的一致名称替换。
例如,这可能是 iam-password-policy 规则的 IamPasswordPolicy。NameOfRule -
键入。
Param -
然后,将
替换为特定规则的规则参数名称。对于 AWS Config 托管规则,规则参数的名称位于 AWS Config 托管规则列表中(例如,MinimumPasswordLength 是 iam-password-policy 规则的规则参数名称)。对于 AWS Config 自定义规则,规则参数名称是您在创建该规则时选择的名称。NameOfRuleParameter
-
-
如果您使用的是 AWS Config 托管规则,请在托管规则列表中找到相应的 AWS Config 规则,这样您就可以知道特定规则的可接受
Default和Type值。对于 AWS Config 自定义规则,请使用您在创建规则时选择的值。注意
对于每个参数,必须指定。
TypeType可以是“String”、“int”、“double”、“CSV”、“boolean”和“StringMap”其中之一。
资源。
Resources 部分列出了要添加到您的自定义合规包中的规则。在 Parameters 部分正下方添加以下 Resources 块,根据需要对其进行自定义,然后对每条规则重复此操作。有关规格的更多信息,请参阅 AWS::Config::ConfigRule。
Resources:NameOfRule: Properties: ConfigRuleName:ActualConfigRuleNameInputParameters:NameOfRuleParameter: !RefNameOfRuleParamNameOfRuleParameterSource: Owner:OwnerSourceIdentifier:SOURCE_IDENTIFIERType: AWS::Config::ConfigRule...
例如:
Resources: IamPasswordPolicy: Properties: ConfigRuleName: iam-password-policy InputParameters: MinimumPasswordLength: !Ref IamPasswordPolicyParamMinimumPasswordLength Source: Owner: AWS SourceIdentifier: IAM_PASSWORD_POLICY Type: AWS::Config::ConfigRule
注意
在选择 AWS Config 规则来构建您的自定义合规包时,请检查您的账户中是否预置了将根据 AWS Config 规则进行评估的资源。有关更多信息,请参阅支持的资源类型。
-
将
替换为您在NameOfRuleParameters部分中创建的相同名称。 -
对于 AWS Config 托管规则,请将
替换为 AWS Config 托管规则列表中相应规则页面的标题。对于 AWS Config 自定义规则,请使用您在创建规则时选择的配置规则名称。ActualConfigRuleName -
将
替换为您在NameOfRuleParameterParameters部分中使用的相同名称。在冒号后面,复制并粘贴您在Parameters部分中创建的连接字符串!Ref+NameOfRule+ Param +NameOfRuleParameter。 -
将
更改为相应的值。Owner注意
AWS Config 托管规则
对于 AWS Config 托管规则,
Owner的值将为。AWSAWS Config 自定义规则
对于使用 Guard 创建的 AWS Config 自定义规则,
Owner的值将为。CUSTOM_POLICY对于使用 Lambda 创建的 AWS Config 自定义规则,Owner的值将为。CUSTOM_LAMBDA -
将
更改为相应的值。SOURCE_IDENTIFIER注意
AWS Config 托管规则
对于 AWS Config 托管规则,按照从 AWS Config 托管规则列表中选择的规则中的链接复制标识符(例如,access-keys-rotated 规则的源标识符是 ACCESS_KEYS_ROTATED)。
AWS Config 自定义规则
对于使用 Lambda 创建的 AWS Config 自定义规则,
SourceIdentifier为规则的 AWS Lambda 函数的 Amazon 资源名称(ARN),例如。arn:aws:lambda:us-east-2:123456789012:function:对于使用 Guard 创建的 AWS Config 自定义规则,不需要此字段。ActualConfigRuleName
总而言之,填写的自定义合规包开始时应看起来与以下内容类似,这是一个使用以下 AWS Config 托管规则的示例:iam-password-policy、access-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: !Ref IamPasswordPolicyParamMinimumPasswordLength Source: Owner: AWS SourceIdentifier: IAM_PASSWORD_POLICY Type: AWS::Config::ConfigRule AccessKeysRotated: Properties: ConfigRuleName: access-keys-rotated InputParameters: maxAccessKeyAge: !Ref AccessKeysRotatedParamMaxAccessKeyAge Source: Owner: AWS SourceIdentifier: ACCESS_KEYS_ROTATED Type: AWS::Config::ConfigRule IamUserUnusedCredentialsCheck: Properties: ConfigRuleName: iam-user-unused-credentials-check InputParameters: maxCredentialUsageAge: !Ref IamUserUnusedCredentialsCheckParamMaxCredentialUsageAge Source: Owner: AWS SourceIdentifier: IAM_USER_UNUSED_CREDENTIALS_CHECK Type: AWS::Config::ConfigRule