AWSマネジメントコンソールへのログインをZapierでSlackに通知する

どうも、セクションナイン吉田真吾@yoshidashingo)です。

ZapierはBasicプラン以上に登録するとLambdaやDynamoDB、CloudFrontといったAWSサービスを含む「Premium Apps」が使えるようになります。

f:id:yoshidashingo:20160311164409p:plain

まずは手始めに簡単そうな「AWSマネジメントコンソールのログイン→Slack通知」をやってみます。

AWSの設定

1. AWSマネジメントコンソールへのログインをSNSに通知する

  • 1-1. CloudTrailをONにして、「US-EastのAPIコール」を取っておく。(全リージョンで取っておくこと推奨。AMCログインだけならus-eastだけでもいいけど)
  • 1-2. Amazon SNSのトピックを作成しておく。
  • 1-3. CloudWatch EventでAMCへのログインイベントをSNSのトピックに飛ばす。

細かい手順は以下を参照。

dev.classmethod.jp

2. Zapier用のIAMユーザーを作りCredentialを発行しておく

  • 2-1. IAMマネジメントコンソールでIAMユーザーを作る。
  • 2-2. 作ったIAMユーザーに必要なポリシーを設定する。
    • 今回に限って言えば「Amazon SNS Full Access」でよいでしょう(Get, List だけだとダメ)
  • 2-3. 作ったIAMユーザーのCredentialをダウンロードする。

Zapierの設定

3. 準備

  • 3-1. Basicプラン以上にアップグレードする。
  • 3-2. 「アカウントアイコン」→「Connected Accounts」でAmazon SNSを選択し、「us-east」を選択し、Credentialを入力して接続する。

4. Zapの作成

  • 4-1. 「Make a Zap!」押下
  • 4-2. TRIGGER設定
    • 「Amazon SNS」を選択
    • 「New JSON Message」を選択
    • 「1-3. のSNSトピック」を選択
  • 4-3. ACTION設定
    • 「Slack」を選択
    • 「Send Channel Message」を選択
    • Slackのチームアカウントを選択する
    • botにつぶやかせるチャンネルやメッセージ、アイコンなどその他細かい点を設定する

※ SNSのトピックを作成してから一回以上AWSマネジメントコンソールにログインしてトピックにデータがあれば、以下のような属性と直前のデータの内容をフェッチしてくれるので設定が楽です。

f:id:yoshidashingo:20160314212021p:plain

以上、サクッと使えてとてもいいですね。