カスタムコンフォーマンスパック - AWS Config

カスタムコンフォーマンスパック

カスタムコンフォーマンスパックは、AWS Config ルールと修復アクションの集合で、アカウントや AWS リージョン、または AWS Organizations の組織全体でまとめてデプロイできます。

カスタムコンフォーマンスパックを作成するには、「テンプレートをカスタマイズするセクション」の手順を実行し、使用する AWS Config マネージドルールまたは AWS Config カスタムルールのリストを含む YAML ファイルを作成します。

注記

AWS Config マネージドルール

AWS Config マネージドルールは、AWS Config が所有する事前に定義済みのルールです。

AWS Config カスタムルール

AWS Config カスタムルールは、Guard または AWS Lambda で開発できるルールです。Guard (Guard GitHub リポジトリ) は、AWS Config ルールによって適用されるポリシーを記述できるようにするコードとしてのポリシー言語です。AWS Lambda は、ユーザーがアップロードしたカスタムコードを使用してカスタムルールを評価します。

テンプレートのカスタマイズ

YAML ファイルの作成

YAML ファイルを作成するには、テキストエディタを開き、ファイルを .yaml として保存します。

注記

ファイルにはパラメータおよびリソースセクションがあります。

パラメータ

YAML ファイルの Parameters セクションは、Resources セクションで後から追加する一連の AWS Config ルールのルールパラメータです。Parameters セクションを作成するには、次のコードブロックをコピーして YAML ファイルに貼り付け、必要に応じてカスタマイズし、ルールパラメータごとに繰り返します。

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

例:

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

カスタムコンフォーマンスパックの作成に AWS Config ルールを選択する場合、アカウント内で AWS Config ルールに対して評価されるリソースがプロビジョニングされていることを確認してください。

  1. パラメーター セクションの Parameters: の 次の行は、NameOfRule + Param + NameOfRuleParameter の順序で連結された文字列です。

    1. ルール用に作成した一貫性のある名前を NameOfRule に置き換えます。たとえば、iam-password-policy ルールには IamPasswordPolicy などと命名することができます。

    2. タイプ Param

    3. 次に、特定のルールのルールパラメータ名を NameOfRuleParameter に置き換えます。AWS Config マネージドルールでは、ルールパラメータ名は、AWS Config マネージドルールのリストにあります(例:MinimumPasswordLengthiam-password-policy ルールのルールパラメータ名)。AWS Config カスタムルールでは、ルールパラメータの名前は、ルールを作成したときに選択した名前です。

  2. AWS Config マネージドルールを使用している場合、マネージドルールのリストで適切な AWS Config ルールを見つけることで、特定のルールの Default および Type に対して許容される値がわかります。AWS Config カスタムルールでは、ルールを作成するときに選択した値を使用します。

    注記

    各パラメータについて、Type は必ず指定する必要があります。Type は、「String」、「int」、「double」、「CSV」、「boolean」および「StringMap」のいずれかから選択できます。

リソース

Resources セクションには、カスタムコンフォーマンスパックに追加されているルールが一覧表示されます。次の Resources ブロックを Parameters セクションのすぐ下に追加し、必要に応じてカスタマイズし、ルールごとに繰り返します。

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 マネージドルールでは、適切なルールページのタイトルを添えてAWS Config マネージドルールのリストの該当するルールページのタイトルに ActualConfigRuleName を置き換えます。AWS Config カスタムルールでは、ルールの作成時に選択したConfig ルール名を使用します。

  3. Parameters セクションで使用したのと同じ名前に NameOfRuleParameter を置き換えます。コロンの後に、Parameters セクションで作成した NameOfRule + Param + NameOfRuleParameter の同じ連結した文字列をコピーして貼り付けます。

  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-rotated ルールのソース識別子は ACCESS_KEYS_ROTATED)。


    AWS Config カスタムルール

    Lambda で作成した AWS Config カスタムルールの場合、SourceIdentifier はルールの AWS Lambda 関数 (arn:aws:lambda:us-east-2:123456789012:function:ActualConfigRuleName など) の Amazon リソースネーム (ARN) です。Guardで作成した AWS Config カスタムルールの場合、このフィールドは不要です。

その結果、記入したスタムコンフォーマンスパックは、iam-password-policyaccess-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: 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

カスタムコンフォーマンスパックのデプロイ

カスタムコンフォーマンスパックをデプロイするには、AWS Config コンソールを使用してコンフォーマンスパックをデプロイする」および「AWS Config コマンドラインインターフェースを使用してコンフォーマンスパックをデプロイする」を参照してください。