アクセス制御

一般的に、複数のチームメンバーが 共同でエージェントの作成を行い 、サービスがエージェントにアクセスします。 ロールを使用すると、 プリンシパルに付与されるアクセスと権限を制御できます。

アクセスを設定するには、 会話エージェント コンソールを使用するか、 Identity and Access Management(IAM)で Google Cloud コンソール(ドキュメントを表示コンソールを開く)を使用します。 Google Cloud コンソールは、IAM ロールをプリンシパルに付与するために使用します。 一方、会話エージェント コンソールは、Dialogflow CX エージェント ロールをプリンシパルに付与するために使用します。 Dialogflow CX エージェント ロールは、Dialogflow CX で定義された便利な 事前定義ロール で、アクセスを 1 つのエージェントや特定エージェントの子リソース に制限します。

次のような状況では、 Google Cloud コンソールを使用する必要があります。

  • IAM プロジェクト オーナー ロールは、デフォルトで エージェントを所有するプロジェクトを作成したユーザーに付与されています。 この所有者は、プロジェクト内のすべてのエージェントに対する完全アクセス権を持ちます。 プロジェクト オーナーを変更する場合は、 コンソールを使用する必要があります。 Google Cloud
  • Dialogflow CX コンソールでは、エージェント レベルのアクセスのみ構成できます。 プロジェクト レベルのアクセスを構成する場合は、 コンソールを使用する必要があります。 Google Cloud
  • IAM ロールのサブセットには、対応する Dialogflow CX エージェントのロールがあります。 Dialogflow CX コンソールに存在しないプロジェクト レベルまたはエージェント レベルのロールを付与する場合は、 コンソールを使用する必要があります。 Google Cloud
  • Vertex AI Conversation ユーザー インターフェースを使用して データストア エージェント を作成する場合は、 コンソール を使用する必要があります。 Google Cloud

API を使用することによって、1 つまたは複数のアプリケーションから特定のエージェントにリクエストを送信できます。 この場合、 サービス アカウントによってアクセスを制御できます。

会話エージェント コンソールによるアクセス制御

会話エージェント コンソールでは、エージェント レベルの共有が構成されている便利なエージェントの役割を適用できます。 これらのロールは、特定のエージェントまたはエージェントの子リソースのサブセットへのアクセスを制限する IAM 条件 を含む IAM のロールに関連付けられます。

会話エージェント コンソールからエージェント ロールの構成にアクセスするには、 関連する プロジェクトのプロジェクト IAM 管理者ロールが付与されている必要があります。このロールは、 Google Cloud コンソールから付与されます。

Google Cloud
Dialogflow CX エージェントのロール まとめ IAM ロール
会話読み取り コンソールまたは API からエージェントへのクエリ(インテントの検出ではありません)に対する読み取りアクセス権を付与します。 Dialogflow > Dialogflow API 読み取り
会話管理者 コンソールまたは API からエージェントを作成、更新、クエリ、インテントの検出、削除するための完全アクセス権を付与します。 Dialogflow > Dialogflow API 管理者
会話クライアント コンソールまたは API からインテントを検出するためのアクセス権を付与します。 Dialogflow > Dialogflow API クライアント
サービス エージェント サービス エージェントをご覧ください サービス エージェントをご覧ください
フロー編集者 特定のフローの更新、クエリを行い、コンソールまたは API からフローリソース(ページ、ルートグループ、バージョン)を作成、更新、削除、またはクエリを行うためのアクセス権を付与します。 Dialogflow > Dialogflow フロー編集者
環境編集者 コンソールや API から、特定の環境の更新やクエリ、環境リソース(テスト)の作成、更新、削除、クエリするためのアクセス権を付与します。 Dialogflow > Dialogflow 環境編集者
エンティティ タイプ管理者 コンソールまたは API を使用して、エージェントのエンティティ タイプを作成、更新、削除、クエリを行うためのアクセス権を付与します。 Dialogflow > Dialogflow エンティティ タイプ管理者
インテント管理者 コンソールまたは API からエージェントのインテントを作成、更新、削除、またはクエリを行うためのアクセス権を付与します。 Dialogflow > Dialogflow インテント管理者
テストケース管理者 コンソールまたは API を使用して、エージェントのテストケースを作成、更新、削除、クエリを行うための権限を付与します。 Dialogflow > Dialogflow テストケース管理者
Webhook 管理者 コンソールまたは API からエージェントの Webhook を作成、更新、削除、クエリを行うためのアクセス権を付与します。 Dialogflow > Dialogflow Webhook 管理者

