カスタム Lambda ルール (Amazon EC2 の例) - AWS Config

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

カスタム Lambda ルール (Amazon EC2 の例)

この手順では、各 EC2 インスタンスが t2.micro タイプであるかどうかを評価するカスタム Lambda ルールを作成するプロセスをガイド AWS Config します。 はこのルールに対してイベントベースの評価を実行します。つまり、インスタンスで設定の変更を検出するたびに AWS Config インスタンス設定をチェックします。 AWS Config は t2.micro インスタンスを準拠としてフラグ付けし、その他のすべてのインスタンスを非準拠としてフラグ付けします。コンプライアンスのステータスが AWS Config コンソールに表示されます。

この手順で最良の結果を得るには、 に 1 つ以上の EC2 インスタンスが必要です AWS アカウント。インスタンスには、少なくとも 1 つの t2.micro インスタンスと他のタイプが混在している必要があります。

このルールを作成するには、まずコンソールでブループリントをカスタマイズして AWS Lambda 関数を作成します AWS Lambda 。次に、 でカスタム Lambda ルールを作成し AWS Config、そのルールを関数に関連付けます。

カスタム Config ルール用の AWS Lambda 関数の作成

  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/lambda/ で AWS Lambda コンソールを開きます。

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

  3. AWS Lambda コンソールで、Lambda 関数の作成 を選択します。

  4. 設計図の使用 を選択します。検索バーに [config-rule-change-triggered] と入力します。フィルター結果で設計図を選択し、[Configure] (設定) をクリックします。

  5. トリガーを設定する ページで、次に進む をクリックします。

  6. Basic information ページで、以下の手順を完了します。

    1. Function name に「InstanceTypeCheck」と入力します。

    2. 実行ロール で AWS ポリシーテンプレート から新しいロールの作成 を選択します。

    3. ランタイムNode.js を選択したままにします。

    4. [Role name] (ロール名) に名前を入力します。

    5. [Policy templates] (ポリシーテンプレート) で、[AWS Config Rules permission] (Config ルールのアクセス許可)を選択します。

    6. [Lambda function code function] (Lambda 関数コード関数) では、事前設定されたコードを保持します。関数の Node.js コードはコードエディタで提供されます。この手順では、コードを変更する必要はありません。

    7. 詳細を確認し、[Create function] (関数の作成) をクリックします。 AWS Lambda コンソールに関数が表示されます。

  7. 関数が正しく設定されていることを確認するために、以下のステップに従ってテストします。

    1. [Function overview] (関数の概要) の下にあるメニューから [Test] (テスト) をクリックしてから、[Configure test event] (テストイベントの設定) をクリックします。

    2. [Template] (テンプレート) で、AWS Config [Configuration Item Change Notification] (設定項目の変更の通知) をクリックします。

    3. [Name] (名前) に、名前を入力します。

    4. テスト を選択します。イベント例を使用して関数を AWS Lambda テストします。関数が正常に機能している場合は、次のようなエラーメッセージが 実行結果: に表示されます。

      { "errorType": "InvalidResultTokenException," "errorMessage": "Result Token provided is invalid", . . .

      関数InvalidResultTokenExceptionは、 から結果トークンを受け取った場合にのみ正常に実行されるため、 が想定されます AWS Config。result token は、評価をもたらした AWS Config ルールとイベントを識別します。また、評価とルールを関連付けます。この例外は、結果を AWS Configに送信するために必要なアクセス許可が関数にあることを示しています。アクセス許可がなければ、エラーメッセージとして not authorized to perform: config:PutEvaluations と表示されます。このエラーが発生した場合は、関数に割り当てたロールを更新して config:PutEvaluations アクションを許可するように変更し、関数のテストをやり直します。

Amazon EC2 インスタンスを評価するためのカスタム Lambda ルールの作成

  1. https://console.aws.amazon.com/config/ で AWS Config コンソールを開きます。

  2. AWS Management Console メニューで、リージョンセレクタがカスタム Lambda ルールの AWS Lambda 関数を作成したリージョンと同じリージョンに設定されていることを確認します。

  3. [Rules] (ルール) ページで、[Add rule] (ルールの追加) を選択します。

  4. [Specify rule type] (ルールタイプの指定) ページで [Create custom rule] (カスタムルールの作成) をクリックします。

  5. [Configure rule] (ルールの設定) ページで、以下のステップを完了します。

    1. [Name] (名前) に、「InstanceTypesAreT2micro」と入力します。

    2. 説明 に「Evaluates whether EC2 instances are the t2.micro type」と入力します。

    3. [AWS Lambda function ARN] (関数の ARN) で、 AWS Lambda から関数に割り当てられた ARN を指定します。

      注記

      このステップで指定する ARN に $LATEST 修飾子を含めることはできません。バージョン修飾子なしで、または 以外の修飾子を使用して ARN を指定できます$LATEST。 は関数のバージョニング AWS Lambda をサポートし、各バージョンには修飾子を持つ ARN が割り当てられます。 は最新バージョン$LATESTの修飾子 AWS Lambda を使用します。

    4. [Trigger type] (トリガータイプ)で、[When configuration changes] (設定変更時)を選択します。

    5. [Scope of changes] (変更範囲) で、[Resources] (リソース) を選択します。

    6. [Resource] (リソース) で、[Resource Type] (リソースタイプ) ドロップダウンリストから [AWS EC2 Instance] (EC2 インスタンス) を選択します。

    7. パラメータセクションで、 AWS Lambda 関数が評価するルールパラメータと目的の値を指定する必要があります。この手順の関数では、desiredInstanceType パラメータを評価します。

      [Key] (キー) に、「desiredInstanceType」と入力します。Value に、「t2.micro」と入力します。

  6. Next を選択します。[Review and create] (確認と作成) ページで、ルールに関する詳細を確認し、[Add rule function] (ルール関数の追加) をクリックします。新しいルールが [Rules] (ルール) ページに表示されます。

    が AWS Lambda 関数から評価結果 AWS Config を受け取るまで、コンプライアンスには評価中と表示されます。ルールと関数が正常に動作している場合は、結果の概要が数分後に表示されます。例えば、[2 noncompliant resource(s)] (2 つの準拠していないリソース) という結果はインスタンスのうち 2 つが t2.micro インスタンスではないことを示します。[Compliant] (準拠) という結果はすべてのインスタンスが t2.micro であることを示します。結果は、更新ボタンを使用して更新できます。

    ルールまたは関数が正常に動作していない場合は、[Compliance] (コンプライアンス) に以下のいずれかが表示されます。

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

      スコープに [Resources] (リソース) の AWS [EC2 Instance] (EC2 インスタンス)が含まれていることを確認して、もう一度試してください。

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

      AWS Config が EC2 インスタンスを記録していることを確認します。

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

ルールが正しく動作し、評価結果 AWS Config を提供する場合、ルールのコンプライアンスステータスに影響する条件を確認できます。準拠していないリソース (ある場合) とその理由を確認できます。詳細については、「コンプライアンス情報と評価結果の表示」を参照してください。