Open9

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

enumuraenumura

◆概要
Amazon Q Developer(AWS Chatbot)のリソース構築においてslackと連携させたい場合、初回に対象のslackワークスペースと認証を行う必要がある。
この認証まで行うのに必要なIAMユーザのポリシーを本スクラップで調査する。

◆ゴール
Amazon Q Developer(AWS Chatbot)のslack認証において必要なIAMのポリシーを把握する。

◆やること
IAMユーザを1つ作成して、ポリシーアタッチして認証までできるかどうかを確認していく。

enumuraenumura

この辺が必要そうなのでアタッチして試してみる。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "chatbot:CreateSlackChannelConfiguration",
                "chatbot:DescribeSlackChannels",
                "chatbot:DescribeSlackWorkspaces",
                "chatbot:GetSlackOauthParameters",
                "chatbot:RedeemSlackOauthCode"
            ],
            "Resource": "*"
        }
    ]
}

参考:

  1. https://docs.aws.amazon.com/chatbot/latest/adminguide/service-rename.html
  2. https://docs.aws.amazon.com/ja_jp/amazonq/latest/qdeveloper-ug/managed-policy.html?utm_source=chatgpt.com
  3. https://qiita.com/yuta-katayama-23/items/da16e8760bec47d7fd26
enumuraenumura

AWSマネジメントコンソール > Amazon Q Developer in chat applications へ遷移。

チャットクライアント > Slack を選択し、クライアントを設定 を押下。

enumuraenumura

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

enumuraenumura

以下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件のエラーは出てるが、以下の画像のように有効化はできている状態。

enumuraenumura

エラー文言的には、足りてないのは以下の2つのactionだと思われるので追加する。

  • chatbot:DescribeSlackChannelConfigurations
  • iam:ListRoles
    管理用のアカウントでテスト用のアカウントのIAMを修正する。
iam
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "chatbot:CreateSlackChannelConfiguration",
                "chatbot:DescribeSlackChannels",
                "chatbot:DescribeSlackChannelConfigurations",
                "chatbot:DescribeSlackWorkspaces",
                "chatbot:GetSlackOauthParameters",
                "chatbot:RedeemSlackOauthCode",
                "iam:ListRoles"
            ],
            "Resource": "*"
        }
    ]
}
enumuraenumura

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

enumuraenumura

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

enumuraenumura

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