Zenn
🚪

Amazon Q Developer(AWS Chatbot)とSlackワークスペース連携のためのIAMポリシー設定について調べてみた

2025/03/30に公開

はじめに

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の初回連携は正常にできました。

iamの許可ポリシー
{
    "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. ポリシーの作成

下記あたりのactionが必要そうだったので記載。

iamの許可ポリシー
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "chatbot:CreateSlackChannelConfiguration",
                "chatbot:DescribeSlackChannels",
                "chatbot:DescribeSlackWorkspaces",
                "chatbot:GetSlackOauthParameters",
                "chatbot:RedeemSlackOauthCode"
            ],
            "Resource": "*"
        }
    ]
}

2. Slack連携の設定

  1. AWSマネジメントコンソールにログイン
  2. Amazon Q Developer in chat applications へ移動
  3. チャットクライアント > Slack を選択
  4. 「クライアントを設定」ボタンを押下

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
iamの許可ポリシー
{
    "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ワークスペースの状態が有効化になっている事を確認できました。

参考

  1. https://zenn.dev/enumura/scraps/a184ab54b0c4b8
  2. https://docs.aws.amazon.com/chatbot/latest/adminguide/service-rename.html
  3. https://aws.amazon.com/jp/blogs/news/aws-chatbot-is-now-named-amazon-q-developer/
  4. https://qiita.com/yuta-katayama-23/items/da16e8760bec47d7fd26

Discussion

ログインするとコメントできます