

# AWS Config ルールでのリソースの評価
<a name="evaluating-your-resources"></a>

カスタムルールを作成するか、マネージドルールを使用すると、AWS Config ではこれらのルールを適用してリソースを評価します。ルールを適用してリソースのオンデマンド評価を行うことができます。オンデマンド評価は、カスタムルールを作成して AWS Config がリソースを正常に評価していることを確認したり、AWS Lambda 関数の評価ロジックに問題があるかどうかを確認したりする場合に便利です。

**例**

1.  IAM ユーザーがアクティブなアクセスキーを持っているかどうかを評価するカスタムルールを作成します。

1.  AWS Config は、このカスタムルールを適用してリソースを評価します。

1.  アクティブなアクセスキーがない IAM ユーザーがアカウント内に存在します。ルールでは、このリソースに NON\_COMPLIANT のフラグが正しく付けられません。

1.  ルールを修正して評価をやり直します。

1. ルールを修正したので、リソースが正常に評価され、IAM ユーザーリソースに NON\_COMPLIANT のフラグが付けられます。

アカウントにルールを追加すると、リソースの作成および管理プロセスで、AWS Config にリソースを評価させるタイミングを指定できます。リソースの作成と管理のプロセスは、リソースプロビジョニングと呼ばれます。*評価モード*を選択して、このプロセスのどの時点で、AWS Config によってリソースを評価するかを指定します。

ルールに応じて、AWS Config は、リソースのデプロイ前、デプロイ後、またはその両方でリソース設定を評価できます。デプロイ前にリソースを評価するのは、**プロアクティブ評価**です。デプロイ後にリソースを評価するのは、**検出評価**です。

## プロアクティブモード
<a name="evaluating-your-resources-proactive"></a>

プロアクティブ評価は、デプロイ前にリソースを評価するために使用します。これにより、AWS リソースを定義するために使用した一連のリソースプロパティが、リージョンのアカウントにあるプロアクティブなルールセットに照らして、COMPLIANT または NON\_COMPLIANT であるかを評価できます。

