AWS Chatbot(Amazon Q Developer)のslack連携に必要なIAMポリシーについて調査

◆概要
Amazon Q Developer(AWS Chatbot)のリソース構築においてslackと連携させたい場合、初回に対象のslackワークスペースと認証を行う必要がある。
この認証まで行うのに必要なIAMユーザのポリシーを本スクラップで調査する。
◆ゴール
Amazon Q Developer(AWS Chatbot)のslack認証において必要なIAMのポリシーを把握する。
◆やること
IAMユーザを1つ作成して、ポリシーアタッチして認証までできるかどうかを確認していく。

この辺が必要そうなのでアタッチして試してみる。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"chatbot:CreateSlackChannelConfiguration",
"chatbot:DescribeSlackChannels",
"chatbot:DescribeSlackWorkspaces",
"chatbot:GetSlackOauthParameters",
"chatbot:RedeemSlackOauthCode"
],
"Resource": "*"
}
]
}
参考:

AWSマネジメントコンソール > Amazon Q Developer in chat applications へ遷移。
チャットクライアント > Slack を選択し、クライアントを設定
を押下。

slackのワークスペースへのアクセスを求められるので 許可する
を押下

以下3件の通知が表示。
- 成功通知
Slack は Amazon Q Developer を正常に承認しました。
Slack に通知を送信する前に、少なくとも 1 つのチャネルを設定する必要があります。
- エラー通知
Amazon Q Developer は Slack のチャネル設定をロードできません。
User: arn:aws:iam::~~:user/test-notificate-slack-channel is not authorized to perform: chatbot:DescribeSlackChannelConfigurations on resource: arn:aws:chatbot:us-east-2:~~
Amazon Q Developer は IAM ロールをロードできません。
User: arn:aws:iam::~~:user/test-notificate-slack-channel is not authorized to perform: iam:ListRoles on resource: arn:aws:iam::~~:role/aws-service-role/management.chatbot.amazonaws.com/ because no identity-based policy allows the iam:ListRoles action
上記2件のエラーは出てるが、以下の画像のように有効化
はできている状態。

エラー文言的には、足りてないのは以下の2つのactionだと思われるので追加する。
- chatbot:DescribeSlackChannelConfigurations
- iam:ListRoles
管理用のアカウントでテスト用のアカウントのIAMを修正する。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"chatbot:CreateSlackChannelConfiguration",
"chatbot:DescribeSlackChannels",
"chatbot:DescribeSlackChannelConfigurations",
"chatbot:DescribeSlackWorkspaces",
"chatbot:GetSlackOauthParameters",
"chatbot:RedeemSlackOauthCode",
"iam:ListRoles"
],
"Resource": "*"
}
]
}

再度実施してみる。
slackのワークスペースへのアクセスを許可する。

成功通知が1件表示されることを確認。

念のため Amazon Q Developer in chat applications をマネジメントコンソールから開きなおして正常に見えるかを確認する。
コンソールのホーム > Amazon Q Developer in chat applications > Slack > notifications-from-aws-channel を開いてみると以下のようにエラーなく、対象のslackワークスペースが見えることを確認。