アクセス制御

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

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

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

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

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

Dialogflow CX コンソールによるアクセス制御

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

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

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

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

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

プリンシパルを追加する

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

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

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

プリンシパルを削除する

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

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

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

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

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

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

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

  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 Conversational Agents (Dialogflow CX) Agent AGENT_ID"
}

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

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

  1. プリンシパルを選択します。
  2. プリンシパルの編集ボタン()をクリックします。
  3. [条件を追加] をクリックします。
  4. [タイトル] フィールドに「For Conversational Agents (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)リソースに対する完全アクセス権を必要とするプロジェクト オーナーに付与します。
  • Google Cloud コンソールまたは API を使用して、すべての Google Cloud プロジェクトのリソースに完全にアクセス可能です。
  • Dialogflow CX コンソールを使用した、エージェントに対する完全なアクセス権限。
  • API を使用してインテントを検出できます。
IAM の基本役割の定義をご覧ください。
プロジェクト ->
編集者
すべての Google Cloud リソースと会話エージェント(Dialogflow CX)リソースに対する編集アクセス権が必要なプロジェクト編集者に付与します。
  • Google Cloud コンソールまたは API を使用した、すべての Google Cloud プロジェクトのリソースに対する編集権限。
  • Dialogflow CX コンソールを使用した、エージェントに対する編集権限。
  • API を使用してインテントを検出できます。
IAM の基本役割の定義をご覧ください。
プロジェクト >
閲覧者
すべての Google Cloud リソースと会話エージェント(Dialogflow CX)リソースに対する読み取りアクセス権が必要なプロジェクト閲覧者に付与します。
  • Google Cloud コンソールまたは API を使用した、すべての Google Cloud プロジェクトのリソースに対する読み取りアクセス権。
  • Dialogflow CX コンソールまたは API を使用したエージェントへの読み取りアクセス権では、シミュレータを使用できません。
  • API を使用してインテントを検出することはできません。
IAM の基本役割の定義をご覧ください。
プロジェクト >
IAM 管理者
会話エージェント(Dialogflow CX)エージェントのロールの構成に対する編集アクセス権が必要なプロジェクト IAM 管理者に付与します。 IAM Resource Manager のロールの定義をご覧ください。
プロジェクト >
参照者
フォルダ、組織、IAM ポリシーなど、プロジェクトの階層を参照するための読み取りアクセス権が必要なプロジェクト参照者に付与します。
  • Google Cloud プロジェクト階層に対する読み取りアクセスが可能です。
  • Dialogflow CX コンソールを使用してエージェントにアクセスすることはできません。
  • API を使用してインテントを検出することはできません。
IAM プロジェクト ロールの定義をご覧ください。
Dialogflow >
Dialogflow API 管理者
会話エージェント(Dialogflow CX)固有のリソースへの完全アクセス権が必要な会話エージェント(Dialogflow CX)API 管理者に付与します。
  • Google Cloud コンソールまたは API を使用した、すべての会話エージェント(Dialogflow CX)リソースに対する完全なアクセス権。
  • Dialogflow CX コンソールを使用した、エージェントに対する完全なアクセス権限。
  • API を使用してインテントを検出できます。
Dialogflow IAM ロールの定義をご覧ください。
Dialogflow >
Dialogflow API クライアント
API を使用してインテント検出呼び出しを実行する会話エージェント(Dialogflow CX)API クライアントに付与します。
  • 会話エージェント(Dialogflow CX)シミュレータまたは API を使用した、ランタイムの会話エージェント(Dialogflow CX)リソースへのセッション アクセス。
  • Dialogflow CX コンソールを使用した、エージェントに対する制限付きアクセス権。
  • API を使用してインテントを検出できます。
Dialogflow IAM ロールの定義をご覧ください。
Dialogflow >
Dialogflow CX コンソール エージェント編集者
既存のエージェントを編集する Dialogflow CX コンソール編集者に付与します。
  • Google Cloud コンソールを使用するすべての会話エージェント(Dialogflow CX)リソースに対する完全なアクセス権。
  • Dialogflow CX コンソールを使用するほとんどのエージェント データに対する編集アクセス権。
  • API を使用してインテントを検出できます。
Dialogflow IAM ロールの定義をご覧ください。
Dialogflow >
Dialogflow API 読み取り
API を使用して会話エージェント(Dialogflow CX)固有の読み取り専用呼び出しを実行する Dialogflow API クライアントに付与します。
  • Google Cloud コンソールまたは API を使用した、すべての会話エージェント(Dialogflow CX)リソースに対する読み取りアクセス権。
  • Dialogflow CX コンソールを使用したエージェントへの読み取りアクセス権では、シミュレータを使用できません。
  • API を使用してインテントを検出することはできません。
Dialogflow IAM ロールの定義をご覧ください。
ディスカバリー エンジン管理者 Vertex AI Agents ユーザー インターフェースを使用してデータストア エージェントを作成するユーザーに付与します。 その他のロールの定義をご覧ください。

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 (すべてのプロジェクト リソースへのアクセス)