AWS Chatbot のよくある質問

全般

AWS Chatbot は、Amazon ChimeMicrosoft Teams、または Slack チャンネルで AWS 用の ChatOps を簡単に設定し、複数の AWS のサービスと安全にインタラクションすることを可能にするインタラクティブエージェントです。運用イベント、セキュリティに関する検出結果、または予算アラートに関する通知を、チーム全体が確認して議論できるチャットルームで受け取ることができます。Amazon Chime と Slack チャンネルから AWS Command Line Interface (CLI) コマンドを発行して、診断情報の取得、AWS Lambda 関数の呼び出し、Amazon Simple Storage Service (S3) バケットの設定、Kinesis シャードの変更、Amazon Elastic Compute Cloud (EC2) インスタンスの再起動、AWS System Manager のインシデントの解決を行うことができます。

CloudWatch アラーム、Health イベント、Security Hub の検出結果、Budgets アラート、CloudFormation スタックイベントなど、AWS のサービスから通知を受け取ることができます。 また、Amazon EventBridge でサポートされているほとんどの AWS のサービスのイベントの通知を受け取ることができます。サポートされているサービスの詳細なリストについては、AWS Chatbot のドキュメントをご覧ください。

AWS Chatbot は、ほとんどの AWS のサービス向けに読み取り専用と変異型の両方の CLI コマンドをサポートしています。認証情報、承認、および AWS Identity and Access Management (IAM) 許可 (IAM、STS、KMS、EC2.GetPasswordData など) に関連するサービスとオペレーションのコマンドは、AWS Chatbot ではサポートされていません。さらに、ガードレールポリシーの許可を指定して、チャネルで許可されるコマンドを定義できます。AWS Chatbot コマンドは、おなじみの AWS CLI 構文を使用します。コマンドを入力するには、「@aws <command>」と入力して、メッセージで AWS Chatbot にメンションします。 AWS Chatbot は、誤った構文が使用された場合にコマンドキューを提供し、必要に応じて追加のコマンドパラメータの入力を求めます。

AWS Chatbot の使用を開始するには、AWS Chatbot コンソールにアクセスし、Microsoft Teams、Slack または Chime 用に設定を作成し、チャネルまたはチャットルームに AWS Chatbot を追加します。

AWS Chatbot は、AWS の環境で実行されているアプリケーションの運用イベント、セキュリティに関する検出結果、および予算に関するアラートについて、チーム全体が常に最新情報を確認して、対応および解決するのに役立ちます。AWS Chatbot でサポートされているチャットアプリケーションを使用する場合、チーム全体が通知を確認して迅速に対応できるチームチャネルまたはチャットルームで通知を発行してコマンドを実行するように AWS Chatbot を設定できます。例えば、CloudWatch アラームを設定して「Cloud DevOps」チャットチャネルにアクセスできます。ここでは、DevOps エンジニアは、アラームを確認したり、イベント発生直後に診断情報を取得したりできるほか、緩和計画について議論したり、AWS リソースを設定するか、チャットチャネルから AWS Systems Manager ランブックを実行することでアラームを解決したりすることもできます。

Microsoft Teams および AWS Chatbot で設定された Slack チャネルで Amazon Q Developer とチャットできます。AWS Chatbot の Amazon Q は、AWS アカウントのリソース、ソリューション構築のベストプラクティス、問題のトラブルシューティング、次のステップの特定に関する質問に答えることができます。「@aws list by ec2 instances in us-west-1」または「@aws how do I troubleshoot lambda concurrency issues?」と入力すると、チャットチャネルから直接 Amazon Q に質問できます。

詳細については、「AWS Chatbot で Amazon Q Developer とチャットする」を参照してください。

AWS Chatbot は、AWS リソース (ChatOps) をモニタリング、運用、およびトラブルシューティングするために設計された事前構築済みのインタラクティブエージェントです。AWS Chatbot を使用すると、アラートを安全に受信し、Amazon CloudWatch や AWS GuardDuty などのサービスから診断情報をリクエストし、AWS System Manager ランブックを実行するコマンドや Microsoft Teams または Slack チャンネルで AWS Lambda の同時実行制限を引き上げるコマンドなどの CLI コマンドを実行してインシデントを解決できます。

