新サービス『AWS CloudTrail』のユーザーガイドを読んでみた / Amazon SNS通知設定

2013.11.16

シリーズ第4弾は『Amazon SNS通知設定』です。ここはボリューム的にそんなに多く無いですし、サラリと行きます。

目次

Amazon SNS通知設定

CloudTrailがAmazon S3バケットに新しいログファイルを発行する際に、通知を行う事が出来ます。Amazon SNSを使って通知を管理します。

通知はオプションです。通知をしたい場合は、CloudTrailのAmazon SNSトピックに対する情報更新設定(新しいログファイルが配信された際は適宜送る)を行います。これらの通知を受信するには、トピックに対するAmazon SNSの購読を行います。購読加入者として、あなたはAmazon SQSキューの更新を入手出来るようになり、それらの通知はプログラマブルに処理出来ます。

 

CloudTrail通知送信設定

Trail(証跡)設定時には、新たにAmazon SNSトピックを設定する事が出来ます。こちらのエントリでも実際にSNSトピックを作成してTrailを設定してみましたが、このように管理コンソールやその他AWS CLIでSNS連携を行う事が出来ます。作成時に通知が必要であれば、CloudTrailはAmazon SNSトピックを作成し、CloudTrailがトピックを配信するために適切なポリシーを付与します。

APIを使用してTrail(証跡)を作成する場合、通知を送信するCloudTrailに対して既存のAmazon SNSトピックを指定する事が出来ます。その作業を行う場合、トピックが存在する事とCloudTrailが通知を行う権限を持っている事を確かめる必要があります。CloudTrail APIの一部であるCreateTrailまたはUpdateTrail操作を呼び出す事により、CloudTrailが既存のAmazon SNSトピックを使用するように指定する事が出来ます。

CloudTrailは、特定のリージョンで稼働しています。通知を有効にすると、通知はその地域のAmazon SNSトピックに送信されます。複数の地域で有効になっている場合は通知は複数のトピックに送信されます。通知を受信する為には、Amazon SNSトピックまたはCloudTrailで使用されているトピックを購読する必要があります。(※ちなみにCloudTrailは通知の度に送信を行うため、ログファイルは都度Amazon S3バケットに書き込まれる事になり、メールやSNSで購読する際は大量の通知を生成する事になるので注意。SQSを使って購読するのがオススメです)

 

SNS通知に対する権限

CloudTrailは、Amazon SNSのトピックに通知を送信する為の権限を持っている必要があります。CloudTrailが自動的にトピックを作成した場合、これらの権限は自動的に新しいトピックに追加されますが既存のトピックを指定した場合、トピックが適切な権限を持っている事を確認する必要があります。以下例では、CloudTrailによって新しいトピックに対して自動的に権限が作成される例です。このポリシーでCloudTrailは指定のAmazon SNSトピックに配信を行えるようになります。

{
  "Version": "2012-10-17",
  "Statement": [{
    "Sid": " AWSCloudTrailSNSPolicy20131101",
    "Effect": "Allow",
    "Principal": {"AWS": [
      "arn:aws:iam::086441151436:root",
      "arn:aws:iam::113285607260:root"
    ]},
    "Action": "SNS:Publish",
    "Resource": "arn:aws:sns:region:account-number:topic-name"
  }]
}

まとめ

当エントリではSNS連携について少し深堀りしてみました。先のエントリではSNSとメール配信を行うTopicを作成し、ちょいちょい操作を行っているので結果としてこんな感じのメールが時々届きますが、確かに大量な操作ログの通知が都度届くのも困りますね。適切な権限・通知設定を行う事でより良い連携作業を行いたいものです。

cloudtrail-sns-mail