Amazon Q と Slack の連携方法（Amazon Q for AWS Builder Use編）

Amazon QをSlackで利用する方法について発見したので試してみました。

Amazon Qと一口に言っても様々な機能が存在します。
①Amazon Q for AWS Builder Use
②Amazon Q for Business Use

今回は上記2つの機能のうち、①についてご紹介します。
（②の手順は[こちら](https://qiita.com/Neville/items/67761d76c19b73377922)でまとめています）

# 設定方法

## AWS Chatbot設定
AWSマネージメントコンソール上でAWS Chatbotを開き、チャットクライアントで「Slack」を選択し、「クライアントを設定」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/dca1d49e-51ae-11fb-17e8-3bd4be01f7c0.png)

Slackのワークスペースに対する認証画面に遷移しますので、リクエスト先を選択のうえ、「許可する」を押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/0eb256dd-cf59-f2a1-4a5c-aae3eb2f9870.png)


設定済みクライアントの画面が表示されますので、「新しいチャネルを設定」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/530b2263-11b9-cdd9-1ff8-9b4f10a7e454.png)

Slackチャネルのチャネルタイプは「パブリック」、パブリックチャネル名はテスト用に作成した「amazon-q」を選択しました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/e8f06fe1-eaf6-827e-3225-5b01e401d1db.png)

アクセス許可の設定はデフォルトのままにしています。チャネル内のユーザごとに異なる操作を設定したい場合、「ロール設定」は「ユーザーベースのロール」を選択してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/42a09440-12fe-669e-08bd-2b94149da9c4.png)

通知は特に変更せず、「設定」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/5d635d2d-96cc-7b8a-6edc-9642b7beecb7.png)

Slackのチャネルで`@aws`と入力し、AWSをチャネルに追加します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/2442fed1-bb3a-7de9-c764-51cbdfac363b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/bd2b33b9-6cf3-ff25-5375-9167eff5693a.png)

これでAWS ChatbotとSlackの連携は完了です。

## IAM Role設定
次にAWS ChatbotにIAMロールを設定します。
AWS Chatbotの設定画面より、チャネルロールを押下し、IAMロールの設定画面を開きます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/c12f33e4-dd66-6de9-c44d-4b5306d853d4.png)

許可ポリシーより、「許可を追加」から「ポリシーをアタッチ」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/7f49021b-0f46-19ad-6bf7-72f32b30e75c.png)

`AmazonQFullAccess`を選択し、「許可を追加」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/f7e25f53-9373-9b22-506a-ac4678376c68.png)

再度AWS Chatbotの画面に戻り、「編集」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/c1c53439-82f4-b764-dd38-62d0385ae7f4.png)

「アクセス許可」の「チャネルガードレールポリシー」より、`AmazonQFullAccess`を選択し、下部の「保存」を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/7e4a9589-9ed8-8a55-b39c-bc37a569bb86.png)

チャネルガードポリシーについては、こちらの記事に詳細が説明されています。
https://qiita.com/hedgehog051/items/15b1817e851b5e338150

## 動作確認
Slack上でAWSサービスに関する質問を入力すると、答えが返ってきました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/c4d12c1a-e2d4-a181-6f16-484bd46c9832.png)

Amazon Qは日本語未対応のため日本語で質問してもエラーが返ってきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665293/18fcc689-afd5-653d-7392-f40f639a0eaa.png)

# 最後に
Amazon Qの機能を利用するためにはAWSマネジメントコンソールのログインが必要ですが、普段利用しているチャットツールと連動することで利便性は向上しそうです。

# 参考
https://docs.aws.amazon.com/chatbot/latest/adminguide/asking-questions.html#cbt-awsq