AWS Chatbotの作成
子どもから下記の遊びを誘われた。
- 恐竜ごっこ(なるべく大きな足音を立てて歩く)
- ねずみごっこ(かがんだ状態で歩く)
- うさぎごっこ(ひたすらジャンプする)
ちゃんと遊びの詳細を説明してくれたことにはとても驚くのだけれど、どれも肉体的にはキツすぎた。子どもの体力ってこうして伸びていくんだなということが理解できた。ヤングライオンだってこんな動かないよ、とちょっと思った。
AWS Chatbotが利用したくなったので、調べながら進める。
Chatbotの作成
まずクライアントを作成して、自身のSlackワークスペースとつなげた。次にチャネルをつなげるための詳細設定を行った。
このとき「チャネルガードレールポリシー」の設定につまづく。何を選べばいいのか。【Chatbot】Channelガードレールとは?AWS Chatbotで新しく出来た権限周りについて調べてみた - Qiitaを読むと、どうやらホワイトリストのようなものだということがわかった。自身しか利用しないSlackワークスペースのため、全権限を有効にするつもりでAdministratorAccess
を選択。
その後該当チャンネルの詳細から「アプリを追加する」でaws
という名前のボットをチャンネルに招待・追加できた。
トピックの作成、テストメッセージの送信
つぎにSNSトピックを作成しないといけないようだ。SNSでトピックを作成した。設定はデフォルトのまま。
あらためてChatbotの設定に戻り、作成したトピックをひもづけると、テストメッセージの送信が実行できた。ためしに実行すると、無事Slackチャンネルにメッセージが届いた。
Budgetのアラートを通知できるよう設定
Budgetのアラート先にはメールアドレスのみを指定していたが、この通知をSNS経由でSlackに届けることができそうだ。Budgetの設定画面で次のようなアクセスポリシーをSNSトピック(のstatement配列)に追加するよう指示があったのでやってみる。Resource
にはSNSトピックのARNを入れる。
{
"Sid": "AWSBudgets-notification-1",
"Effect": "Allow",
"Principal": {
"Service": "budgets.amazonaws.com"
},
"Action": "SNS:Publish",
"Resource": "<insert-ARN-here>"
}
ちなみにアクセスポリシーについて
毎回混乱するので、下記記事を参考にアクセスポリシーの理解をあらためた。
- 【更新】AWSにおけるアクセスポリシーの評価ロジック - サーバーワークスエンジニアブログ
- 【初心者向け】IAMポリシー(JSON)の見方 - サーバーワークスエンジニアブログ
- AssumeRole について DiveDeep する - サーバーワークスエンジニアブログ
信頼ポリシーつまりAssumeRoleが最後まで理解できなかったのだけれど、すくなくとも上述のリソースベースのポリシーは理解できた。BudgetがSNSトピックのPublish操作をできるようにした、ということ。ここにはユーザつまりIAMは登場しない。ユーザの権限なく勝手に動いてほしいから。