エージェントの設定内に共有オプションがあります。 エージェント共有設定を開くには、次の手順を行います。

  1. Dialogflow CX コンソールを開きます。
  2. ご自身の Google Cloud プロジェクトを選択します。
  3. エージェントを選択します。
  4. [エージェント設定] をクリックします。
  5. [Share] タブをクリックします。

プリンシパルを追加する

  1. [追加] をクリックします。
  2. ユーザー、グループ、またはサービス アカウントのメールアドレスを入力します。
  3. メールの種類には、[ユーザー]、[グループ]、または [サービス アカウント] を選択します。
  4. Dialogflow 読み取り のロールはデフォルトで追加されます。これは、ユーザーが会話エージェント コンソールにアクセスするために必要です。
  5. [ロールを割り当てる] で、[ロールを追加する] をクリックします。
  6. [タイプ] でロールのタイプを選択します。
  7. フロー編集者ロールと環境編集者ロールについては、特定のフローや環境を選択するか、デフォルトの [すべて] オプションをそのまま使用します。
  8. 必要に応じて、ロールの有効期限を設定します。
  9. [保存] をクリックします。

プリンシパルのロールを変更する

  1. リスト内のプリンシパルをクリックします。
  2. そのポップアップで、このプリンシパルのロールを更新します。
  3. [保存] をクリックします。

プリンシパルを削除する

  1. リストでプリンシパルを見つけます。
  2. プリンシパルの削除ボタン()をクリックします。
  3. [OK] をクリックします。

コンソールによるアクセス制御 Google Cloud

IAM 設定を使用してアクセスを制御できます。 権限の追加、編集、削除の詳細な手順については、IAM クイックスタート をご覧ください。

以下の設定にアクセスするには、 [IAM] ページを Google Cloud コンソールで開きます。

プロジェクトにユーザーやサービス アカウントを追加する

ユーザーやサービス アカウントに権限を付与するには、 プロジェクトでロールを付与します。 Google Cloud ユーザーを追加するには、そのユーザーのメールアドレスを入力します。 サービス アカウントを追加する場合も、そのアカウントに関連付けられているメールアドレスを入力します。1 つのサービス アカウントを複数のプロジェクトに使用する場合は、サービス アカウントを追加する必要があります。 サービス アカウントに関連付けられたメールアドレスを確認するには、コンソールで IAM の [サービス アカウント] ページをご覧ください。 Google Cloud

プリンシパルを追加するには、次のようにします。

  1. ページ上部の追加ボタン()をクリックします。
  2. プリンシパルのメールアドレスを入力します。
  3. 役割を選択します。
  4. [保存] をクリックします。

権限を変更する

  1. プリンシパルの編集ボタン()をクリックします。
  2. 別の役割を選択します。
  3. [保存] をクリックします。

プリンシパルを削除する

  1. プリンシパルの削除ボタン()をクリックします。

1 つのエージェントへのアクセスを制限する条件を追加する

プリンシパルを追加または編集するときは、アクセス権を 1 つのエージェントに制限する IAM 条件 を作成できます。

次に例を示します。

{
    "expression": "resource.name.startsWith(\"projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID\")",
    "title": "For Dialogflow CX Agent AGENT_ID"
}