Amazon Lex では、音声をテキストに変換する自動音声認識 (ASR) と、意図を認識し、自然なやり取りを実現するための自然言語理解 (NLU) の高度な深層学習機能が提供されます。これにより、洗練された自然言語による独自の対話型ボットを簡単かつ迅速に構築できます。

AWS Chatbot は追加料金なしでご利用いただけます。Amazon Simple Notification Service (SNS) トピックや Amazon CloudWatch アラームなど、AWS Chatbot で使用される AWS リソースの料金のみをお支払いいただきます。

AWS CLI、AWS CloudFormation、AWS Cloud Control API、および SDK を使用して Microsoft Teams と Slack チャネルの設定をプロビジョニングできます。Terraform ユーザーは、AWS プロバイダーを使用して Chatbot のチャネル設定を管理できます。

AWS Chatbot はグローバルサービスであり、すべての商用 AWS リージョンでご利用いただけます。複数リージョンの Amazon SNS トピックを単一の AWS Chatbot 設定にまとめることができます。利用可能なリージョンの詳細については、AWS リージョン別の製品およびサービスの表をご覧ください。

AWS Chatbot はグローバルサービスであり、当社は、Chatbot の設定と許可、Microsoft Teams 識別子、Slack ワークスペース識別子とチャンネル名、通知、ユーザー入力、AWS Chatbot が生成した応答と画像などのお客様の情報を任意の商用 AWS リージョンに保存したり、それらのリージョンで処理したりする場合があります。

AWS サポートにお問い合わせいただくことで、分析に使用されるデータの削除や、アカウントに関連付けられたサービスの質の向上をリクエストしていただけます。当社の最優先事項は、お客様からの信頼、お客様のプライバシー、およびお客様のデータのセキュリティです。また、当社では、転送中や保管中の暗号化など、お客様のデータへの不正アクセスやお客様のデータの公開を防ぎ、当社による利用がお客様との約束事項に確実に準拠したものとなるように設計された、適切かつ洗練された技術的および物理的なコントロールを実装しています。詳細については、https://thinkwithwp.com/compliance/data-privacy-faq/ をご覧ください。 

AWS Chatbot および他の Amazon 機械学習/AI テクノロジーの質を改善および開発することを目的としたお客様のデータの使用をオプトアウトすると、お客様のデータはすべての AWS リージョンから削除されます。オプトアウトする方法の詳細については、AWS Support にお問い合わせください。

ChatOps のユースケースに合わせて AWS Chatbot をカスタマイズできます。さまざまなチャネルを指定して、クラウドアプリケーションのさまざまな側面を監視および運用できます。1 つのチャネルから複数のアカウントやリージョンにわたるリソースを運用できます。IAM ベースのアクセス許可、ガーレイル、サービスコントロールポリシー (SCP) を使用すると、チャネルメンバーがチャットチャネルから実行できるアクションのタイプを決定できます。

また、カスタム通知を送信して、リソースとアプリケーションの状態を確認することもできます。また、通知のアクションボタンをカスタマイズしたり、コマンドエイリアスを設定したりして、コマンドをすばやく実行して問題を診断および修正することもできます。

チャットクライアントの統合

AWS Chatbot は、Microsoft Teams、Slack、Amazon Chime をサポートしています。コマンドの実行は、現在 Microsoft Teams と Slack でのみサポートされています。

AWS Chatbot は、webhooks を介して Amazon Chime と統合します。

AWS Chatbot は Microsoft Teams にインストールできる Microsoft Teams アプリ用 AWS Chatbot を使用して Microsoft Teams と統合します。AWS Chatbot コンソールで Microsoft Teams のチャネル設定を作成し、設定したチャネルに通知を送信し、チャットチャネルで AWS コマンドを処理することを AWS Chatbot に許可します。インストールは、ブラウザでのクリックスルーフローまたは AWS CloudFormation テンプレートを使用して実行され、セットアップには数分かかります。

AWS Chatbot は、AWS Chatbot コンソールから Slack ワークスペースにインストールできる AWS Chatbot Slack アプリケーションを使用して Slack と統合します。インストールは、ブラウザを使った OAuth 2.0 フローによるクリックスルーで実行されるため、必要なのは数クリックだけです。

AWS Chatbot 設定は、Amazon SNS トピックと関連するガードレールポリシーを持つ AWS IAM ロールを備えた Microsoft Teams チャンネル、Slack チャンネルまたは Amazon Chime チャットルームのマッピングです。

