AWS Config ルールのコンポーネント
AWS Config ルールは、AWS リソースの設定内容を評価します。このページでは、ルールのコンポーネントについて説明します。
AWS Config ルールの仕組み
AWS Config はリソース間で発生する設定変更を継続的に追跡し、これらの変更がルールの条件に不適合になっていないかどうかを確認します。リソースがルールに適合していない場合、AWS Config はリソースとルールに非準拠を示す noncompliant のフラグを付けます。
AWS Config ルールについて考えられる評価結果が 4 件あります。
| 評価結果 | 説明 |
|---|---|
COMPLIANT |
ルールはコンプライアンスチェックの条件を満たしています。 |
NON_COMPLIANT |
ルールがコンプライアンスチェックの条件を満たしていません。 |
ERROR |
必須/オプションのパラメータのいずれかが有効でないか、タイプが正しくないか、形式が正しくありません。 |
NOT_APPLICABLE |
ルールのロジックを適用できないリソースを除外するために使用されます。例えば、alb-desync-mode-check ルールは Application Load Balancer のみをチェックし、Network Load Balancer と Gateway Load Balancer は無視します。 |
例えば、EC2 ボリュームを作成した場合、AWS Config では、ボリュームが暗号化されていることを要求するルールを適用してボリュームを評価できます。ボリュームが暗号化されていない場合、AWS Config はボリュームとルールに非準拠のフラグを付けます。AWS Config では、アカウント全体の要件に照らしてすべてのリソースを確認することもできます。例えば、AWS Config ではアカウント内の EC2 ボリュームの数が所要合計以内であるかどうかや、アカウントでログ記録に AWS CloudTrail が使用されているかどうかを確認できます。
トリガータイプ
アカウントにルールを追加すると、AWS Config はリソースをルールの条件と比較します。この初期評価後は、評価がトリガーされるたびに AWS Config で評価が実行されます。評価のトリガーは、ルールの一部として定義されます。以下のタイプを含めることができます。
| トリガータイプ | 説明 |
|---|---|
| 設定変更 | AWS Config は、ルールのスコープと一致するリソースがあり、そのリソースの設定に変更があったときに、ルールに対して評価を実行します。AWS Configによる設定項目の変更通知送信後に、評価が実行されます。 どのリソースで評価を開始するかは、ルールのスコープで定義します。スコープには以下を含めることができます。
AWS Config は、ルールのスコープに該当するリソースで変更を検出すると、評価を実行します。スコープを使用して評価を開始するリソースを定義できます。 |
| 定期的 | AWS Config では、指定した間隔 (24 時間ごとなど) で、ルールの評価を実行します。 |
| ハイブリッド | 一部のルールでは、設定変更と定期的なトリガーの両方があります。これらのルールでは、AWS Config によって、設定変更の検出時と、ユーザー指定の間隔でリソースを評価できます。 |
評価モード
AWS Config ルールには、2 種類の評価モードがあります。
| 評価モード | 説明 |
|---|---|
| プロアクティブ | プロアクティブ評価は、デプロイ前のリソースを評価するために使用します。これにより、AWS リソースを定義するために使用した一連のリソースプロパティが、リージョンのアカウントにあるプロアクティブなルールセットに照らして、COMPLIANT または NON_COMPLIANT であるかを評価できます。 |
| 検出 | 検出評価は、デプロイ済みのリソースを評価するために使用します。これにより、既存のリソースの設定内容を評価できます。 |
注記
プロアクティブルールは、NON_COMPLIANT のフラグが付けられたリソースを修正したり、これらのリソースのデプロイを妨げたりしません。
詳細については、「AWS Config ルールのプロアクティブ評価を有効にする」を参照してください。
プロアクティブ評価によるマネージドルールのリスト
プロアクティブ評価をサポートするマネージドルールのリストについては、「評価モード別の AWS Config マネージドルールのリスト」を参照してください。
プロアクティブ評価がサポートされているリソースタイプのリスト
プロアクティブ評価がサポートされているリソースタイプのリストを以下に示します。
-
AWS::EC2::EIP -
AWS::EC2::Instance -
AWS::Lambda::Function -
AWS::RDS::DBInstance -
AWS::Redshift::Cluster -
AWS::S3::Bucket -
AWS::SNS::Topic
AWS Config ルールのメタデータ
AWS Config ルールには、次のような変更可能なメタデータが含まれています。
- defaultName
-
defaultName は、ルールのインスタンスがデフォルトで取得する名前です。
- description
-
ルールの説明は、ルールが評価する内容のコンテキストを提供します。AWS Config コンソールには 256 文字の制限があります。ベストプラクティスとして、ルールの説明に「するかどうかを確認」で始まる、NON_COMPLIANT シナリオの説明を含めます。サービス名は、AWS で始まり、完全に記述する必要があります。または、ルールの説明で最初に言及する場合は、Amazon で始まる必要があります。例えば、最初に使用する場合は CloudTrail または CloudWatch ではなく AWS CloudTrail または Amazon CloudWatch とします。それ以降に言及するときは、サービス名を省略できます。
- scope
-
スコープは、ルールがターゲットとするリソースタイプを決定します。サポートされるリソースタイプのリストについては、サポートされているリソースタイプを参照してください。
- compulsoryInputParameterDetails
-
compulsoryInputParameterDetails は、ルールが評価を行うために必要なパラメータに使用されます。例えば、
access-keys-rotatedマネージドルールには、必須パラメータとしてmaxAccessKeyAgeが含まれます。パラメータが必須の場合、(オプション) としてマークされません。パラメータごとに、型を指定する必要があります。型は、「String」、「int」、「double」、「CSV」、「boolean」、「StringMap」のいずれかになります。 - optionalInputParameterDetails
-
OptionalInputParameterDetails は、ルールが評価を行うためのオプションのパラメータに使用されます。例えば、
elasticsearch-logs-to-cloudwatchマネージドルールには、オプションのパラメータとしてlogTypesが含まれます。パラメータごとに、型を指定する必要があります。型は、「String」、「int」、「double」、「CSV」、「boolean」、「StringMap」のいずれかになります。 - supportedEvaluationModes
-
supportedEvaluationModes は、リソースをデプロイ前またはデプロイ後のいずれで評価するかを決定します。
DETECTIVEは、デプロイ済みのリソースを評価するために使用します。これにより、既存のリソース構成設定を評価できます。PROACTIVEは、リソースをデプロイ前に評価するために使用します。これにより、AWS リソースを定義するために使用した一連のリソースプロパティが、リージョンのアカウントにあるプロアクティブなルールセットに照らして、COMPLIANT または NON_COMPLIANT であるかを評価できます。
supportedEvaluationModes は
DETECTIVE、PROACTIVE、またはDETECTIVEとPROACTIVEの両方に指定できます。評価モードは指定する必要があり、このフィールドを空のままにすることはできません。注記
プロアクティブルールは、NON_COMPLIANT のフラグが付けられたリソースを修正したり、これらのリソースのデプロイを妨げたりしません。