このガイドでは、特定の Gemini Enterprise Agent Platform Workbench インスタンスへのアクセス権を付与する方法について説明します。 Gemini Enterprise Agent Platform リソースへのアクセスを管理するには、 アクセス制御に関する Agent Platform ページをご覧ください。
Agent Platform Workbench インスタンスへのアクセス権を付与するには、インスタンスに Identity and Access Management(IAM)ポリシーを設定します。 このポリシーでは、ユーザーやサービス アカウントなどの 1 つ以上のメンバーを 1 つ以上の ロールにバインドします。 各ロールには、プリンシパルがインスタンスを操作できるようにする権限のリストが含まれています。
最小権限の原則を実践するには、プロジェクト、フォルダ、組織などの親リソースではなく、インスタンスに対するアクセス権を付与します。
親リソース(プロジェクトなど)にアクセス権を付与すると、そのすべての子リソース(そのプロジェクト内のすべてのインスタンスなど)にもアクセス権が付与されることになります。リソースへのアクセスを制限するには、可能であれば、プロジェクト レベル以上のリソースではなく、下位レベルのリソースで IAM ポリシーを設定します。
Agent Platform Workbench と関係のないリソースへのアクセス権(たとえば、 プロジェクトへのアクセス権)を付与、変更、取り消す方法については、IAM ドキュメントで プロジェクト、フォルダ、組織へのアクセス権の管理についての説明をご確認ください。 Google Cloud
アクセスの制限
インスタンスへのアクセス権には、プリンシパルに割り当てるロールに応じて、さまざまな権限が含まれています。たとえば、インスタンスの起動、停止、アップグレード、ヘルス ステータスのモニタリングをプリンシパルに許可できます。使用可能な IAM 権限の一覧については、Agent Platform Workbench の IAM 事前定義ロールをご覧ください。
ただし、プリンシパルに Agent Platform Workbench インスタンスへの完全アクセス権を付与しても、インスタンスの JupyterLab インターフェースを使用する権限は付与されません。 JupyterLab インターフェースへのアクセス権を付与するには、 インスタンスの JupyterLab インターフェースへのアクセスを管理するをご覧ください。
Agent Platform Workbench インスタンスへのアクセス権を付与する
特定の Agent Platform Workbench インスタンスにアクセスする権限をユーザーに付与するには、インスタンスに IAM ポリシー を設定します。
gcloud
Agent Platform Workbench インスタンスのプリンシパルにロールを付与するには、
get-iam-policy
コマンドを使用して現在のポリシーを取得して、現在のポリシーのアクセス権を編集します。その後、
set-iam-policy
コマンドを使用して、インスタンスのポリシーを更新します。
現在のポリシーを取得する
後述のコマンドデータを使用する前に、次のように置き換えます。
INSTANCE_NAME: インスタンスの名前PROJECT_ID: 実際の Google Cloud プロジェクト IDLOCATION: インスタンスが配置されているゾーン
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud workbench instances get-iam-policy INSTANCE_NAME \ --project=PROJECT_ID \ --location=LOCATION
Windows(PowerShell)
gcloud workbench instances get-iam-policy INSTANCE_NAME ` --project=PROJECT_ID ` --location=LOCATION
Windows(cmd.exe)
gcloud workbench instances get-iam-policy INSTANCE_NAME ^ --project=PROJECT_ID ^ --location=LOCATION
{
"bindings": [
{
"role": "roles/notebooks.viewer",
"members": [
"user:email@example.com"
]
}
],
"etag": "BwWWja0YfJA=",
"version": 3
}
ポリシーを編集する
テキスト エディタでポリシーを編集して、プリンシパルとそれに関連するロールを追加または削除します。たとえば、
notebooks.adminロールをeve@example.comに付与するには、"bindings"セクション内に次の新しいバインディングをポリシーに追加します。{ "role": "roles/notebooks.admin", "members": [ "user:eve@example.com" ] }新しいバインディングを追加すると、ポリシーは次のようになります。
{ "bindings": [ { "role": "roles/notebooks.viewer", "members": [ "user:email@example.com" ] }, { "role": "roles/notebooks.admin", "members": [ "user:eve@example.com" ] } ], "etag": "BwWWja0YfJA=", "version": 3 }更新したポリシーを
request.jsonという名前のファイルに保存します。
インスタンスのポリシーを更新する
リクエストの本文で、前の手順で更新した IAM ポリシーを "policy" セクション内にネストします。
後述のコマンドデータを使用する前に、次のように置き換えます。
INSTANCE_NAME: インスタンスの名前PROJECT_ID: 実際の Google Cloud プロジェクト IDLOCATION: インスタンスが配置されているゾーン
次の内容を request.json という名前のファイルに保存します。
{ "policy": { "bindings": [ { "role": "roles/notebooks.viewer", "members": [ "user:email@example.com" ] }, { "role": "roles/notebooks.admin", "members": [ "user:eve@example.com" ] } ], "etag": "BwWWja0YfJA=", "version": 3 } }
次のコマンドを実行します。
Linux、macOS、Cloud Shell
gcloud workbench instances set-iam-policy INSTANCE_NAME \ --project=PROJECT_ID \ --location=LOCATION \ request.json --format=json
Windows(PowerShell)
gcloud workbench instances set-iam-policy INSTANCE_NAME ` --project=PROJECT_ID ` --location=LOCATION ` request.json --format=json
Windows(cmd.exe)
gcloud workbench instances set-iam-policy INSTANCE_NAME ^ --project=PROJECT_ID ^ --location=LOCATION ^ request.json --format=json
JupyterLab インターフェースへのアクセス権を付与する
プリンシパルに Agent Platform Workbench インスタンスへのアクセス権を付与しても、インスタンスの JupyterLab インターフェースを使用する権限は付与されません。 JupyterLab インターフェースへのアクセス権を付与するには、Agent Platform Workbench インスタンスの JupyterLab インターフェースへのアクセスを管理するをご覧ください。
API
Agent Platform Workbench インスタンスのプリンシパルにロールを付与するには、
getIamPolicy
メソッドを使用して現在のポリシーを取得して、
現在のポリシーのアクセス権を編集します。その後、
setIamPolicy
メソッドを使用して、インスタンスのポリシーを更新します。
現在のポリシーを取得する
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト IDLOCATION: インスタンスが配置されているゾーンINSTANCE_NAME: インスタンスの名前
HTTP メソッドと URL:
GET https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:getIamPolicy
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
次のコマンドを実行します。
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:getIamPolicy"
PowerShell
次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:getIamPolicy" | Select-Object -Expand Content
{
"bindings": [
{
"role": "roles/notebooks.viewer",
"members": [
"user:email@example.com"
]
}
],
"etag": "BwWWja0YfJA=",
"version": 3
}
ポリシーを編集する
テキスト エディタでポリシーを編集して、プリンシパルとそれに関連するロールを追加または削除します。たとえば、eve@example.com に notebooks.admin ロールを付与するには、"bindings" セクションに次の新しいバインディングをポリシーに追加します。
{
"role": "roles/notebooks.admin",
"members": [
"user:eve@example.com"
]
}
新しいバインディングを追加すると、ポリシーは次のようになります。
{
"bindings": [
{
"role": "roles/notebooks.viewer",
"members": [
"user:email@example.com"
]
},
{
"role": "roles/notebooks.admin",
"members": [
"user:eve@example.com"
]
}
],
"etag": "BwWWja0YfJA=",
"version": 3
}
インスタンスのポリシーを更新する
リクエストの本文で、前の手順で更新した IAM ポリシーを "policy" セクション内にネストします。
リクエストのデータを使用する前に、次のように置き換えます。
PROJECT_ID: 実際の Google Cloud プロジェクト IDLOCATION: インスタンスが配置されているゾーンINSTANCE_NAME: インスタンスの名前
HTTP メソッドと URL:
POST https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy
リクエストの本文(JSON):
{
"policy": {
"bindings": [
{
"role": "roles/notebooks.viewer",
"members": [
"user:email@example.com"
]
},
{
"role": "roles/notebooks.admin",
"members": [
"user:eve@example.com"
]
}
],
"etag": "BwWWja0YfJA=",
"version": 3
}
}
リクエストを送信するには、次のいずれかのオプションを選択します。
curl
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy"
PowerShell
リクエスト本文を request.json という名前のファイルに保存して、次のコマンドを実行します。
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://notebooks.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_NAME:setIamPolicy" | Select-Object -Expand Content
成功を示すステータス コード(2xx)と空のレスポンスが返されます。
JupyterLab インターフェースへのアクセス権を付与する
プリンシパルに Agent Platform Workbench インスタンスへのアクセス権を付与しても、インスタンスの JupyterLab インターフェースを使用する権限は付与されません。 JupyterLab インターフェースへのアクセス権を付与するには、 インスタンスの JupyterLab インターフェースへのアクセスを管理するをご覧ください。
次のステップ
Identity and Access Management(IAM)の概要と、 IAM ロールがアクセス権の付与と制限にどのように役立つかを確認する。 IAM のドキュメントをご覧ください。
Agent Platform Workbench で使用可能な IAM ロール を確認する。
他の Google リソースへのアクセス権を付与する方法を確認する。他のリソースへのアクセス権の管理をご覧ください。