Auf dieser Seite wird beschrieben, wie Sie die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC) in Cloud Data Fusion-Instanzen verwenden. RBAC ist in Cloud Data Fusion-Instanzen verfügbar, die in Version 6.5 und höher ausgeführt werden.
Weitere Informationen finden Sie in der Übersicht über die rollenbasierte Zugriffssteuerung (Role-Based Access Control, RBAC).
Empfohlen:Sofern nicht für Automatisierungszwecke erforderlich, Verwenden Sie die Google Cloud Console, um Ihre RBAC-Aufgaben auszuführen.
RBAC für eine vorhandene Instanz aktivieren
Sie können RBAC für eine vorhandene Cloud Data Fusion-Instanz aktivieren, die in Version 6.5 oder höher ausgeführt wird.
Console
So aktivieren Sie RBAC für eine vorhandene Cloud Data Fusion-Instanz:
- Rufen Sie die Instanzdetails auf:
Rufen Sie in der Google Cloud Console die Seite „Cloud Data Fusion“ auf.
Klicken Sie auf Instanzen und dann auf den Namen der Instanz, um die Seite Instanzdetails aufzurufen.
- Prüfen Sie, ob die Instanz auf Version 6.5 oder höher aktualisiert wurde. Wenn die Instanz eine ältere Version als 6.5 hat, führen Sie ein Upgrade auf Version 6.5 oder höher durch.
- Klicken Sie auf RBAC aktivieren.
- Klicken Sie auf Speichern.
- Warten Sie, bis die Instanzaktualisierung abgeschlossen ist.
gcloud
Führen Sie den folgenden Befehl aus, um RBAC für eine vorhandene Cloud Data Fusion-Instanz zu aktivieren:
gcloud beta data-fusion instances update --enable_rbac --location=REGION INSTANCE_ID
REST API
Aktivieren Sie RBAC für eine vorhandene Instanz mit der
Cloud Data Fusion-Patch
der API erstellen. Legen Sie das Flag enableRbac
auf true
fest und verwenden Sie den Abfrageparameter updateMask
mit dem folgenden Beispielbefehl:
export PROJECT=PROJECT_ID
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
gcurl https://$DATA_FUSION_API_NAME/v1beta1/projects/$PROJECT/locations/$LOCATION/instances/$INSTANCE?updateMask=enable_rbac -X PATCH -d '{"enable_rbac": "true"}'
RBAC für eine vorhandene Instanz deaktivieren
Wenn Sie eine vorhandene Instanz mit aktiviertem RBAC haben, können Sie RBAC bei Bedarf deaktivieren. Die Deaktivierung von RBAC wirkt sich nicht auf vorhandene Pipelines oder Konfigurationen in der Instanz aus. Die Sicherheitsisolation wird lediglich über Namespaces hinweg deaktiviert.
Console
So deaktivieren Sie RBAC für eine vorhandene Cloud Data Fusion-Instanz:
Rufen Sie die Instanzdetails auf:
Rufen Sie in der Google Cloud Console die Seite „Cloud Data Fusion“ auf.
Klicken Sie auf Instanzen und dann auf den Namen der Instanz, um die Seite Instanzdetails aufzurufen.
Klicken Sie auf RBAC deaktivieren.
Klicken Sie auf Speichern.
Warten Sie, bis die Instanzaktualisierung abgeschlossen ist.
gcloud
Verwenden Sie das Argument --no-enable_rbac anstelle von --enable-rbac, um RBAC für eine vorhandene Instanz zu deaktivieren.
gcloud beta data-fusion instances update --no-enable_rbac --location=REGION INSTANCE_ID
Anwendungsbeispiel:
gcloud beta data-fusion instances update --no-enable_rbac --location=us-east1 cdf-test-instance
REST API
Deaktivieren Sie RBAC für eine vorhandene Instanz mit der
Cloud Data Fusion-Patch
der API erstellen. Legen Sie das Flag enableRbac
auf false
fest und verwenden Sie den Abfrageparameter updateMask
mit dem folgenden Beispielbefehl:
export PROJECT=PROJECT_ID
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
gcurl https://$DATA_FUSION_API_NAME/v1beta1/projects/$PROJECT/locations/$LOCATION/instances/$INSTANCE?updateMask=enable_rbac -X PATCH -d '{"enable_rbac": "false"}'
Neue RBAC-fähige Instanz erstellen
Console
So erstellen Sie eine neue Cloud Data Fusion-Instanz mit aktivierter RBAC:
Rufen Sie die Seite Cloud Data Fusion-Seite Instanzen auf.
Klicken Sie auf Instanzen.
Klicken Sie auf Instanz erstellen und geben Sie die Instanzdetails ein.
Wählen Sie die Enterprise Edition aus. RBAC wird nur in der Enterprise-Version unterstützt.
Wählen Sie unter Erweiterte Optionen die Option Detaillierte rollenbasierte Zugriffssteuerung aktivieren aus.
Diese Funktion ist nur in Instanzen verfügbar, die Cloud Data Fusion Version 6.5 und höher verwenden.
Klicken Sie auf Erstellen.
gcloud
Führen Sie den folgenden Befehl aus, um eine neue RBAC-fähige Instanz zu erstellen:
gcloud beta data-fusion instances create --edition=enterprise \
--enable_rbac \
--location=REGION INSTANCE_ID \
--version=6.5.0
Anwendungsbeispiel:
gcloud beta data-fusion instances create --edition=enterprise \
--enable_rbac \
--location=us-east1 \
--version=6.5.0
REST API
Um eine RBAC-fähige Instanz mit der REST API zu erstellen, übergeben Sie das Flag enableRbac
, das in den Instanzoptionen auf true
gesetzt ist, wie in den folgenden Befehlen gezeigt:
export PROJECT=PROJECT_ID
export LOCATION=REGION
export INSTANCE=INSTANCE_ID
export DATA_FUSION_API_NAME=datafusion.googleapis.com
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" https://$DATA_FUSION_API_NAME/v1beta1/projects/$PROJECT/locations/$LOCATION/instances?instanceId=$INSTANCE -X POST -d '{"description": "RBAC CDF instance created through REST", "type": "ENTERPRISE", "enableRbac": "true"}'
Nutzern vordefinierte Cloud Data Fusion-Rollen zuweisen (erforderlich)
Nachdem RBAC aktiviert ist, weisen Sie Hauptkonten Rollen zu, damit sie bestimmte Aktionen in einer Instanz oder einem Namespace ausführen können. Informationen dazu, welche Rollen Ihren Anforderungen am besten entsprechen, finden Sie unter Vordefinierte Cloud Data Fusion-Rollen und Sicherheitsempfehlungen.
Console
So weisen Sie Hauptkonten vordefinierte Cloud Data Fusion-Rollen zu:
Rufen Sie die Cloud Data Fusion-Seite Berechtigungen auf.
Klicken Sie auf Hinzufügen
.Das Dialogfeld Zugriff für Nutzer hinzufügen wird geöffnet.
Geben Sie im Feld Neue Mitglieder eine Liste der Hauptkonten (Nutzer, Gruppen oder Dienstkonto-E-Mails) ein, denen Sie Rollen zuweisen möchten.
Klicken Sie das Kästchen neben jeder Instanz an, der Sie diese Berechtigungen gewähren möchten Berechtigungen.
Rufen Sie die Spalte Rolle auf und wählen Sie das Drop-down-Menü neben den ausgewählten Instanzen aus.
Um Instanzadministratorberechtigungen zu gewähren, wählen Sie Instanz Verwaltung.
Wählen Sie Namespace-Nutzer aus, um Berechtigungen auf Namespace-Ebene zu gewähren.
Wenn Sie Berechtigungen auf Namespace-Ebene gewähren, klicken Sie auf Auswählen.
Das Dialogfeld Zugriffsrechte hinzufügen wird geöffnet.
Namespace und den vordefinierten Namespace auswählen Cloud Data Fusion-Rolle, die Sie dem Namespace gewähren möchten.
Klicken Sie auf Auswählen, um die neuen Einstellungen zu speichern.
Optional: Wiederholen Sie Schritt 5, um Namespace-Berechtigungen für andere Instanzen zu erteilen.
Klicken Sie auf Speichern.
Informationen zum Überprüfen der gewährten Rollen finden Sie unter Prüfen Sie die Rollen in der Google Cloud Console.
gcloud
Sie können die Google Cloud CLI verwenden, um den Zugriff programmatisch zu steuern.
Wenn Sie eine Rolle mit der gcloud CLI zuweisen möchten, verwenden Sie eine durch Kommas getrennte Liste von Nutzerkennungen im folgenden Format:
[user|group|serviceAccount][email_address]
Geben Sie folgende Werte an:
user:useremail@example.com
group:groupemail@example.com
serviceAccount:serviceaccount@project.iam.gserviceaccount.com
Weitere Beispiele finden Sie unter Rolle zuweisen.
Rolle "Instanzzugriff" zuweisen (erforderlich)
Sie müssen einem Nutzer zuerst Zugriff auf die Instanz gewähren, indem Sie ihm die Rolle "Instanzzugriff" zuweisen:
Exportieren Sie die folgenden Variablen mit dem folgenden Befehl und ersetzen Sie die Variablen durch Ihre eigenen Werte:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export USER_ID=EMAIL export USER_TYPE=USER_TYPE
Ersetzen Sie die folgenden Variablen durch Ihre eigenen Werte:
- PROJECT_ID: der Name Ihres Projekts
- INSTANCE_ID: der Name Ihrer Instanz
- REGION: die Region, zu der das Projekt gehört
- EMAIL: die E-Mail-Adresse des Hauptkontos
- USER_TYPE: der Nutzertyp kann ein Nutzer, eine Gruppe oder ein Dienstkonto sein
Führen Sie den folgenden Befehl aus, um die Rolle zuzuweisen:
gcloud beta data-fusion add-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --member="${USER_TYPE}:${USER_ID}" --role="roles/datafusion.accessor"
Rollen einem Namespace zuweisen (abhängig vom Anwendungsfall)
Je nach Anwendungsfall weisen Sie Rollen mit den folgenden Befehlen zu:
Exportieren Sie die folgenden Variablen mit dem folgenden Befehl und ersetzen Sie die Variablen durch Ihre eigenen Werte:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export NAMESPACE=NAMESPACE export USER_ID=EMAIL export USER_TYPE=USER_TYPE
Ersetzen Sie die folgenden Variablen durch Ihre eigenen Werte:
- PROJECT_ID: der Name Ihres Projekts
- INSTANCE_ID: der Name Ihrer Instanz
- REGION: die Region, zu der das Projekt gehört
- NAMESPACE: der Namespace-Name
- EMAIL: die E-Mail-Adresse des Hauptkontos
- USER_TYPE: der Nutzertyp kann ein Nutzer, eine Gruppe oder ein Dienstkonto sein
Führen Sie den folgenden Befehl aus, um einem Hauptkonto in einem bestimmten Namespace eine Rolle zuzuweisen:
gcloud beta data-fusion add-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE} --member="${USER_TYPE}:${USER_ID}" --role="roles/ROLE_NAME"
Ersetzen Sie ROLE_NAME durch einen der folgenden Werte:
- Verwenden Sie für die Bearbeiterrolle für einen Namespace
datafusion.editor
. - Verwenden Sie für die Operatorrolle für einen Namespace
datafusion.operator
. - Verwenden Sie für die Entwicklerrolle eines Namespace
datafusion.developer
. - Verwenden Sie für die Betrachterrolle eines Namespace
datafusion.viewer
.
- Verwenden Sie für die Bearbeiterrolle für einen Namespace
Optional: Namespace-Rollen widerrufen
Verwenden Sie den folgenden Befehl, um einem Nutzer die Rolle für einen bestimmten Namespace zu entziehen:
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
export NAMESPACE=NAMESPACE
export USER_ID=EMAIL
# User type can be one of: user, group, or serviceAccount.
export USER_TYPE=USER_TYPE
export ROLE=ROLE_NAME
gcloud beta data-fusion remove-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE} --member="${USER_TYPE}:${USER_ID}" --role="${ROLE}"
Optional: Rollen auflisten, die in einem bestimmten Namespace gewährt wurden
Mit dem folgenden Befehl können Sie alle IAM-Rollen auflisten, die für einen bestimmten Namespace zugewiesen wurden:
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
export NAMESPACE=NAMESPACE
gcloud beta data-fusion get-iam-policy ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE}
REST API
Rolle "Instanzzugriff" zuweisen (erforderlich)
Sie müssen einem Nutzer zuerst Zugriff auf die Instanz gewähren, indem Sie ihm die Rolle "Instanzzugriff" zuweisen.
Es wird dringend empfohlen, die Zugriffsrolle mit der gcloud CLI zu gewähren.
Weisen Sie die Rolle Instanzzugriff zu:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export USER_ID=EMAIL # User type can be one of: user, group, or serviceAccount. export USER_TYPE=USER_TYPE alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
Rufen Sie die aktuelle IAM-Richtlinie ab und speichern Sie sie in einer Datei:
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:getIamPolicy > iam_policy.json
Fügen Sie eine Bindung für die Rolle und den Nutzer in der Richtlinie hinzu. Beispiel:
{ "policy": { "bindings": [ { "role": "roles/datafusion.accessor", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }
Aktualisieren Sie die IAM-Richtlinie der Instanz:
gcurl \ -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:setIamPolicy
Rollen einem Namespace zuweisen (abhängig vom Anwendungsfall)
Je nach Anwendungsfall weisen Sie Rollen mit den folgenden Befehlen zu:
Exportieren Sie die folgenden Variablen mit dem folgenden Befehl und ersetzen Sie die Variablen durch Ihre eigenen Werte:
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export NAMESPACE=NAMESPACE export USER_ID=EMAIL export USER_TYPE=USER_TYPE alias gcurl='curl --header "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
Ersetzen Sie die folgenden Variablen durch Ihre eigenen Werte:
- PROJECT_ID: der Name Ihres Projekts
- INSTANCE_ID: der Name Ihrer Instanz
- REGION: die Region, zu der das Projekt gehört
- NAMESPACE: der Namespace-Name
- EMAIL: die E-Mail-Adresse des Hauptkontos
- USER_TYPE: der Nutzertyp kann ein Nutzer, eine Gruppe oder ein Dienstkonto sein
Rufen Sie die aktuelle IAM-Richtlinie ab und speichern Sie sie in einer Datei:
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:getIamPolicy > iam_policy.json
Ersetzen Sie iam_policy.json durch Ihren eigenen Dateinamen.
Fügen Sie eine Bindung für die Rolle und den Nutzer in der Richtliniendatei hinzu. Die Richtliniendatei könnte beispielsweise so aussehen:
{ "policy": { "bindings": [ { "role": "roles/ROLE_NAME", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }
Für eine bestimmte Richtlinie können mehrere Rollenbindungen angegeben werden. Hauptkonten können in der members-Liste für eine bestimmte Rolle angegeben werden Bindung. Ersetzen Sie für ein bestimmtes Hauptkonto ROLE_NAME durch einen der folgenden Werte:
- Verwenden Sie für die Bearbeiterrolle für einen Namespace
datafusion.editor
. - Verwenden Sie für die Operatorrolle für einen Namespace
datafusion.operator
. - Verwenden Sie für die Entwicklerrolle eines Namespace
datafusion.developer
. - Verwenden Sie für die Betrachterrolle eines Namespace
datafusion.viewer
.
- Verwenden Sie für die Bearbeiterrolle für einen Namespace
Führen Sie den folgenden Befehl aus, um die Richtliniendatei zu aktualisieren:
gcurl -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:setIamPolicy
Ersetzen Sie iam_policy.json durch Ihren eigenen Dateinamen.
Rollen in der Google Cloud Console prüfen
Sie können vorhandene Rollen auf der Cloud Data Fusion-Seite Berechtigungen prüfen und bearbeiten.
Rollen mit der Richtliniendatei prüfen
Prüfen Sie, ob die Rollen den richtigen Nutzern im IAM-Richtliniendatei mit über die gcloud CLI oder die REST API.
Im folgenden Beispiel für eine IAM-Richtliniendatei hat der Nutzer alice@example.com
die Rolle "Data Fusion-Entwickler":
bindings:
- members:
- user:alice@example.com
role: roles/datafusion.developer
- members:
- user:bob@example.com
- serviceAccount:myserviceaccount@myproject.iam.gserviceaccount.com
role: roles/datafusion.operator
- members:
- user:james@example.com
- user:mike@example.com
- group:mygroup@googlegroups.com
role: roles/datafusion.editor
etag: BwXA8BAHYmw=
IAM-Richtlinie für eine Instanz abrufen
gcloud
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
gcloud beta data-fusion get-iam-policy ${INSTANCE} --project ${PROJECT} --location=${REGION}
cURL
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
curl -H "Authorization: Bearer "$(gcloud auth print-access-token) \
https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:getIamPolicy
IAM-Richtlinie für einen Namespace abrufen
gcloud
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export REGION=REGION
export NAMESPACE=NAMESPACE
gcloud beta data-fusion get-iam-policy ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE}
cURL
export PROJECT=PROJECT_ID
export INSTANCE=INSTANCE_ID
export NAMESPACE=NAMESPACE
export REGION=REGION
curl -H "Authorization: Bearer "$(gcloud auth print-access-token) \
https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/${NAMESPACE}:getIamPolicy
Nächste Schritte
- Weitere Informationen zur rollenbasierten Zugriffssteuerung in Cloud Data Fusion