AWS Config ルールの追加 - AWS Config

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

AWS Config ルールの追加

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

ルールの追加 (コンソール)

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

注記

新しいルールを追加すると、 は、以前に記録されたリソースを含む、リソースインベントリ内の該当するリソース AWS Config を評価します。例えば、AWS::IoT::Policy リソースを記録したが、後で記録から除外した場合、 AWS Config はインベントリに初期設定項目 (CI) を保持します。関連付けられたリソースタイプが記録から除外されると、 AWS Config はこれらの CI を更新しなくなりますが、最後に記録された状態を保持し、適用可能なルールを追加した際に評価します。

AWS Config は、リソースインベントリに含まれていないリソースを評価しません。たとえば、amplify-branch-taggedルールを追加してもリソースを記録せず、記録したことがない場合AWS::Amplify::Branch、 AWS Config はアカウントの AWS Amplify ブランチが準拠しているかどうかを評価できません。

詳細については、「AWS Config での AWS リソースの記録」を参照してください。

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

  2. AWS マネジメントコンソール メニューで、リージョンセレクタが AWS Config ルールをサポートするリージョンに設定されていることを確認します。サポートされているリージョンのリストについては、「Amazon Web Services 全般のリファレンス」の「AWS Config リージョンとエンドポイント」を参照してください。

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

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

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

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

    2. 独自のカスタムルールを作成することもできます。Lambda を使用してカスタムルールを作成するまたは Guard を使用してカスタムルールを作成するを選択し、AWS Config 「カスタム Lambda ルールの作成」またはAWS Config 「カスタムポリシールールの作成」の手順に従います。

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

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

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

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

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

        プロアクティブ評価をオンにした後、StartResourceEvaluation API と GetResourceEvaluationSummary API を使用して、これらのコマンドで指定したリソースが、リソースのアカウントのプロアクティブルールに基づいて NON_COMPLIANT としてフラグが設定されるかどうかを確認できます。

        このコマンドの使用の詳細については、AWS Config 「ルールを使用したリソースの評価」を参照してください。プロアクティブ評価をサポートするマネージドルールのリストについては、「評価モード別の AWS Config マネージドルールのリスト」を参照してください。

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

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

        1. ルールのトリガータイプに設定の変更が含まれている場合は、 が Lambda 関数 AWS Config を呼び出す変更の範囲に次のいずれかのオプションを指定します。

          • [リソース] – 指定したリソースタイプや、リソースタイプおよび識別子と一致するリソースが作成、変更、または削除された場合。

          • [Tags] (タグ) – 指定したタグを含むリソースが作成、変更、または削除された場合。

          • すべての変更 — によって記録されたリソース AWS Config が作成、変更、または削除された場合。

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

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

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

  7. [レビューして作成] ページで、 AWS アカウントアカウントにルールを追加する前に、編集中のすべての選択項目を確認します。ルールが正常に動作していない場合は、[Compliance] (コンプライアンス) に以下のいずれかが表示されます。

    • 結果は報告されません - ルールに対してリソースが AWS Config 評価されました。ルールがスコープ内の AWS リソースに適用されなかったか、指定されたリソースが削除されたか、評価結果が削除されました。評価結果を取得するには、ルールを更新するか、スコープを変更するか、または [Re-evaluate] (再評価) を選択します。

      このメッセージは、ルールから評価結果が報告されなかった場合にも表示される場合があります。

    • 範囲内にリソースがない - どの AWS リソースもルールの範囲内にないため、記録されたリソースをこのルールに対して評価 AWS Config できません。評価結果を取得するには、ルールを編集してその範囲を変更するか、設定ページを使用して AWS Config のリソースを追加して記録します。

    • [Evaluations failed] (評価が失敗しました) - 問題の原因を判断するには、ルール名を選択して詳細ページを開き、エラーメッセージを確認します

ルールの追加 (AWS SDKs)

次のサンプルコードは、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 属性には、ルールに必要なタグキー、および CostCenterOwner が指定されます。

コマンドが成功すると、 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_LAMBDASourceIdentifier 属性は AWS Lambda 関数の ARN に設定されます。SourceDetails オブジェクトは必須です。InputParameters 属性に指定されたパラメータは、Config が呼び出してルールに対してリソースを評価するときに AWS Lambda AWS 関数に渡されます。

コマンドが成功すると、 AWS Config は出力を返しません。ルール設定を確認するには、describe-config-rules コマンドを実行してルール名を指定します。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「PutConfigRule」を参照してください。

Python
SDK for Python (Boto3)
注記

GitHub には、その他のリソースもあります。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

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」を参照してください。

SAP ABAP
SDK for SAP ABAP
注記

GitHub には、その他のリソースもあります。用例一覧を検索し、AWS コード例リポジトリでの設定と実行の方法を確認してください。

" 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」を参照してください。