Nesta página, você vai aprender a controlar o acesso a um endpoint da Gemini Enterprise Agent Platform configurando uma política do IAM.
Ela pressupõe que você já conheça os conceitos do IAM, como políticas, papéis, permissões e principais, conforme descrito em Controle de acesso da Agent Platform com o IAM e Conceitos relacionados ao gerenciamento de acesso.
Uma política do IAM inclui uma ou mais vinculações de papel que definem quais papéis do IAM são associados a quais principais. Um papel é um conjunto de permissões concedidas a um principal. A Gemini Enterprise Agent Platform oferece papéis predefinidos que podem ser usados nas suas políticas. Também é possível criar papéis personalizados.
Receber uma política do IAM
É possível visualizar a política atual do IAM em um endpoint da Plataforma de agentes do Gemini Enterprise
usando a API REST. Para fazer isso, você precisa ter
a permissão endpoints.getIamPolicy no endpoint ou no projeto.
O papel de administrador da Agent Platform (roles/aiplatform.admin) concede essa permissão.
REST
Para receber a política do IAM de um recurso, envie uma solicitação POST que
use o método getIamPolicy.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: a região em que o endpoint está localizado, por exemplo,
us-central1. - PROJECT_ID: o ID do projeto do Google Cloud .
- ENDPOINT_ID: o ID do endpoint.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:getIamPolicy
Para enviar a solicitação, escolha uma destas opções:
curl
Execute o seguinte comando:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:getIamPolicy"
PowerShell
execute o seguinte comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:getIamPolicy" | Select-Object -Expand Content
Você receberá uma resposta JSON com a política atual do IAM:
{
"version": 1,
"etag": "BwXTmICm7mI",
"bindings": [
{
"role": "roles/aiplatform.user",
"members": [
"user:example@example.com"
]
}
]
}
Definir uma política do IAM.
É possível definir uma política do IAM em um endpoint usando a API REST.
Para fazer isso, você precisa ter
a permissão endpoints.setIamPolicy no endpoint ou no projeto.
O papel de administrador da Agent Platform (roles/aiplatform.admin) concede essa permissão.
REST
Para definir a política do IAM em um recurso, envie uma solicitação POST que
use o método setIamPolicy.
A definição de uma política do IAM modifica qualquer política atual. As alterações não
são anexadas. Para modificar a política de um recurso, use o
método getIamPolicy para receber a política e faça
modificações. Inclua a política modificada com etag na
solicitação setIamPolicy.
Se você receber um código de erro 409, isso significa que uma solicitação
setIamPolicy simultânea já atualizou a política.
Use o método getIamPolicy
para receber o etag atualizado da política
e, em seguida, tente fazer a solicitação setIamPolicy novamente com o novo
etag.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: a região em que o endpoint está localizado, por exemplo,
us-central1. - PROJECT_ID: o ID do projeto do Google Cloud .
- ENDPOINT_ID: o ID do endpoint.
- ROLE: um papel do IAM que inclui as permissões a serem concedidas, como
roles/aiplatform.user. - PRINCIPAL: o principal que tem as permissões do papel, como
user:myuser@example.com. - ETAG: um valor de string usado para evitar que atualizações
simultâneas de uma política sejam substituídas. Esse valor é retornado como parte da resposta de
getIamPolicy.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:setIamPolicy
Corpo JSON da solicitação:
{
"policy": {
"bindings": [
{
"role": "ROLE",
"members": [
"PRINCIPAL"
]
},
...
],
"etag": "ETAG"
}
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:setIamPolicy"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:
$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://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:setIamPolicy" | Select-Object -Expand Content
Você receberá uma resposta JSON com a política atual do IAM:
{
"version": 1,
"etag": "BwXTmICm7mI",
"bindings": [
{
"role": "roles/aiplatform.user",
"members": [
"user:example@example.com"
]
}
]
}
Verificar as permissões de IAM de um usuário em um endpoint
É possível verificar se o usuário autenticado tem permissões específicas do IAM para um endpoint.
REST
Para verificar se um usuário tem permissões específicas do IAM para um
recurso, envie uma solicitação POST que use o
método testIamPermissions.
O exemplo a seguir permite testar se o usuário autenticado
tem um conjunto de permissões do IAM para um endpoint.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- LOCATION_ID: a região em que o endpoint está localizado, por exemplo,
us-central1. - PROJECT_ID: o ID do projeto do Google Cloud .
- ENDPOINT_ID: o ID do endpoint.
Método HTTP e URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:testIamPermissions
Corpo JSON da solicitação:
{
"permissions": [
"aiplatform.googleapis.com/aiplatform.endpoints.get",
"aiplatform.googleapis.com/aiplatform.endpoints.predict"
]
}
Para enviar a solicitação, escolha uma destas opções:
curl
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando abaixo:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:testIamPermissions"
PowerShell
Salve o corpo da solicitação em um arquivo com o nome request.json e execute o comando a seguir:
$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://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:testIamPermissions" | Select-Object -Expand Content
{
"permissions": [
"aiplatform.googleapis.com/aiplatform.endpoints.get",
"aiplatform.googleapis.com/aiplatform.endpoints.predict"
]
}
A seguir
Para saber mais sobre como configurar projetos com um controle de acesso mais seguro de endpoints, consulte Configurar um projeto para uma equipe.