AWS Config のカスタムコンフォーマンスパックのテンプレートの作成
カスタムコンフォーマンスパックは、AWS Config ルールと修復アクションの集合で、アカウントや AWS リージョン、または AWS Organizations の組織全体でまとめてデプロイできます。
カスタムコンフォーマンスパックを作成するには、「テンプレートをカスタマイズするセクション」の手順を実行し、使用する AWS Config マネージドルールまたは AWS Config カスタムルールのリストを含む YAML ファイルを作成します。
トピック
用語
AWS Config マネージドルールは、AWS Config が所有する事前に定義済みのルールです。
AWS Config カスタムルールは、最初から作成するルールです。
AWS Config カスタムルールを作成するには、Lambda 関数 (AWS Lambda デベロッパーガイド) を使用する方法と、ポリシーをコード化する言語である Guard (Guard GitHub リポジトリ
テンプレートのカスタマイズ
YAML ファイルの作成
YAML ファイルを作成するには、テキストエディタを開き、ファイルを .yaml として保存します。
注記
ファイルにはパラメータおよびリソースセクションがあります。
パラメータ
YAML ファイルの Parameters セクションは、Resources セクションで後から追加する一連の AWS Config ルールのルールパラメータです。Parameters セクションを作成するには、次のコードブロックをコピーして YAML ファイルに貼り付け、必要に応じてカスタマイズし、ルールパラメータごとに繰り返します。
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 カスタムルールでは、ルールを作成するときに選択した値を使用します。注記
各パラメータについて、
Typeは必ず指定する必要があります。Typeは、「String」、「int」、「double」、「CSV」、「boolean」および「StringMap」のいずれかから選択できます。
リソース
Resources セクションには、カスタムコンフォーマンスパックに追加されているルールが一覧表示されます。次の Resources ブロックを Parameters セクションのすぐ下に追加し、必要に応じてカスタマイズし、ルールごとに繰り返します。仕様の詳細については、「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 カスタムルールでは、ルールの作成時に選択したConfig ルール名を使用します。ActualConfigRuleName -
Parametersセクションで使用したのと同じ名前にを置き換えます。コロンの後に、NameOfRuleParameterParametersセクションで作成した!Ref+NameOfRule+ Param +NameOfRuleParameterの同じ連結した文字列をコピーして貼り付けます。 -
を適切な値に変更します。Owner注記
AWS Config マネージドルール
AWS Config マネージドルールでは、
Ownerの値はAWSになります。AWS 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 関数 (arn:aws:lambda:us-east-2:123456789012:function:など) の Amazon リソースネーム (ARN) です。Guardで作成した AWS Config カスタムルールの場合、このフィールドは不要です。ActualConfigRuleName
その結果、記入したカスタムコンフォーマンスパックは、iam-password-policy、access-keys-rotated、および iam-user-unused-passuld-check のようになるはずです。これは、これらの AWS Config マネージドルールを使用した例です。
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