Sie können den Zugriff auf Vertex AI Feature Store-Ressourcen (Legacy) steuern, indem Sie IAM-Richtlinien auf verschiedenen Ebenen der Ressourcenhierarchie festlegen. Beispiel:
Eine IAM-Richtlinie auf Projektebene gilt für alle Ressourcen in einem Projekt. Sie können eine Richtlinie auf Projektebene festlegen, um Nutzern Berechtigungen zum Lesen aller Feature Stores in Ihrem Projekt zu erteilen.
Mit einer IAM-Richtlinie auf Ressourcenebene können Sie angeben, welche Nutzer auf bestimmte Ressourcen zugreifen können. Für eine Untergruppe von Nutzern können Sie eine Richtlinie auf Ressourcenebene festlegen, um bestimmten Featurestores in Ihrem Projekt Schreibberechtigungen zu gewähren.
Sie können IAM-Richtlinien (Identity and Access Management) auf Ressourcenebene für die folgenden Vertex AI Feature Store-Ressourcen (Legacy) festlegen:
Feature Store: Wenn Sie eine Identity and Access Management-Richtlinie für einen Feature Store festlegen, gilt die Richtlinie für den Feature Store und alle in diesem Feature erstellten Entitätstypen.
Entitätstyp: Wenn Sie eine Identity and Access Management-Richtlinie für einen Entitätstyp festlegen, gilt die Richtlinie nur für den Entitätstyp und nur für den Feature Store, in dem der Entitätstyp erstellt wird.
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.
Hinweise
Sie können keine bedingten Ressourcenrichtlinien festlegen. Beispielsweise können Sie keine Richtlinie erstellen, die Zugriff auf Ressourcen mit einem Namen gewährt, der mit einem bestimmten String wie testing
beginnt.
Beispielanwendungsfall
Angenommen, Ihre Organisation hat zwei Nutzergruppen. Ein Satz verwaltet Ihre zentrale Infrastruktur in einer DevOps-Administratorrolle. Ein anderer Satz verwaltet bestimmte Entitätstypen und deren Features, z. B. einen Data Engineer.
Ein DevOps-Administrator verwaltet Feature Stores und Entitätstypen auf Projektebene. Wenn Data Engineers einen neuen Entitätstyp anfordern, kann ein DevOps-Administrator die Inhaberschaft dieses Entitätstyps erstellen und an die Data Engineers delegieren. Data Engineers können Features in ihren Entitätstypen frei verwalten, aber nicht mit dem Feature Store oder anderen Entitätstypen arbeiten. So können beispielsweise DevOps-Administratoren den Zugriff auf Entitätstypen beschränken, die vertrauliche Informationen enthalten.
In diesem Szenario hat der DevOps-Administrator die Rolle aiplatform.featurestoreAdmin
auf Projektebene. Wenn ein Data Engineer dann einen neuen Entitätstyp anfordert, erstellt der Administrator einen neuen Entitätstyp und weist dann dem Data Engineer auf Ebene des Entitätstyps die Rolle aiplatform.entityTypeOwner
zu (als Richtlinie auf Ressourcenebene).
IAM-Richtlinie abrufen
Sie können die aktuelle IAM-Richtlinie für einen Feature Store oder Entitätstyp mithilfe der Google Cloud Console oder der API aufrufen.
Web-UI
- Rufen Sie im Bereich "Vertex AI" der Google Cloud Console die Seite Features auf.
- Wählen Sie eine Region aus der Drop-down-Liste Region aus.
- Wählen Sie in der Tabelle der Features einen Feature Store oder Entitätstyp aus der Spalte Feature Store oder Entitätstyp aus.
- Klicken Sie auf Berechtigungen.
- Um Berechtigungen auf Ressourcenebene anzuzeigen, deaktivieren Sie Übernommene Berechtigungen anzeigen.
Hauptkonten, die Zugriff auf die ausgewählte Ressource haben, werden nach Rolle gruppiert.
- Maximieren Sie eine Rolle, um zu sehen, welche Hauptkonten dieser Rolle zugewiesen sind.
REST
Senden Sie zum Abrufen der IAM-Richtlinie aus einer Ressource eine POST-Anfrage, die die Methode getIamPolicy
verwendet. Im folgenden Beispiel wird eine Richtlinie für Entitätstypen abgerufen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der sich der Featurestore befindet, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATURESTORE_ID: ID des Featurestores.
- ENTITY_TYPE_ID: ID des Entitätstyps.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:getIamPolicy" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.entityTypeOwner", "members": [ "user:example@example.com" ] } ] }
IAM-Richtlinie festlegen
Sie können eine IAM-Richtlinie für einen Feature Store oder Entitätstyp festlegen.
Web-UI
- Rufen Sie im Bereich "Vertex AI" der Google Cloud Console die Seite Features auf.
- Wählen Sie eine Region aus der Drop-down-Liste Region aus.
- Wählen Sie in der Tabelle der Features einen Feature Store oder Entitätstyp aus der Spalte Feature Store oder Entitätstyp aus.
- Klicken Sie auf Berechtigungen.
- Klicken Sie auf Hauptkonto hinzufügen.
- Geben Sie ein Hauptkonto und eine oder mehrere Rollen an, die dem Hauptkonto zugeordnet werden sollen.
- Klicken Sie auf Speichern.
REST
Senden Sie eine POST-Anfrage, die die Methode setIamPolicy
verwendet, um die IAM-Richtlinie für eine Ressource festzulegen. Im folgenden Beispiel wird eine Richtlinie für einen Entitätstyp festgelegt.
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, gab es gleichzeitig eine SetIamPolicy
-Anfrage, durch die die Richtlinie aktualisiert wurde. Stellen Sie eine GetIamPolicy
-Anfrage, um das aktualisierte ETag der Richtlinie abzurufen. Wiederholen Sie dann die SetIamPolicy
-Anfrage, indem Sie das neue ETag einschließen.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
- LOCATION_ID: Die Region, in der sich der Featurestore befindet, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATURESTORE_ID: ID des Featurestores.
- ENTITY_TYPE_ID: ID des Entitätstyps.
- ROLE: Eine IAM-Rolle mit den zu erteilenden Berechtigungen, z. B.
roles/aiplatform.featurestoreDataViewer
. - 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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:setIamPolicy" | Select-Object -Expand Content
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "version": 1, "etag": "BwXTmICm7mI", "bindings": [ { "role": "roles/aiplatform.entityTypeOwner", "members": [ "user:user1@example.com" ] }, { "role": "roles/aiplatform.featurestoreDataViewer", "members": [ "user:user2@example.com", "user:user3@example.com" ] }, { "role": "roles/aiplatform.featurestoreDataWriter", "members": [ "user:user4@example.com", ] } ] }
IAM-Berechtigungen für eine Ressource prüfen
Sie können prüfen, ob der aktuell authentifizierte Nutzer bestimmte IAM-Berechtigungen für einen Feature Store oder Entitätstyp 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 Entitätstyp hat.
Ersetzen Sie dabei folgende Werte für die Anfragedaten:
- LOCATION_ID: Die Region, in der sich der Featurestore befindet, z. B.
us-central1
. - PROJECT_ID: Ihre Projekt-ID.
- FEATURESTORE_ID: ID des Featurestores.
- ENTITY_TYPE_ID: ID des Entitätstyps.
HTTP-Methode und URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:testIamPermissions -d
JSON-Text der Anfrage:
{ "permissions": [ "aiplatform.googleapis.com/entityTypes.get", "aiplatform.googleapis.com/entityTypes.readFeatureValues", "aiplatform.googleapis.com/entityTypes.writeFeatureValues" ] }
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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_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/v1/projects/PROJECT_ID/locations/LOCATION_ID/featurestores/FEATURESTORE_ID/entityTypes/ENTITY_TYPE_ID:testIamPermissions -d" | Select-Object -Expand Content
{ "permissions": [ "aiplatform.googleapis.com/entityTypes.get", "aiplatform.googleapis.com/entityTypes.readFeatureValues", "aiplatform.googleapis.com/entityTypes.writeFeatureValues" ] }