アクセス制御

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

Identity and Access Management(IAM)でアクセスを設定する場合、Dialogflow CX コンソール(ドキュメントを表示コンソールを開く)または Google Cloud Console(ドキュメントを表示コンソールを開く)を使用します。IAM の役割を持つメンバーを追加するには Cloud Console を使用し、Dialogflow エージェントの役割を持つメンバーを追加するには Dialogflow コンソールを使用します。Dialogflow エージェントの役割は、1 つのエージェントへのアクセスを制限する IAM の役割に基づく便利な役割です。

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

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

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

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

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

Dialogflow エージェントの役割 概要 IAM の役割
管理 コンソールまたは API からエージェントを作成、更新、クエリ、インテントの検出、削除するための完全アクセス権を付与します。 Dialogflow > Dialogflow API 管理者
読み取り コンソールまたは API からエージェントへのクエリ(インテントの検出ではありません)に対する読み取りアクセス権を付与します。 Dialogflow > Dialogflow API 読み取り

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

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

メンバーを追加する

  1. [Invite New People] の下に、ユーザーまたはグループのメールアドレスを入力します。
  2. メールの種類として [ユーザー] または [グループ] を選択します。
  3. 役割を選択します。
  4. [Add] をクリックします。
  5. [保存] をクリックします。

メンバーの役割を変更する

  1. リストから目的のメンバーを探します。
  2. 別の役割を選択します。
  3. [保存] をクリックします。

メンバーを削除する

  1. リストから目的のメンバーを探します。
  2. メンバーの削除ボタン()をクリックします。
  3. [保存] をクリックします。

Cloud Console でのアクセス制御

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

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

プロジェクトにユーザーまたはサービス アカウント メンバーを追加する

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

メンバーを追加するには:

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

権限を変更する

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

メンバーを削除する

  1. メンバーの削除ボタン()をクリックします。

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

メンバーを追加または編集するときは、1 つのエージェントへのアクセスを制限する IAM 条件を作成できます。

例:

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

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

この条件をメンバーに追加するには:

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

IAM 役割

次の表に、Dialogflow CX に関連するすべての IAM の役割を示します。

エージェントのアクセス権の変更やエージェントの削除をするには、IAM プロジェクト オーナー、IAM プロジェクト編集者、または「完全なアクセス権」を提供する Dialogflow エージェント管理者の役割が必要です。

IAM の役割 権限の概要 権限の詳細
プロジェクト >
オーナー
すべての Google Cloud および Dialogflow リソースに対する完全アクセス権を必要とするプロジェクト オーナーに付与します。
  • Cloud Console または API を使用して、すべての Google Cloud プロジェクトのリソースに完全にアクセス可能です。
  • エージェントの作成、編集、削除で Dialogflow CX コンソールに完全にアクセスが可能です。
  • API を使用してインテントを検出できます。
IAM の基本役割の定義をご覧ください。
プロジェクト ->
編集者
すべての Google Cloud および Dialogflow リソースに対する編集アクセス権が必要なプロジェクト編集者に付与します。
  • Cloud Console または API を使用した、すべての Cloud プロジェクトのリソースに対する編集権限。
  • エージェントを作成、編集、削除するための Dialogflow CX コンソールに対する編集権限。
  • API を使用してインテントを検出できます。
IAM の基本役割の定義をご覧ください。
プロジェクト >
閲覧者
すべての Google Cloud および Dialogflow リソースに対する読み取りアクセス権が必要なプロジェクト閲覧者に付与します。
  • Cloud Console または API を使用した、すべての Cloud プロジェクトのリソースに対する読み取りアクセス権。
  • Dialogflow CX コンソールに対する読み取りアクセス権。
  • API を使用してインテントを検出することはできません。
IAM の基本役割の定義をご覧ください。
プロジェクト >
参照者
フォルダ、組織、IAM ポリシーなど、プロジェクトの階層を参照するための読み取りアクセス権が必要なプロジェクト参照者に付与します。
  • Cloud プロジェクト階層に対する読み取りアクセスが可能です。
  • Dialogflow CX コンソールにはアクセスできません。
  • API を使用してインテントを検出することはできません。
IAM プロジェクト ロールの定義をご覧ください。
Dialogflow >
Dialogflow API 管理者
Dialogflow 固有のリソースへの完全アクセス権が必要な Dialogflow API 管理者に付与します。
  • Cloud Console または API を使用した、Dialogflow に対する完全アクセス権。
  • Dialogflow CX コンソールに対する完全アクセス権。
  • API を使用してインテントを検出できます。
Dialogflow IAM ロールの定義をご覧ください。
Dialogflow >
Dialogflow API クライアント
API を使用して Dialogflow 固有の編集を実行し、インテント呼び出しを検出する Dialogflow API クライアントに付与します。
  • Cloud Console または API を使用して、Dialogflow に対して編集アクセスを行うことができます。
  • Dialogflow CX コンソールにはアクセスできません。
  • API を使用してインテントを検出できます。
Dialogflow IAM ロールの定義をご覧ください。
Dialogflow >
Dialogflow コンソール エージェント編集者
既存のエージェントを編集する Dialogflow CX コンソール編集者に付与します。
  • Cloud Console を使用した、Dialogflow に対する完全アクセス権。
  • Dialogflow CX コンソールを使用して、ほとんどのエージェント データに対して編集アクセスを行うことができます。
  • API を使用してインテントを検出できます。
Dialogflow IAM ロールの定義をご覧ください。
Dialogflow >
Dialogflow API 読み取り
API を使用して Dialogflow 固有の読み取り専用呼び出しを実行する Dialogflow API クライアントに付与します。
  • Cloud Console または API を使用して、Dialogflow に対して読み取りアクセスを行うことができます。
  • Dialogflow CX コンソールに対する読み取りアクセス権。
  • API を使用してインテントを検出することはできません。
Dialogflow IAM ロールの定義をご覧ください。