自動修復のためのLambdaの起動
関数がリソースを自動的に隔離または修正する仕組みを確認します。
「自動修復のためのLambdaの起動」はCoddyKit上の無料AWS Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Security Academyコースには全4レッスンが含まれています。
Responder としての Lambda
AWS Lambda は、サーバーを管理せずにコードを実行でき、実行時間に対してのみ料金が発生します。セキュリティ自動化では、最も柔軟な修復ターゲットです。
EventBridge が検出結果に一致すると、Lambda 関数を呼び出して修正を実行します。インスタンスの隔離、キーの無効化、バケットの閉鎖などを数秒で行えます。
修復フロー
パターンは一貫しています。検出器が検出結果を出力し、EventBridge ルールがそれに一致すると、ルールがイベントを入力として渡しながら Lambda 関数を呼び出します。
関数はイベントの詳細を読み取り、影響を受けたリソースを特定して、AWS API を呼び出して修復します。人が介在することなく、検出から是正までが行われます。
イベントの読み取り
EventBridge はイベントの完全な JSON を関数に渡します。コードは detail オブジェクトから、必要な情報(インスタンス ID、バケット名、問題のあるキーなど)を抽出します。
堅牢な関数では、この入力を検証します。形式が不正、または想定外のイベントに対して処理を行うと、誤ったリソースを修復してしまう可能性があるためです。
修復の例
Lambda でよく行われる修復には、次のようなものがあります。
- 侵害されたインスタンスに隔離用セキュリティグループを適用する。
- 漏えいした IAM アクセスキーを無効化する。
- 公開状態のバケットで Block Public Access を有効にする。
- 過剰に許可されたセキュリティグループのルールを削除する。
いずれも、関数が自動的に実行する数回の API 呼び出しで実現できます。
関数に対する最小権限
Lambda 関数は execution role を使用して実行されます。修復に必要な権限だけを付与し、それ以上の権限は与えないでください。
自動修復関数は設計上強力な権限を持つため、そのロールは主要な攻撃対象になります。権限の範囲を厳密に限定すれば、関数やイベント入力が悪用された場合の被害を抑えられます。
{
"Effect": "Allow",
"Action": "ec2:ModifyInstanceAttribute",
"Resource": "*"
}冪等性が重要な理由
EventBridge は、同じイベントを複数回配信することがあり、検出結果が再発する場合もあります。修復処理は、繰り返し実行しても安全な idempotent なものにしてください。
すでに適用されている隔離用セキュリティグループを再度適用しても、副作用なく単純に成功するようにします。これにより、重複した呼び出しによる被害やエラーを防げます。
自動化のガードレール
自動アクションは大きな影響を及ぼす可能性があるため、安全確認を追加してください。関数でリソースに特定のタグが付いていることを確認したり、保護対象の本番システムをスキップしたり、パターンですでに絞り込まれた重大度のしきい値を要求したりできます。
自動化が制御不能になるのを防ぐため、破壊的なアクションに承認ステップを設けるチームもあります。
アクションのログ記録
すべての修復処理には記録を残す必要があります。関数から CloudWatch Logs に書き込み、必要に応じて何をどのリソースに対して行ったかを SNS で通知してください。
CloudTrail に API 呼び出しを記録させることで、自動対応の完全な記録が得られ、監査やインシデント後のレビューに利用できます。
障害に適切に対処する
修復処理は、権限不足、API のスロットリング、リソースの削除などによって失敗する可能性があります。再試行と dead-letter queue を設定し、失敗した呼び出しが失われないようにしてください。
完了できない場合は、関数から人に通知する必要もあります。そうすれば、自動修復の失敗が脅威を放置したまま黙って終わるのではなく、適切にエスカレーションされます。
呼び出し権限
EventBridge が関数を呼び出すには、呼び出し権限が必要です。この権限は、EventBridge サービスを信頼する Lambda の resource-based policy によって付与されます。
関数自身の実行ロールは、実行中に関数ができることを制御します。一方、この呼び出し権限は、関数をトリガーできる主体を制御します。パイプラインを動作させるには、両方を設定する必要があります。
安全な環境でテストする
実際のインシデントを任せる前に、本番環境ではないアカウントでサンプルイベントを使って修復関数をテストしてください。
正しいリソースを処理すること、ガードレールを守ること、正しくログを記録することを確認します。誤って実行される自動化は、攻撃者と同じように停止障害を引き起こす可能性があるため、検証は不可欠です。
クイックチェック
なぜ冪等性が必要なのでしょうか。
まとめ
AWS Lambda は、EventBridge ルールが検出結果に一致したときに自動修復を実行する柔軟なターゲットです。関数はイベントの detail を読み取り、リソースを特定して API を呼び出し、インスタンスの隔離、キーの無効化、バケットの公開停止などを行います。最小権限の execution role を付与し、アクションを idempotent にして、ガードレールとログ記録を追加してください。障害には DLQ とアラートで対処し、本番環境で信頼して使用する前に十分にテストします。
よくある質問
「自動修復のためのLambdaの起動」レッスンは無料ですか?
はい。「自動修復のためのLambdaの起動」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Security Academyコースには全4レッスンが含まれています。
「自動修復のためのLambdaの起動」で何を学びますか?
関数がリソースを自動的に隔離または修正する仕組みを確認します。 ブラウザで直接実行するハンズオンコードでAWS Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AWS Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAWS Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「自動修復のためのLambdaの起動」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAWS Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのAWS Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。