Amazon Q Developer(AWS Chatbot)とSlackワークスペース連携のためのIAMポリシー設定について調べてみた
はじめに
Amazon Q Developer(旧:AWS Chatbot)をSlackと連携させることで、AWSの通知をSlackチャンネルで受け取ることができます。
この連携を行う際、初回にSlackワークスペースとの認証が必要になりますが、特定のIAMユーザでその認証を行いたく、その認証プロセスに必要なIAMポリシーについて調べてみました。
本記事ではAmazon Q Developer(旧:AWS Chatbot)の初回Slack認証に必要なIAMポリシーを調査した結果について記載します。
記載してない事
初回Slack認証後のslackへの通知確認などは本記事で記載しておりません。
ゴール
- Amazon Q Developer(旧:AWS Chatbot)の初回Slack認証において必要なIAMポリシーを把握する
- Amazon Q DeveloperのSlack ワークスペース > ワークスペースの詳細 > 状態 >
有効化
になっている事を確認する
結論
以下のIAMの許可ポリシーでAmazon Q Developer(AWS Chatbot)とSlackの初回連携は正常にできました。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"chatbot:CreateSlackChannelConfiguration",
"chatbot:DescribeSlackChannels",
"chatbot:DescribeSlackChannelConfigurations",
"chatbot:DescribeSlackWorkspaces",
"chatbot:GetSlackOauthParameters",
"chatbot:RedeemSlackOauthCode",
"iam:ListRoles"
],
"Resource": "*"
}
]
}
やったことにつきましてはZennのスクラップに記載してます。
調べたこと
最近AWS ChatbotからAmazon Q Developerに名前が変わったので、actionの名前も変わってないか調べたところ、IAM 権限は変更を受けてなさそうだったことを確認。
- 参考1:https://docs.aws.amazon.com/chatbot/latest/adminguide/service-rename.html#rename-not-changing
- 参考2:https://aws.amazon.com/jp/blogs/news/aws-chatbot-is-now-named-amazon-q-developer/
1. ポリシーの作成
下記あたりのactionが必要そうだったので記載。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"chatbot:CreateSlackChannelConfiguration",
"chatbot:DescribeSlackChannels",
"chatbot:DescribeSlackWorkspaces",
"chatbot:GetSlackOauthParameters",
"chatbot:RedeemSlackOauthCode"
],
"Resource": "*"
}
]
}
2. Slack連携の設定
- AWSマネジメントコンソールにログイン
- Amazon Q Developer in chat applications へ移動
- チャットクライアント > Slack を選択
- 「クライアントを設定」ボタンを押下
3. Slackワークスペースとの認証
Slackワークスペースへのアクセス許可を求められたので、「許可する」を選択。
4. エラーの発生と原因
ワークスペースの詳細 > 状態には有効化
と記載があることを確認。
ただ上記画像のように以下の2つのエラーが発生しました。
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
5. ポリシーの修正
エラーの内容的に以下2件のアクションが足りてなさそうだったのでIAMのポリシーを修正しました。
- chatbot:DescribeSlackChannelConfigurations
- iam:ListRoles
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"chatbot:CreateSlackChannelConfiguration",
"chatbot:DescribeSlackChannels",
"chatbot:DescribeSlackChannelConfigurations",
"chatbot:DescribeSlackWorkspaces",
"chatbot:GetSlackOauthParameters",
"chatbot:RedeemSlackOauthCode",
"iam:ListRoles"
],
"Resource": "*"
}
]
}
6. 再検証
修正したポリシーを適用した後、再度Slack連携の設定を行った結果、エラーの表示はなく状態も有効化
になっていました。
念のため Amazon Q Developer in chat applicationsコンソールを開き直して確認したところ、対象のSlackワークスペースの状態が有効化
になっている事を確認できました。
Discussion