通知

AWS Chatbot は、Amazon SNS トピックを通じてサポートされている AWS のサービスと統合します。SNS トピックに通知を発行するようサービスを設定してから、トピックを Amazon Chime、Microsoft Teams または Slack チャンネルにマッピングする AWS Chatbot 設定を作成する必要があります。

AWS Chatbot でサポートされているサービスから EventBridge イベントの通知を受信するには、Amazon SNS トピックを EventBridge イベントルールのターゲットとして使用し、AWS Chatbot 設定でそのトピックを使用します。EventBridge が、ルールで定義されたものと一致するイベントパターンを持つイベントを受信すると、イベントルールが実行され、設定されたチャットチャネルにイベント通知が送信されます。サポートされているサービスの詳細なリストについては、AWS Chatbot のドキュメントをご覧ください。

通知のタイトルをクリックすると、通知ソースの AWS マネジメントコンソールページに移動します。例えば、AWS Budgets 通知のタイトルをクリックすると、該当する特定の予算の詳細のページに移動し、予算の実績を確認および分析できます。

はい。AWS Chatbot はチャットチャネルへの Amazon EventBridge イベントの通知とカスタムアプリケーションイベントの通知をサポートしています。Amazon EventBridge イベントの通知は、元のイベントメッセージコンテンツとともにチャットチャネルに配信されます。AWS Chatbot のカスタム通知を使用して追加の情報を定義し、その情報を通知に追加することで、お使いの AWS アプリケーションの状態やパフォーマンスをモニタリングできます。アプリケーションイベントのカスタム通知を送信したり、既存の EventBridge イベントを修正したりするには、イベントを Chatbot カスタム通知スキーマ形式で SNS トピックに送信します。Lambda 関数を記述するか、EventBridge InputTransformers を使用して、これらのイベントを生成することができます。

詳細については、「AWS Chatbot のカスタム通知」を参照してください。

いいえ。使用できるのは、AWS Chatbot 設定をホストする AWS アカウントの SNS トピックのみです。ただし、他の AWS アカウントでチャットボット設定を作成し、それらの設定を単一のチャットルームにマッピングすることができます。AWS Chatbot 設定はそれぞれ別の AWS アカウントにリンクされているため、設定は互いに独立しています。さらに、1 つの AWS Chatbot 設定と 1 つの Amazon SNS トピックを使用して、Amazon Chime、Microsoft Teams および Slack チャンネルの AWS アカウントおよびリージョン間で EventBridge イベント通知を受信できます。AWS アカウントとリージョン間で EventBridge イベント通知を受信する方法の詳細については、AWS Chatbot のドキュメントをご覧ください。

はい。複数のパブリック AWS リージョンの SNS トピックを同じ AWS Chatbot 設定内で使用できます。

Amazon SNS フィルターポリシー、またはフィルタリングをサポートするイベントの Amazon CloudWatch Event ルールを使用すると、通知をフィルタリングできます。他のイベントの場合、フィルタリングは利用できません。

AWS サービスイベント通知のフォーマットを直接カスタマイズすることはできませんが、AWS Chatbot のカスタム通知を使用して追加の情報を定義し、その情報を通知に追加することで、Microsoft Teams や Slack のチャネルで AWS アプリケーションの状態やパフォーマンスをモニタリングできます。詳細については、「AWS Chatbot のカスタム通知」を参照してください。

はい。AWS Chatbot は Microsoft Teams、Slack および Amazon Chime によるレート制限の対象となります。詳細については、Microsoft Teams デベロッパー用ドキュメントSlack Web API ドキュメント、および Amazon Chime webhook のドキュメントを参照してください。

AWS Chatbot は、Amazon EventBridge によって処理されるほとんどの AWS のサービスのイベントの通知をサポートしています。AWS Chatbot がご希望のサービスを現在サポートしていない場合、AWS Chatbot では当該サービスをご利用いただけません。AWS Chatbot コンソールのフッターにある [Feedback] (フィードバック) ボタンを使用してリクエストをご送信ください。今後の参考にさせていただきます。

チャネルまたはチャットルームの通知のサブスクライブを解除するには、それぞれの設定を削除します。チャネルまたはチャットルームで一部の通知についてのサブスクライブのみを解除する場合は、AWS Chatbot 設定から特定の Amazon SNS トピックを削除します。