[リソースタイプスキーマ](https://docs.aws.amazon.com/cloudformation-cli/latest/userguide/resource-type-schema.html)は、リソースのプロパティを記述します。リソースタイプスキーマは、AWS CloudFormation レジストリ内の「*AWS public extensions*」または次の CLI コマンドで確認できます。

```
aws cloudformation describe-type --type-name "AWS::S3::Bucket" --type {{RESOURCE}}
```

詳細については、AWS CloudFormation ユーザーガイドの「[CloudFormation レジストリを使用した拡張機能の管理](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/registry.html#registry-view)」と「[AWS リソースおよびプロパティタイプのリファレンス](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-template-resource-type-ref.html)」を参照してください。

**注記**  
プロアクティブルールは、NON\_COMPLIANT のフラグが付けられたリソースを修正したり、これらのリソースのデプロイを妨げたりしません。

### リソースの評価
<a name="evaluating-your-resources-console-proactive"></a>

**プロアクティブ評価を有効にするには**

1. AWS マネジメントコンソール にサインインして、AWS Config コンソール ([https://console.aws.amazon.com/config/home](https://console.aws.amazon.com/config/home)) を開きます。

1. AWS マネジメントコンソール メニューで、リージョンセレクターが AWS Config ルールをサポートするリージョンに設定されていることを確認します。サポートされている AWS リージョンのリストについては、「*Amazon Web Services 全般のリファレンス*」の「[AWS Config リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#awsconfig_region)」を参照してください。

1. 左のナビゲーションで、**[ルール]** を選択します。プロアクティブ評価をサポートするマネージドルールのリストについては、「[評価モード別の AWS Config マネージドルールのリスト](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-evaluation-mode.html)」を参照してください。

1. ルールを選択し、更新するルールの **[Edit rule]** (ルールの編集) をクリックします。

1. **[Evaluation mode]** (評価モード) で、**[Turn on proactive evaluation]** (プロアクティブな評価をオンにする) を選択し、デプロイ前のリソースの構成設定に対して評価を実行します。

1. **[保存]** を選択します。

**注記**  
プロアクティブ評価をオンにするには、[`put-config-rule`](https://docs.aws.amazon.com/cli/latest/reference/configservice/put-config-rule.html) コマンドを使用して `EvaluationModes` の `PROACTIVE` を有効にするか、[PutConfigRule](https://docs.aws.amazon.com/config/latest/APIReference/API_PutConfigRule.html) アクションを使用して `EvaluationModes` の `PROACTIVE` を有効にすることもできます。

プロアクティブ評価をオンにした後、[StartResourceEvaluation](https://docs.aws.amazon.com/config/latest/APIReference/API_StartResourceEvaluation.html) API と [GetResourceEvaluationSummary](https://docs.aws.amazon.com/config/latest/APIReference/API_GetResourceEvaluationSummary.html) API を使用して、これらのコマンドで指定したリソースが、リソースのアカウントのプロアクティブルールに基づいて NON\_COMPLIANT としてフラグが設定されるかどうかを確認できます。

例えば、StartResourceEvaluation API を開始します。

```
aws configservice start-resource-evaluation --evaluation-mode PROACTIVE
                --resource-details '{"ResourceId":"{{MY_RESOURCE_ID}}",
                                     "ResourceType":"{{AWS::RESOURCE::TYPE}}",
                                     "ResourceConfiguration":"{{RESOURCE_DEFINITION_AS_PER_THE_RESOURCE_CONFIGURATION_SCHEMA}}",
                                     "ResourceConfigurationSchemaType":"CFN_RESOURCE_SCHEMA"}'
```

出力に `ResourceEvaluationId` が表示されます。

```
{
    "ResourceEvaluationId": "MY_RESOURCE_EVALUATION_ID"
}
```

次に、`ResourceEvaluationId` を GetResourceEvaluationSummary API で使用して評価結果を確認します。

```
aws configservice get-resource-evaluation-summary
    --resource-evaluation-id {{MY_RESOURCE_EVALUATION_ID}}
```

次のような出力が表示されます。

```
{
    "ResourceEvaluationId": "MY_RESOURCE_EVALUATION_ID",
    "EvaluationMode": "PROACTIVE",
    "EvaluationStatus": {
        "Status": "SUCCEEDED"
    },
    "EvaluationStartTimestamp": "2022-11-15T19:13:46.029000+00:00",
    "Compliance": "COMPLIANT",
    "ResourceDetails": {
        "ResourceId": "MY_RESOURCE_ID",
        "ResourceType": "AWS::RESOURCE::TYPE",
        "ResourceConfiguration": "RESOURCE_DEFINITION_AS_PER_THE_RESOURCE_CONFIGURATION_SCHEMA"
    }
}
```

どのルールがリソースに NON\_COMPLIANT のフラグを付けたかなど、評価結果に関する詳細を確認するには、[GetComplianceDetailsByResource](https://docs.aws.amazon.com/config/latest/APIReference/API_GetComplianceDetailsByResource.html) API を使用します。

## 検出モード
<a name="evaluating-your-resources-detective"></a>

検出評価は、デプロイ済みのリソースを評価するために使用します。これにより、既存のリソースの設定内容を評価できます。

### リソースの評価 (コンソール)
<a name="evaluating-your-resources-console"></a>

1. AWS マネジメントコンソール にサインインして、AWS Config コンソール ([https://console.aws.amazon.com/config/home](https://console.aws.amazon.com/config/home)) を開きます。

1. AWS マネジメントコンソール メニューで、リージョンセレクターが AWS Config ルールをサポートするリージョンに設定されていることを確認します。サポートされているリージョンのリストについては、「*Amazon Web Services 全般のリファレンス*」の「[AWS Config リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/awsconfig.html)」を参照してください。

1. ナビゲーションペインで **ルール** を選択します。**[Rule]** (ルール) ページには、各ルールの名前、関連する修復アクション、およびコンプライアンスステータスが表示されます。

1. テーブルからルールを選択します。

1. **[Actions]** (アクション) ドロップダウンリストから、**[Re-evaluate]** (再評価) を選択します。

1.  AWS Config は、ルールを適用してリソースの評価を開始します。

**注記**  
ルールは 1 分に 1 回再評価できます。AWS Config でルールの評価が完了するのを待ってから、別の評価を開始する必要があります。ルールの更新中または削除中に評価を実行することはできません。

### リソースの評価 (CLI)
<a name="evaluating-your-resources-cli"></a>
+ **start-config-rules-evaluation** コマンドを実行します。

  ```
  $ aws configservice start-config-rules-evaluation --config-rule-names {{ConfigRuleName}}
  ```

  AWS Config は、ルールを適用して記録済みのリソース設定の評価を開始します。リクエストで複数のルールを指定することもできます。

  ```
  $ aws configservice start-config-rules-evaluation --config-rule-names {{ConfigRuleName1}} {{ConfigRuleName2}} {{ConfigRuleName3}}
  ```

### リソースの評価 (API)
<a name="evaluating-your-resources-api"></a>

[StartConfigRulesEvaluation](https://docs.aws.amazon.com/config/latest/APIReference/API_StartConfigRulesEvaluation.html) アクションを使用します。