前回は『AWS Lambda編~SNSと連携してみる~』と題して、AWS LambdaでSNSとの連携を試してみました。
今回は『AWS Lambda編~CloudTrailと連携してみる~』と題して、AWS LambdaでCloudTrailとの連携を試してみたいと思います。
CloudTrailとの連携
AWS LambdaではEvent SourceとしてS3を利用することが出来ます。
CloudTrailはS3にOutputする為、上記の機能を使う事でCloudTrailとの連携が可能となります。
例えばCloudTrailに出力されたログをトリガーに特定の処理をするなどが出来ます。
試してみる
それでは試してみましょう!
今回は以下のドキュメントを参考に試してみます。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/wt-cloudtrail-events-adminuser.html
1CloudTrailの準備
先ずはCloudTrailを準備していきます。
該当項目を入力してTurn Onします。
2.SNSの準備
通知処理に使うSNSを用意します。
Create SubscriptionからEmailで登録しておきます。
3.Lambdaの設定
次にLambdaの設定をしていきます。
今回はnode_moduleのasyncを利用する為、npmが利用出来る環境で作成していきます。
※SNSのARNは適宜書き換えてください。
次にLambdaが利用するRoleを作成します。
PoliciesからCreate Policyをクリックします。
既存のPolicyをコピーして元にします。
今回作成したSNSの権限を追加してCreateします。
続いて作成したPolicyをAttachしたRoleを作成します。
Lambda functionの作成をします。
–roleには先程作成したRoleのARNを設定します。
作成したLambda functionがS3をEventとして利用できるように権限を付与します。
※バケット名とアカウントIDは適宜書き換えてください。
S3にLambdaを実行するようにEventsとして設定します。
3.確認してみる
それでは実際に試してみます。
今回のLambda functionではCloudTrailからCreate Topicを検知して通知をします。
新しいTopicを作成して次のメールがくれば成功です。
いかがでしたでしょうか?
次回もお楽しみに!!!