通知の試行と失敗に関する詳細は、Amazon CloudWatch のメトリクスとログで確認できます。トラブルシューティングに関する詳細については、AWS Chatbot のドキュメントをご覧ください。

コマンドの実行とアクション

Microsoft Teams または Slack チャンネルでコマンドを実行するには、まず AWS Chatbot コンソールを使用してチャンネル設定を作成します。

Microsoft Teams または Slack で AWS Chatbot の操作を開始するには、「@aws」と入力し、その後に標準の AWS CLI 構文を使用したコマンドを続けます。例えば、CloudWatch アラームのリストとグラフを取得するには、「@aws cloudwatch describe-alarms」と入力します。Microsoft Teams および Slack チャンネルでは、読み取り専用と変異型の両方の CLI コマンドを実行できます。AWS CLI と比較した制限事項については、AWS Chatbot ドキュメントをご覧ください。コマンド構文を覚えていない場合、AWS Chatbot は、コマンドキューを提供し、必要に応じて追加のコマンドパラメータをリクエストすることを通じて、コマンドを完成させるのをサポートします。

コマンドエイリアスを使用してコマンドを実行したり、推奨される Chatbot サービスのボタンやカスタムアクションボタンを選択したりすることもできます。

AWS Chatbot では、多くの AWS のサービスのコマンドがサポートされており、その許可範囲は、AWS Chatbot 設定で定義される IAM ロールおよびチャネル IAM ポリシーガードレールにより定義されます。IAM ロールの許可にかかわらず、IAM や AWS Key Management Service (KMS) などの特定のサービスおよびコマンドへのアクセスは、チャットチャンネルで認証情報が公開されるのを防ぐために無効化されています。許可の詳細については、AWS Chatbot ドキュメントをご覧ください。

現在、ダイレクトメッセージはサポートされていません。ご自身と AWS Chatbot のみのプライベートチャネルを作成して、ダイレクトメッセージ通信用に使用できます。

メッセージアクションは、AWS Chatbot によって送信された通知とメッセージのボタンをクリックすることで迅速にアクションを実行することを可能にするショートカットです。例えば、Lambda 関数および API ゲートウェイステージ用の CloudWatch アラーム通知には [Show Logs] (ログを表示) ボタンおよび [Show Error Logs] (エラーログを表示) ボタンがあります。これらはチャットチャンネルで影響を受けるリソースのログを表示します。

現在、Microsoft Teams と Slack でコマンドとアクションを使用できます。

セキュリティとガバナンス

お客様は AWS Organizations のチャットボットポリシーとマルチアカウント管理のサービスを使用して、アカウントへのアクセスに使用できるアクセス許可モデル、チャットアプリケーション、チャットワークスペースを決定できます。例えば、指定したワークスペースやチームのチャットチャネルから本番稼働用アカウントに向けて行われるアクセスを制限できます。また、お客様はサービスコントロールポリシー (SCP) を使用して、チャットチャネルから実行する CLI コマンドタスクにガードレールを指定することもできます。例えば、チャットチャネルから発信される rds: delete-db-cluster CLI アクションをすべて拒否するように指定できます。

AWS Chatbot 設定は IAM ロールを使用します。このロールは AWS Chatbot ユーザーのために API コールやコマンドを実行したりするときにサービスが引き受けます。AWS Chatbot の許可スコープは、共有チャネル IAM ロールまたは個々のユーザー IAM ロールのいずれかで設定できます。共有チャネルロールでは、すべてのチャネルメンバーが共有 IAM ロールを使用してコマンドを実行します。または、チャネルメンバーがコマンドを実行するために IAM ロールを選択することを必須化するように AWS Chatbot を設定することもできます。許可の範囲は、チャネルガードレール IAM ポリシーによってさらに制御されます。許可の詳細については、AWS Chatbot ドキュメントをご覧ください。 

詳細については、AWS Chatbot のドキュメントをご覧ください。 

AWS Chatbot は、CloudWatch Logs で実行するコマンドの監査ログを提供します。このログには、実行されたコマンドとそのチャットワークスペース ID、チャネル ID、およびチャネルユーザー ID 属性が含まれます。CloudWatch Logs の監査ログイベントは常に有効であり、無効にすることはできません。詳細については、AWS Chatbot のドキュメントをご覧ください。