この条件を指定すると、特定のエージェントに対する基本的なアクセス権が付与されます。たとえば、この条件が指定されたサービス アカウントは Dialogflow CX API を呼び出すだけで、そのプロジェクトの条件に指定されているエージェントへアクセスできますが、プロジェクト内の他のエージェントにはアクセスできません。

この条件をプリンシパルに付与されているロールに追加するには、次のようにします。

  1. プリンシパルを選択します。
  2. プリンシパルの編集ボタン()をクリックします。
  3. [条件を追加] をクリックします。
  4. [タイトル] フィールドに「For Dialogflow CX Agent AGENT_ID」と入力し、AGENT_ID をエージェント ID に置き換えます。
  5. 任意の説明文を追加できます。
  6. [条件エディタ] を選択して、条件を作成します。
  7. resource.name.startsWith("projects/PROJECT_ID/locations/REGION_ID/agents/AGENT_ID") を追加します。AGENT_ID はエージェント ID で、PROJECT_ID はプロジェクト ID で置き換えます。
  8. [保存] をクリックします。

IAM ロール

次の表に、Dialogflow CX に関連する一般的な IAM ロールを示します。表中の権限の概要では、次の用語を使用します。

  • 完全なアクセス権: アクセス権の変更と、リソースの作成、削除、読み取りを行うための権限。
  • 編集権限: リソースの作成、削除、編集、読み取りを行うための権限。
  • セッション アクセス: インテントの検出、コンテキストの更新、セッション エンティティの更新、Agent Assist 会話インタラクションなど、会話中にランタイムのみのリソースのメソッドを呼び出すための権限。
  • 読み取りアクセス権: リソースの読み取り権限。
IAM ロール 権限の概要 権限の詳細
プロジェクト >
オーナー
    すべての Google Cloud リソースおよび Dialogflow CX リソースに対する完全アクセス権を必要とするプロジェクト オーナーに付与します。
  • コンソールまたは API を使用した、すべての Google Cloud プロジェクトのリソースに対する完全なアクセス権限。 Google Cloud
  • 会話エージェント コンソールを使用した、エージェントに対する完全なアクセス権限。
  • API を使用してインテントを検出できます。
IAM の基本役割の定義をご覧ください。
プロジェクト >
編集者
すべての Google Cloud リソースおよび Dialogflow CX リソースに対する編集アクセス権が必要なプロジェクト編集者に付与します。
  • コンソールまたは API を使用した、すべての Google Cloud プロジェクトのリソースに対する編集権限。 Google Cloud
  • 会話エージェント コンソールを使用した、エージェントに対する編集権限。
  • API を使用してインテントを検出できます。
IAM の基本役割の定義をご覧ください。
プロジェクト >
閲覧者
すべての Google Cloud リソースおよび Dialogflow CX リソースに対する読み取りアクセス権が必要なプロジェクト閲覧者に付与します。
  • コンソールまたは API を使用した、すべての Google Cloud プロジェクトのリソースに対する読み取りアクセス権。 Google Cloud
  • 会話エージェント コンソールまたは API を使用したエージェントへの読み取りアクセス権では、シミュレータを使用できません。
  • API を使用してインテントを検出することはできません。
IAM の基本役割の定義をご覧ください。
プロジェクト >
IAM 管理者
Dialogflow CX エージェントのロールの構成に対する編集アクセス権が必要なプロジェクト IAM 管理者に付与します。 IAM Resource Manager のロールの定義をご覧ください。
プロジェクト >
参照者
プロジェクトの階層を参照するための読み取りアクセス権が必要なプロジェクト参照者に付与します。フォルダ、組織、IAM ポリシーなど:
  • プロジェクト階層に対する読み取りアクセスが可能です。 Google Cloud
  • 会話エージェント コンソールを使用してエージェントにアクセスすることはできません。
  • API を使用してインテントを検出することはできません。
