AWS Config を使用して EC2 インスタンスのキーペアを監視する - AWS 規範ガイダンス

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

AWS Config を使用して EC2 インスタンスのキーペアを監視する

Wassim Benhallam、Sergio Bilbao Lopez、Vikrant Telkar、Amazon Web Services

概要

Amazon Elastic Compute Cloud (Amazon EC2) インスタンスをAmazon Web Services (AWS) クラウドで起動する場合のベストプラクティスは、インスタンスに接続する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを作成または使用することです。キーペアは、インスタンスに保存されているパブリックキーとユーザーに提供されるプライベートキーで構成され、Secure Shell (SSH) を介してインスタンスに安全にアクセスでき、パスワードの使用を回避できます。ただし、ユーザーがkey pair をアタッチせずに誤ってインスタンスを起動することがあります。キーペアはインスタンスの起動時にのみ割り当てることができるため、キーペアなしで起動したインスタンスをすばやく特定し、非対応としてフラグを立てることが重要です。これは、インスタンスへのアクセスにキーペアの使用が義務付けられているアカウントや環境で作業する場合に特に便利です。

このパターンでは、AWS Config でカスタムルールを作成して EC2 インスタンスのキーペアを監視する方法を説明します。インスタンスが非準拠として識別されると、Amazon EventBridge イベントを通じて開始される Amazon Simple Notification Service(Amazon SNS)通知を用いて送信されます。

前提条件と制限

前提条件

  • アクティブな AWS アカウント。

  • モニタリングしたい AWS リージョンで AWS Config が有効になっており、すべての AWS リソースを記録するように設定されている

機能制限

  • このソリューションはリージョン固有です。これらのすべてのリソースを、同じ AWS リージョン内に作成する必要があります。

アーキテクチャ

ターゲットテクノロジースタック

  • AWS Config

  • Amazon EventBridge

  • AWS Lambda

  • Amazon SNS

ターゲットアーキテクチャ

Diagram showing AWS のサービス interaction: Config, Custom rule, Lambda, EventBridge, SNS, and Email notification.

  1. AWS Config がルールを開始します。

  2. このルールは Lambda 関数を呼び出して EC2 インスタンスのコンプライアンスを評価します。

  3. Lambda 関数は、更新されたコンプライアンス状態を AWS Config に送信します。

  4. AWS Config はイベントブリッジにイベントを送信します。

  5. EventBridge は SNS トピックにコンプライアンス変更通知を公開します。

  6. Amazon SNS はアラートを電子メールで送信します。

自動化とスケール

このソリューションでは、リージョン内の任意の数の EC2 インスタンスを監視できます。

ツール

ツール

  • AWS Config – AWS Config を使用すると、AWS リソースの設定を評価、監査、審査できます。AWS Config では、AWS リソースの設定の評価、監査、評価を行うことができます。 は、AWS リソース設定を継続的に監視および記録し、必要な設定に対して記録された設定の評価を自動化することができます。

  • Amazon EventBridge— Amazon EventBridgeは、アプリケーションをさまざまなソースからのデータに接続するために使用できるサーバーレスのイベントバスサービスです。

  • AWS Lambda は、サーバーのプロビジョニングや管理、ワークロードに対応したクラスタースケーリングロジックの作成、イベント統合の維持、あるいはランタイムの管理などを行うことなくコードの実行をサポートする、サーバーレスコンピューティングサービスです。

  • Amazon SNS – Amazon Simple Notification Service (Amazon SNS)は、アプリケーション間 (A2A) およびアプリケーションと人間の間 (A2P) の通信の両方に対応するフルマネージド型のメッセージングサービスです。

コード

Lambda 関数のコードが添付されています。 

エピック

タスク説明必要なスキル
Lamda の AWS Identity and Access Management (IAM) ロールを作成します。

AWS マネジメントコンソールで「IAM」を選択し、ロールを作成します。このとき、Lambda を信頼できるエンティティとして使用し、AmazonEventBridgeFullAccessAWSConfigRulesExecutionRoleのアクセス権限を追加します。詳細については、AWS ドキュメントを参照してください。

DevOps
Lambda 関数を作成してデプロイします。
  1. Lambda コンソールで、「Python 3.6」をランタイムとして、以前に作成した IAM ロールを使用して、「ゼロから作る」を使用して関数を作成します。Amazon リソースネーム (ARN) を記録しておきます。

  2. コード」タブで、lambda_function.pyを選択し、このパターンに添付されているコードを貼り付けます。 

  3. 変更を保存するには [デプロイ] を選択します。 

DevOps
タスク説明必要なスキル
カスタム AWS Config ルールを追加します。

AWS Config コンソールで、次の設定を使用してカスタムルールを追加します。

  • ARN — 以前に作成されたLambda 関数の ARN です。

  • トリガータイプ: 設定変更

  • 変更範囲 — リソース

  • リソースタイプ — Amazon EC2 インスタンス

詳細については、AWS ドキュメントを参照してください。

DevOps
タスク説明必要なスキル
SNS トピックとサブスクリプションを作成します。

Amazon SNS コンソールで、タイプとして「スタンダード」を使用してトピックを作成し、次にプロトコルとして「E メール」を使用してサブスクリプションを作成します。

確認 E メールを受信したら [サブスクリプションを確認] リンクを選択します。

詳細については、AWS ドキュメントを参照してください。

DevOps
Amazon SNS 通知を開始する EventBridge ルールを作成します。

EventBridge コンソールで、以下の設定を使用してルールを作成します。

  • サービス名 — AWS Config

  • イベントタイプ — Config ルールコンプライアンス変更

  • メッセージタイプ — 特定のメッセージタイプ、コンプライアンス/変更通知

  • 特定のルール名 — 以前に作成した AWS Config ルールの名前

  • ターゲット — SNS トピック、以前に作成したトピック

詳細については、AWS ドキュメントを参照してください。

DevOps
タスク説明必要なスキル
EC2 インスタンスを作成します。

任意のタイプの 2 つの EC2 インスタンスを作成してキーペアをアタッチし、キーペアなしで 1 つの EC2 インスタンスを作成します。

DevOps
ルールを確認する。
  1. AWS Config コンソールの「ルール」ページで、ルールを選択します。

  2. 準拠している EC2 インスタンスと準拠していない EC2 インスタンスを表示するには、「スコープ内のリソース」を「すべて」に変更します。2 つのインスタンスが準拠していると表示され、1 つのインスタンスが非準拠としてリストされていることを確認します。 

  3. EC2 インスタンスのコンプライアンス状態に関する Amazon SNS E メール通知を受信するまでお待ちください。 

DevOps

添付ファイル

このドキュメントに関連する追加コンテンツにアクセスするには、次のファイルを解凍してください。「attachment.zip