

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# AWS Config ルールの追加
<a name="evaluate-config_add-rules"></a>

 AWS Config コンソールまたは AWS SDKs を使用してルールを追加できます。

**Topics**
+ [コンソールを使用する](#evaluate-config_add-rules-console)
+ [AWS SDKsの使用](#evaluate-config_add-rules-cli)

## ルールの追加 (コンソール)
<a name="evaluate-config_add-rules-console"></a>

**[ルール]** ページの表に、ルールとその現在のコンプライアンス結果が表示されます。各ルールの結果は**、 がルールに対するリソースの評価を完了するまで、評価中...** です。 AWS Config 結果は、更新ボタンにより更新できます。が評価 AWS Config を完了すると、準拠または非準拠のルールとリソースタイプを確認できます。詳細については、「[を使用した AWS リソースのコンプライアンス情報と評価結果の表示 AWS Config](evaluate-config_view-compliance.md)」を参照してください。

**注記**  
新しいルールを追加すると、 は、以前に記録されたリソースを含め、リソースインベントリ内の該当するリソース AWS Config を評価します。例えば、`AWS::IoT::Policy` リソースを記録したが、後で記録から除外した場合、 AWS Config はインベントリに初期設定項目 (CI) を保持します。関連付けられたリソースタイプが記録から除外されると、 AWS Config はこれらの CI を更新しなくなりますが、最後に記録された状態を保持し、適用可能なルールを追加した際に評価します。  
AWS Config は、リソースインベントリに含まれていないリソースを評価しません。たとえば、[amplify-branch-tagged](amplify-branch-tagged.md)ルールを追加してもリソースを記録せず、記録したことがない場合`AWS::Amplify::Branch`、 AWS Config はアカウントの AWS Amplify ブランチが準拠しているかどうかを評価できません。  
詳細については、「[を使用した AWS リソースの記録 AWS Config考慮事項](select-resources.md)」を参照してください。

### ルールの追加
<a name="add-rules-console"></a>

**ルールを追加するには**

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

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

1. 左のナビゲーションで、**[ルール]** を選択します。

1. **[ルール]** ページで、**[ルールの追加]** を選択します。

1. **[Specify rule type]** (ルールタイプの指定) ページで、以下のステップを完了してルールタイプを指定します。

   1. 検索フィールドに入力して、ルール名、説明、ラベルでマネージドルールのリストをフィルタリングします。例えば、**EC2** と入力すると、EC2 リソースタイプを評価するルールが返されます。**periodic** と入力すると、定期的にトリガーされるルールが返されます。

   1. 独自のカスタムルールを作成することもできます。**Lambda を使用してカスタムルール**を作成するまたは **Guard を使用してカスタムルールを作成する**を選択し、[AWS Config 「カスタム Lambda ルールの作成](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules_lambda-functions.html)」または[AWS Config 「カスタムポリシールールの作成](https://docs.aws.amazon.com/config/latest/developerguide/evaluate-config_develop-rules_cfn-guard.html)」の手順に従います。

1. **[Configure rule]** (ルールの設定) ページで、以下のステップを実行してルールを設定します。

   1. **名前** に、ルールの一意の名前を入力します。

   1. **[説明]** に、ルールの説明を入力します。

   1. **評価モードでは**、リソースの作成および管理プロセスでリソース AWS Config を評価するタイミングを選択します。ルールに応じて、 はリソースのデプロイ前、リソースのデプロイ後、またはその両方でリソース設定を評価 AWS Config できます。

      1. **[プロアクティブ評価をオンにする]** を選択すると、リソースをデプロイする前に、その設定内容に対して評価を実行できます。

         プロアクティブ評価をオンにした後、[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\$1COMPLIANT としてフラグが設定されるかどうかを確認できます。

          このコマンドの使用の詳細については、[AWS Config 「ルールを使用したリソースの評価](https://docs.aws.amazon.com/config/latest/developerguide/evaluating-your-resources.html#evaluating-your-resources-proactive)」を参照してください。プロアクティブ評価をサポートするマネージドルールのリストについては、[「評価モード別の AWS Config マネージドルールのリスト](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-evaluation-mode.html)」を参照してください。

      1. 既存のリソースの設定内容を評価するには、**[検出評価を有効にする]** を選択します。

         検出評価には、**設定変更時**と**定期的**の 2 種類のトリガーがあります。

         1.  ルールのトリガータイプに**設定の変更**が含まれている場合は、 が Lambda 関数 AWS Config を呼び出す**変更の範囲**に次のいずれかのオプションを指定します。
            +  **[リソース]** – 指定したリソースタイプや、リソースタイプおよび識別子と一致するリソースが作成、変更、または削除された場合。
            +  **[Tags]** (タグ) – 指定したタグを含むリソースが作成、変更、または削除された場合。
            +  **すべての変更** — によって記録されたリソース AWS Config が作成、変更、または削除された場合。

            AWS Config は、ルールのスコープに一致するリソースへの変更を検出すると、評価を実行します。スコープを使用して評価を開始するリソースを定義できます。

         1. ルールのトリガータイプに **Periodic** が含まれている場合は、 が Lambda 関数を AWS Config 呼び出す**頻度**を指定します。

   1. **[Parameters]** (パラメータ) では、ルールにパラメータが含まれる場合、提供されたキーの値をカスタマイズできます。パラメータは、ルールに準拠しているとみなされるためにリソースが従う必要がある属性です。

1. **[レビューして作成]** ページで、 AWS アカウントアカウントにルールを追加する前に、編集中のすべての選択項目を確認します。ルールが正常に動作していない場合は、**[Compliance]** (コンプライアンス) に以下のいずれかが表示されます。
   +  **結果は報告されません** - ルールに対してリソースが AWS Config 評価されました。ルールがスコープ内の AWS リソースに適用されなかったか、指定されたリソースが削除されたか、評価結果が削除されました。評価結果を取得するには、ルールを更新するか、スコープを変更するか、または **[Re-evaluate]** (再評価) を選択します。

     このメッセージは、ルールから評価結果が報告されなかった場合にも表示される場合があります。
   +  **範囲内にリソースがない ** - どの AWS リソースもルールの範囲内にないため、記録されたリソースをこのルールに対して評価 AWS Config できません。評価結果を取得するには、ルールを編集してその範囲を変更するか、**設定**ページを使用して AWS Config のリソースを追加して記録します。
   +  **[Evaluations failed]** (評価が失敗しました) - 問題の原因を判断するには、ルール名を選択して詳細ページを開き、エラーメッセージを確認します

## ルールの追加 (AWS SDKs)
<a name="evaluate-config_add-rules-cli"></a>

### ルールの追加
<a name="add-rules-cli"></a>

次のサンプルコードは、`PutConfigRule` を使用する方法を説明しています。

------
#### [ CLI ]

**AWS CLI**  
** AWS マネージド Config ルールを追加するには**  
次のコマンドは、 AWS マネージド Config ルールを追加するための JSON コードを提供します。  

```
aws configservice put-config-rule --config-rule file://RequiredTagsForEC2Instances.json
```
`RequiredTagsForEC2Instances.json` は、ルール設定を含む JSON ファイルです。  

```
{
  "ConfigRuleName": "RequiredTagsForEC2Instances",
  "Description": "Checks whether the CostCenter and Owner tags are applied to EC2 instances.",
  "Scope": {
    "ComplianceResourceTypes": [
      "AWS::EC2::Instance"
    ]
  },
  "Source": {
    "Owner": "AWS",
    "SourceIdentifier": "REQUIRED_TAGS"
  },
  "InputParameters": "{\"tag1Key\":\"CostCenter\",\"tag2Key\":\"Owner\"}"
}
```
`ComplianceResourceTypes` 属性の場合、この JSON コードはスコープを `AWS::EC2::Instance`タイプのリソースに制限するため、Config AWS は EC2 インスタンスのみをルールに対して評価します。このルールはマネージドルールであるため、`Owner` 属性は `AWS` に設定され、`SourceIdentifier` 属性はルール識別子 `REQUIRED_TAGS` に設定されます。`InputParameters` 属性には、ルールに必要なタグキー、および `CostCenter` と `Owner` が指定されます。  
コマンドが成功すると、 AWS Config は出力を返しません。ルール設定を確認するには、describe-config-rules コマンドを実行してルール名を指定します。  
**カスタマーマネージド Config ルールを追加するには**  
次のコマンドは、カスタマーマネージド Config ルールを追加するための JSON コードを提供します。  

```
aws configservice put-config-rule --config-rule file://InstanceTypesAreT2micro.json
```
`InstanceTypesAreT2micro.json` は、ルール設定を含む JSON ファイルです。  

```
{
  "ConfigRuleName": "InstanceTypesAreT2micro",
  "Description": "Evaluates whether EC2 instances are the t2.micro type.",
  "Scope": {
    "ComplianceResourceTypes": [
      "AWS::EC2::Instance"
    ]
  },
  "Source": {
    "Owner": "CUSTOM_LAMBDA",
    "SourceIdentifier": "arn:aws:lambda:us-east-1:123456789012:function:InstanceTypeCheck",
    "SourceDetails": [
      {
        "EventSource": "aws.config",
        "MessageType": "ConfigurationItemChangeNotification"
      }
    ]
  },
  "InputParameters": "{\"desiredInstanceType\":\"t2.micro\"}"
}
```
`ComplianceResourceTypes` 属性の場合、この JSON コードはスコープを `AWS::EC2::Instance`タイプのリソースに制限するため、Config AWS は EC2 インスタンスのみをルールに対して評価します。このルールはカスタマーマネージドルールであるため、 `Owner` 属性は に設定され`CUSTOM_LAMBDA`、 `SourceIdentifier` 属性は AWS Lambda 関数の ARN に設定されます。`SourceDetails` オブジェクトは必須です。`InputParameters` 属性に指定されたパラメータは、Config が呼び出してルールに対してリソースを評価するときに AWS Lambda AWS 関数に渡されます。  
コマンドが成功すると、 AWS Config は出力を返しません。ルール設定を確認するには、describe-config-rules コマンドを実行してルール名を指定します。  
+  API の詳細については、「*AWS CLI コマンドリファレンス*」の「[PutConfigRule](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/configservice/put-config-rule.html)」を参照してください。

------
#### [ Python ]

**SDK for Python (Boto3)**  
 GitHub には、その他のリソースもあります。用例一覧を検索し、[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/config#code-examples)での設定と実行の方法を確認してください。

```
class ConfigWrapper:
    """
    Encapsulates AWS Config functions.
    """

    def __init__(self, config_client):
        """
        :param config_client: A Boto3 AWS Config client.
        """
        self.config_client = config_client


    def put_config_rule(self, rule_name):
        """
        Sets a configuration rule that prohibits making Amazon S3 buckets publicly
        readable.

        :param rule_name: The name to give the rule.
        """
        try:
            self.config_client.put_config_rule(
                ConfigRule={
                    "ConfigRuleName": rule_name,
                    "Description": "S3 Public Read Prohibited Bucket Rule",
                    "Scope": {
                        "ComplianceResourceTypes": [
                            "AWS::S3::Bucket",
                        ],
                    },
                    "Source": {
                        "Owner": "AWS",
                        "SourceIdentifier": "S3_BUCKET_PUBLIC_READ_PROHIBITED",
                    },
                    "InputParameters": "{}",
                    "ConfigRuleState": "ACTIVE",
                }
            )
            logger.info("Created configuration rule %s.", rule_name)
        except ClientError:
            logger.exception("Couldn't create configuration rule %s.", rule_name)
            raise
```
+  API の詳細については、「*AWS SDK for Python (Boto3) API リファレンス*」の「[PutConfigRule](https://docs.aws.amazon.com/goto/boto3/config-2014-11-12/PutConfigRule)」を参照してください。

------
#### [ SAP ABAP ]

**SDK for SAP ABAP**  
 GitHub には、その他のリソースもあります。用例一覧を検索し、[AWS コード例リポジトリ](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/sap-abap/services/cfs#code-examples)での設定と実行の方法を確認してください。

```
    " Create a config rule for S3 bucket public read prohibition
    lo_cfs->putconfigrule(
      io_configrule = NEW /aws1/cl_cfsconfigrule(
        iv_configrulename = iv_rule_name
        iv_description = |S3 Public Read Prohibited Bucket Rule|
        io_scope = NEW /aws1/cl_cfsscope(
          it_complianceresourcetypes = VALUE /aws1/cl_cfscplncresrctypes_w=>tt_complianceresourcetypes(
            ( NEW /aws1/cl_cfscplncresrctypes_w( |AWS::S3::Bucket| ) )
          )
        )
        io_source = NEW /aws1/cl_cfssource(
          iv_owner = |AWS|
          iv_sourceidentifier = |S3_BUCKET_PUBLIC_READ_PROHIBITED|
        )
        iv_inputparameters = '{}'
        iv_configrulestate = |ACTIVE|
      )
    ).
    MESSAGE 'Created AWS Config rule.' TYPE 'I'.
```
+  API の詳細については、 *AWS SDK for SAP ABAP API リファレンス*の[PutConfigRule](https://docs.aws.amazon.com/sdk-for-sap-abap/v1/api/latest/index.html)」を参照してください。

------