AWS Lambda編~CloudTrailと連携してみる~

前回は『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します。

Turn On

2.SNSの準備
通知処理に使うSNSを用意します。

Create Topic

Create SubscriptionからEmailで登録しておきます。

Create Subscription

3.Lambdaの設定
次にLambdaの設定をしていきます。
今回はnode_moduleのasyncを利用する為、npmが利用出来る環境で作成していきます。
※SNSのARNは適宜書き換えてください。

次にLambdaが利用するRoleを作成します。
PoliciesからCreate Policyをクリックします。

Create Policy

既存のPolicyをコピーして元にします。

Copy

「AWSLambdaExecute」を選択します。
AWSLambdaExecute

今回作成したSNSの権限を追加してCreateします。

Review Policy

続いて作成したPolicyをAttachしたRoleを作成します。

Create New Role

Set Role name

Select Role Type

Select Policy

Lambda functionの作成をします。
–roleには先程作成したRoleのARNを設定します。

作成したLambda functionがS3をEventとして利用できるように権限を付与します。
※バケット名とアカウントIDは適宜書き換えてください。

 

S3にLambdaを実行するようにEventsとして設定します。

Events

3.確認してみる
それでは実際に試してみます。
今回のLambda functionではCloudTrailからCreate Topicを検知して通知をします。

新しいTopicを作成して次のメールがくれば成功です。

Email

いかがでしたでしょうか?
次回もお楽しみに!!!