Auf dieser Seite wird erläutert, wie Sie den Zugriff auf einen Vertex AI-Endpunkt steuern. Dazu legen Sie eine IAM-Richtlinie fest. Es wird davon ausgegangen, dass Sie mit IAM-Konzepten wie Richtlinien, Rollen, Berechtigungen und Hauptkonten vertraut sind, wie unter Vertex AI-Zugriffssteuerung mit IAM und Konzepte der Zugriffsverwaltung beschrieben.
Eine IAM-Richtlinie enthält eine oder mehrere Rollenbindungen, die definieren, welche IAM-Rollen welchen Hauptkonten zugeordnet sind. Eine Rolle ist eine Sammlung von Berechtigungen, die Sie einem Hauptkonto erteilen. Vertex AI bietet vordefinierte Rollen, die Sie in Ihren Richtlinien verwenden können. Sie können auch eigene benutzerdefinierte Rollen erstellen.
IAM-Richtlinie abrufen
Sie können die aktuelle IAM-Richtlinie an einem Vertex AI-Endpunkt mithilfe der REST API aufrufen. Dazu benötigen Sie die Berechtigung endpoints.getIamPolicy
für den Endpunkt oder das Projekt.
Die Rolle "Vertex AI-Administrator" (roles/aiplatform.admin
) gewährt diese Berechtigung.
REST
Senden Sie zum Abrufen der IAM-Richtlinie aus einer Ressource eine POST
-Anfrage, die die Methode getIamPolicy
verwendet.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der sich der Endpunkt befindet, z. B.
us-central1
. - PROJECT_ID: Ihre Google Cloud-Projekt-ID.
- ENDPOINT_ID: Die ID des Endpunkts.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:getIamPolicy
Senden Sie die Anfrage mithilfe einer der folgenden Optionen:
curl
Führen Sie folgenden Befehl aus:
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
Führen Sie folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort mit der aktuellen IAM-Richtlinie erhalten:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.user", "members": [ "user:example@example.com" ] } ] }
IAM-Richtlinie festlegen
Mit der REST API können Sie eine IAM-Richtlinie an einem Endpunkt festlegen.
Dazu benötigen Sie die Berechtigung endpoints.setIamPolicy
für den Endpunkt oder das Projekt.
Die Rolle "Vertex AI-Administrator" (roles/aiplatform.admin
) gewährt diese Berechtigung.
REST
Senden Sie eine POST
-Anfrage, die die Methode setIamPolicy
verwendet, um die IAM-Richtlinie für eine Ressource festzulegen.
Durch das Festlegen einer IAM-Richtlinie werden alle vorhandenen Richtlinien überschrieben (Änderungen werden nicht angehängt). Wenn Sie die vorhandene Richtlinie einer Ressource ändern möchten, verwenden Sie die Methode getIamPolicy
, um die vorhandene Richtlinie abzurufen und dann Änderungen vorzunehmen. Fügen Sie Ihre geänderte Richtlinie zusammen mit dem etag
in Ihre setIamPolicy
-Anfrage ein.
Wenn Sie den Fehlercode 409
erhalten, bedeutet dies, dass durch eine gleichzeitige setIamPolicy
-Anfrage die Richtlinie bereits aktualisiert wurde.
Verwenden Sie die Methode getIamPolicy
, um das aktualisierte etag
der Richtlinie abzurufen. Wiederholen Sie dann die setIamPolicy
-Anfrage mit dem neuen etag
.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der sich der Endpunkt befindet, z. B.
us-central1
. - PROJECT_ID: Ihre Google Cloud-Projekt-ID.
- ENDPOINT_ID: Die ID des Endpunkts.
- ROLE: Eine IAM-Rolle mit den zu erteilenden Berechtigungen, z. B.
roles/aiplatform.user
. - PRINCIPAL: Das Hauptkonto, dem die Berechtigungen der Rolle erteilt werden, z. B.
user:myuser@example.com
. - ETAG: Ein Stringwert, mit dem verhindert wird, dass sich gleichzeitige Aktualisierungen einer Richtlinie gegenseitig überschreiben. Dieser Wert wird als Teil der
getIamPolicy
-Antwort zurückgegeben.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:setIamPolicy
JSON-Text der Anfrage:
{ "policy": { "bindings": [ { "role": "ROLE", "members": [ "PRINCIPAL" ] }, ... ], "etag": "ETAG" } }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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
Sie sollten eine JSON-Antwort mit der aktuellen IAM-Richtlinie erhalten:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.user", "members": [ "user:example@example.com" ] } ] }
IAM-Berechtigungen eines Nutzers für einen Endpunkt prüfen
Sie können prüfen, ob der aktuell authentifizierte Nutzer bestimmte IAM-Berechtigungen für einen Endpunkt hat.
REST
Senden Sie eine POST
-Anfrage, die die Methode testIamPermissions
verwendet, um zu prüfen, ob ein Nutzer bestimmte IAM-Berechtigungen für eine Ressource hat.
Im folgenden Beispiel können Sie testen, ob der aktuell authentifizierte Nutzer eine Reihe von IAM-Berechtigungen für einen Endpunkt hat.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der sich der Endpunkt befindet, z. B.
us-central1
. - PROJECT_ID: Ihre Google Cloud-Projekt-ID.
- ENDPOINT_ID: Die ID des Endpunkts.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:testIamPermissions -d
JSON-Text der Anfrage:
{ "permissions": [ "aiplatform.googleapis.com/aiplatform.endpoints.get", "aiplatform.googleapis.com/aiplatform.endpoints.predict" ] }
Wenn Sie die Anfrage senden möchten, wählen Sie eine der folgenden Optionen aus:
curl
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
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 -d"
PowerShell
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
und führen Sie den folgenden Befehl aus:
$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 -d" | Select-Object -Expand Content
{ "permissions": [ "aiplatform.googleapis.com/aiplatform.endpoints.get", "aiplatform.googleapis.com/aiplatform.endpoints.predict" ] }