Amazon QとSlackを連携してみた

2023.11.29

本日発表されたAmazon Qですが、AWS Chatbotを使用してSlackに連携して使用できるようだったので設定を行ってみました。
Amazon Q and other AWS services

Amazon Qについては以下のブログをご覧ください。

やってみた

やることとしては以下の3点です。

  1. AWS ChatbotとSlackワークスペースの連携
  2. Amazon Qを使用するためのIAMロールの設定
  3. Slackから質問をしてみる

1. AWS ChatbotとSlackワークスペースの連携

Slackワークスペースは既に作成済みのところから始めます。
操作はブラウザ版のSlackから行っています。

マネジメントコンソールからAWS Chatbotのダッシュボードを開いて右上にある「チャットクライアント」でSlackを選択して「クライアントを設定」をクリックします。

クリックすると画面が遷移するので「許可する」をクリックします。

ワークスペースへ追加が出来たらチャネルへ追加を行います。
「新しいチャネルを設定」をクリックします。

「設定名」は「amazon-q」という設定にしてチャネルは「test」を対象とするようにしました。

アクセス許可では「チャネルロール」を選択してチャネル内のメンバー全員がコマンドを実行できるようにしています。

チャネルガードレールポリシーは「2. Amazon Qを使用するためのIAMロールの設定」で「AmazonQFullAccess 」を追加するため「ReadOnlyAccess」のみをアタッチしておきます。
通知は今回使用しないので何も設定を行わないで「設定」をクリックします。

ここまで設定が完了したらSlackのチャネル側でアプリを追加します。
Slackを開き対象のチャネルから右上のチャネル名で「@aws」にメッセージを送ります。

メッセージを送ったら「招待する」をクリックしてアプリを追加します。

2. Amazon Qを使用するためのIAMロールの設定

AWS ChatbotとSlackワークスペースの連携が完了したらIAMロールの設定を行います。
以下のドキュメントを見ると「AWSQFullAccess」をアタッチする手順になっているのでそれに沿って設定を行います。
2023/11/29時点でドキュメントでは「AWSQFullAccess」という記載になっていますが実際は「AmazonQFullAccess」という名前のポリシーを使用します。
Asking AWS Chatbot questions from chat channels

チャネルロール名はAWS ChatbotのSlackの画面から確認できます。

チャネルロール名を確認したらIAMのダッシュボードへ移動します。
移動したら左の欄から「ロール」をクリックします。

クリックしたら検索ボックスにチャネルロール名を入力して対象のIAMロールをクリックします。

「許可を追加」から「ポリシーをアタッチ」をクリックします。

クリック後、検索ボックスで「AmazonQFullAccess」を検索してポリシーを選択後、許可を追加をクリックします。

ポリシーが追加出来たらAWS ChatbotのSlackのチャネル設定画面に移動して「編集」をクリックします。

クリック後、「チャネルガードレールポリシー」で「AmazonQFullAccess」を追加して「保存」をクリックします。

IAMロールの設定はこれで完了です。

3. Slackから質問をしてみる

実際にSlackから質問をしてみました。
言語はまだ英語しか対応していないので英語でメッセージを送信しています。
EC2のCloudFormationテンプレートのサンプルを求めるメッセージを試しに送ってみました。

@aws
Hello.
I want to start up one EC2 machine. Can you create a sample CloudFormation template?

結果としては関連するような参考ドキュメントと一緒にサンプルのCloudFormationテンプレートを返信してくれました。
YAMLのリストがMarkdownとして反応しているようなので自分で手直しが必要そうです。

さいごに

この設定でマネジメントコンソールを開かずともAmazon Qを使用してAWSに関する質問を行うといったことが可能です。
簡単な質問であればドキュメント付きで説明してくれるので検索の時間短縮に繋げられるのではないかと思います。
便利ツールとして是非導入してみてください。