Amazon Q へのチャットを禁止したいときはどうするの?Amazon Q 関連のサービス名前空間を整理してみた #AWSreinvent
コンバンハ、千葉(幸)です。
先日発表された Amazon Q、 マネジメントコンソールにチャット画面が出てきたり他のサービスとの関連が発表されたりと盛り上がっていますね。
例えばこういった新サービスが発表されたとき、わたしはサービスの名前空間を気にします。言い換えれば IAM ポリシーでどんな権限が必要になるのかが気になります。ここでの名前空間とは、ec2:RunInstances
のように IAM ポリシー内でアクションを記述する際に:
の前にくるサービスプレフィックス(例ではec2
)を指していると捉えてください。
マネジメントコンソール上で Amazon Q に質問を投げる、というのにも権限が必要です。それはどんなアクションなのか?IAM ポリシーでどういった権限を与えてあげればいいのか?
また、Amazon Q に関連した他のサービスを操作するときに必要なのは同じ名前空間の権限なのか?もろもろ気になります。
現時点で分かった内容を整理してみます。
Amazon Q は現時点でプレビューです。今後内容が変更される可能性があります。
Amazon Q 関連の名前空間まとめ
サービス名 | 名前空間 | 補足 |
---|---|---|
Amazon Q | q | コンソールに出てくるチャット画面など |
Amazon Q Business | qbusiness | マネジメントコンソールで「Amazon Q」の画面に遷移したところ |
AWS Network Manager Chat | networkmanager-chat | Amazon Q network troubleshootingの画面 |
Amazon Q in Connect | wisdom | 従来の Amazon Wisdom 相当の機能 |
- ここでの「サービス名」は、以下の AWS CLI コマンドで得られるものをベースにしています
- get-service-last-accessed-details — AWS CLI 2.14.2 Command Reference
- AWS マネジメントコンソールの「アクセスアドバイザー」からも同じ結果が得られます。
- 例えば Amazon QuickSight など他のサービスと Amazon Q が関連する際には、
q
の名前空間の権限が必要になるはずです- この辺りはまだ手探りの部分が多いので追って追記していきます
Amazon Q in Connect を除く 3 つのサービスについて整理していきます。
サービス名:Amazon Q
ここでの「Amazon Q」は主にコンソールに表示されるここのことを指します。
ここに関連するパーミッションは以下のものがあります。(Manage access to Amazon Q with IAM policies - Amazon Qより引用)
Name | Description of permission granted | What feature is it required for? |
---|---|---|
q:StartConversation |
Start a conversation with Amazon Q | Required to have conversations with Amazon Q |
q:SendMessage |
Send a message to Amazon Q | Required to have conversations with Amazon Q |
q:GetConversation |
Get individual messages associated with a specific conversation with Amazon Q | Required to use Amazon Q network troubleshooting |
q:StartTroubleshootingAnalysis |
Start a troubleshooting analysis with Amazon Q | Required to use troubleshooting console errors with Amazon Q |
q:GetTroubleshootingResults |
Get troubleshooting results with Amazon Q | Required to use troubleshooting console errors with Amazon Q |
q:StartTroubleshootingResolutionExplanation |
Start a troubleshooting resolution explanation with Amazon Q | Required to use troubleshooting console errors with Amazon Q |
名前空間 q のアクションを Deny してみた
以下のように名前空間q
のアクションを全て拒否するポリシーをアタッチした IAM エンティティでチャットを操作してみます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "q:*", "Resource": "*" } ] }
チャットのインターフェース自体は変わらず表示されますが、質問を投げた際に権限不足である旨の回答が返ってきました。
You don't have permission to use Amazon Q.
You or your AWS administrator must update your IAM permissions to allow the use of Amazon Q. After you obtain the necessary permissions, reload the panel to access Amazon Q. You can grant access to Amazon Q by attaching the AmazonQFullAccess policy to your IAM identity. For more information, see AWS managed policies for Amazon Q.
サービス名:Amazon Q Business
ここでの Amazon Q Business は、AWS マネジメントコンソールのサービス一覧で「Amazon Q」と検索して辿り着ける以下の画面に関連する操作を表します。
ここでは「アプリケーション」というリソースを作成して管理していくことになります。
関連するアクションは 61 個あり、以下を参照すると良さそうです。
名前空間 qbusiness のアクションを Deny してみた
以下のポリシーをアタッチした IAM エンティティでコンソールを操作してみます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "qbusiness:*", "Resource": "*" } ] }
Amazon Q Business の画面に遷移するとアプリケーションの一覧画面になります。アプリケーションをリストする権限がない、とエラーが表示されます。
User: xxx is not authorized to perform: qbusiness:ListApplications with an explicit deny in an identity-based policy - AccessDeniedException - 403 Request ID: 829cbed5-be40-4b1a-ac71-2a37e8c3a797
アプリケーションの作成を試みても、もちろんエラーが発生します。
User: xxx is not authorized to perform: qbusiness:CreateApplication on resource: arn:aws:qbusiness:us-east-1:000000000000:application/* with an explicit deny in an identity-based policy - AccessDeniedException - 403 Request ID: 6800eb1b-580c-4a10-820e-e3effb0fc280
サービス名:AWS Network Manager Chat
ここでの AWS Network Manager Chat とは、Amazon Q network troubleshootingの操作に関連する部分を指します。
Amazon Q network troubleshooting にたどり着くには以下が簡単かと思います。
- Amazon Qのチャットにデフォルトで用意されている
Why can't I SSH to my EC2 instance?
という質問を実施する - チャットの返答に含まれているリンクを押下する
このように別画面で新たなチャット画面が開きます。
具体的なリソース ID も記述すれば、以下のように VPC Reachability Analyzer の結果もあわせて表示してくれるようです。(画像は公式ドキュメントより引用)
ちなみに VPC Reachability Analyzer はnetworkmanager
という名前空間に属しています。その拡張としてnetworkmanager-chat
が登場した、というのがしっくりきます。
名前空間 networkmanager-chat のアクションを Deny してみた
networkmanager-chat
のアクションに関するドキュメントは現時点で見つけられませんでしたが、IAM ポリシーのビジュアルエディタから見るに 7 個が用意されていそうです。
これらを全て拒否した以下のポリシーをアタッチした IAM エンティティで操作してみます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "networkmanager-chat:*", "Resource": "*" } ] }
トラブルシュートのチャット画面に遷移した後に画面上部にエラーが表示されました。
Chat could not be initialized: message: User: xxx is not authorized to perform: networkmanager-chat:ListConversations on resource: arn:aws:networkmanager-chat:us-east-1:000000000000:/conversations with an explicit deny, statusCode: 403
終わりに
Amazon Q に関連するサービスの名前空間を整理してみました。
特にマネジメントコンソールで「Amazon Q」と表現されているサービスの名前空間が実際にはqbusiness
であることがややこしいなと感じました。
また、Amazon Q network troubleshooting は VPC Reachability Analyzer の拡張機能である、という位置付けが自分の中でしっくりきました。
これらの情報はプレビュー段階のため、今後変更される可能性があります。参考程度にとどめてください。
以上、 チバユキ (@batchicchi) がお送りしました。
参考
- [速報]Amazon QがAmazon Connectでプレビュー機能として利用可能になりました | DevelopersIO
- [アップデート][プレビュー] QuickSight Q + 生成 BI 機能をさらに拡張した「Amazon Q in QuickSight」が発表されました #AWSreInvent | DevelopersIO
- Security in Amazon Q - Amazon Q
- Amazon Q and other AWS services - Amazon Q
- Amazon Q network troubleshooting - Amazon Virtual Private Cloud