IAM プロジェクト ロールの定義をご覧ください。
Dialogflow >
Dialogflow API 管理者
Dialogflow CX 固有のリソースへの完全アクセス権が必要な Dialogflow CX API 管理者に付与します。
  • コンソールまたは API を使用した、すべての Dialogflow CX リソースに対する完全なアクセス権。 Google Cloud
  • 会話エージェント コンソールを使用した、エージェントに対する完全なアクセス権限。
  • API を使用してインテントを検出できます。
Dialogflow IAM ロールの定義をご覧ください。
Dialogflow >
Dialogflow API クライアント
API を使用してインテント検出呼び出しを実行する Dialogflow CX API クライアントに付与します。
  • Dialogflow CX シミュレータまたは API を使用した、ランタイム Dialogflow CX リソースへのセッション アクセス。
  • 会話エージェント コンソールを使用した、エージェントに対する制限付きアクセス権。
  • API を使用してインテントを検出できます。
Dialogflow IAM ロールの定義をご覧ください。
Dialogflow >
会話エージェント コンソール エージェント編集者
既存のエージェントを編集する会話エージェント コンソール編集者に付与します。
  • コンソールを使用するすべての Dialogflow CX リソースに対する完全なアクセス権。 Google Cloud
  • 会話エージェント コンソールを使用して、ほとんどのエージェント データに対する編集権限を付与します。
  • API を使用してインテントを検出できます。
Dialogflow IAM ロールの定義をご覧ください。
Dialogflow >
Dialogflow API 読み取り
API を使用して Dialogflow CX 固有の読み取り専用呼び出しを実行する Dialogflow API クライアントに付与します。
  • コンソールまたは API を使用した、すべての Dialogflow CX リソースに対する読み取りアクセス権。 Google Cloud
  • 会話エージェント コンソールを使用したエージェントへの読み取りアクセス権では、シミュレータを使用できません。
  • API を使用してインテントを検出することはできません。
Dialogflow IAM ロールの定義をご覧ください。
ディスカバリー エンジン管理者 Vertex AI Agents ユーザー インターフェースを使用してデータストア エージェントを作成するユーザーに付与します。 Discovery Engine IAM ロールの定義をご覧ください。

OAuth

Google クライアント ライブラリを使用して Dialogflow CX にアクセスする場合、OAuth を直接使用する必要はありません。これらのライブラリがその実装を自動的に処理するためです。ただし、独自のクライアントを実装する場合は、独自の OAuth フローの実装が必要になる場合があります。Dialogflow CX API にアクセスするには、次のいずれかの OAuth スコープが必要です。

  • https://www.googleapis.com/auth/cloud-platform (すべてのプロジェクト リソースへのアクセス)
  • https://www.googleapis.com/auth/dialogflow (Dialogflow CX リソースへのアクセス)

Cloud Storage へのアクセスに関連するリクエスト

一部の Dialogflow CX リクエストは、データの読み取りと書き込みのために Cloud Storage 内のオブジェクトにアクセスします。これらのリクエストのいずれかを呼び出すと、Dialogflow CX は呼び出し元の代わりに Cloud Storage データにアクセスします。つまり、リクエスト認証には、Dialogflow CX と Cloud Storage オブジェクトにアクセスする権限が必要です。

Google クライアント ライブラリと IAM 役割を使用する場合、Cloud Storage の役割の情報にはCloud Storage アクセス制御ガイドをご覧ください。

独自のクライアントを実装し、OAuth を使用する場合は、次の OAuth スコープを使用する必要があります。

  • https://www.googleapis.com/auth/cloud-platform (すべてのプロジェクト リソースへのアクセス)

プレイブック ツール アクセスのカスタムロール

権限とカスタムロールを使用すると、プレイブック ツールへのきめ細かいアクセス制御を提供できます。

使用可能な権限を一覧表示するには、 権限検索ツール にアクセスして dialogflow.tools を検索します。

これらの権限を使用して、 カスタムロール を作成できます