Vous trouverez sur cette page la procédure à suivre pour utiliser le contrôle des accès basé sur les rôles (RBAC) dans les instances Cloud Data Fusion. Le contrôle RBAC est disponible dans les instances Cloud Data Fusion s'exécutant dans les versions 6.5 et ultérieures.
Pour en savoir plus, consultez la page Présentation du contrôle des accès basé sur les rôles (RBAC).
Recommandé : À moins que ce ne soit nécessaire à des fins d'automatisation, utilisez la console Google Cloud pour effectuer vos tâches RBAC.
Activer RBAC pour une instance existante
Vous pouvez activer RBAC pour un Cloud Data Fusion existant s'exécutant dans la version 6.5 ou ultérieure.
Console
Pour activer RBAC sur une instance Cloud Data Fusion existante, procédez comme suit :
- Accédez aux détails de l'instance:
Dans la console Google Cloud, accédez à la page Cloud Data Fusion.
Cliquez sur Instances, puis sur le nom de l'instance pour accéder à la page Détails de l'instance.
- Assurez-vous que l'instance a été mise à niveau vers la version 6.5 ou ultérieure. Si la version est antérieure à la version 6.5, mettez-la à niveau vers la version 6.5 ou ultérieure.
- Cliquez sur Activer RBAC.
- Cliquez sur Enregistrer.
- Patientez pendant la mise à jour de l'instance.
gcloud
Pour activer RBAC sur une instance Cloud Data Fusion existante, exécutez la commande suivante :
gcloud beta data-fusion instances update --enable_rbac --location=REGION INSTANCE_ID
API REST
Activez RBAC pour une instance existante à l'aide de l'API patch pour Cloud Data Fusion. Définissez l'indicateur enableRbac
sur true
et utilisez le paramètre de requête updateMask
à l'aide de l'exemple de commande suivant :
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"}'
Désactiver RBAC pour une instance existante
Si une instance existante est activée avec RBAC, vous pouvez désactiver RBAC si nécessaire. La désactivation du RBAC affecter les pipelines ou configurations existants dans l'instance. Elle désactive simplement l'isolation de sécurité dans les espaces de noms.
Console
Pour désactiver RBAC sur une instance Cloud Data Fusion existante, procédez comme suit :
Accédez aux détails de l'instance :
Dans la console Google Cloud, accédez à la page Cloud Data Fusion.
Cliquez sur Instances, puis sur le nom de l'instance pour accéder à la page Détails de l'instance.
Cliquez sur Désactiver RBAC.
Cliquez sur Enregistrer.
Patientez pendant la mise à jour de l'instance.
gcloud
Pour désactiver RBAC pour une instance existante, utilisez l'argument ---no-enable_rbac au lieu de --enable-rbac.
gcloud beta data-fusion instances update --no-enable_rbac --location=REGION INSTANCE_ID
Exemple d'utilisation :
gcloud beta data-fusion instances update --no-enable_rbac --location=us-east1 cdf-test-instance
API REST
Désactivez RBAC pour une instance existante avec le paramètre
Correctif Cloud Data Fusion
API. Définissez l'indicateur enableRbac
sur false
et utilisez le paramètre de requête updateMask
à l'aide de l'exemple de commande suivant :
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"}'
Créer une instance compatible avec RBAC
Console
Pour créer une instance Cloud Data Fusion avec RBAC activé, procédez comme suit :
Accédez à la page Instances de Cloud Data Fusion.
Cliquez sur Instances.
Cliquez sur Créer une instance et saisissez les détails de l'instance.
Sélectionnez l'édition Enterprise. Le contrôle RBAC n'est disponible que dans l'édition Enterprise.
Dans Options avancées, sélectionnez Activer le contrôle des accès précis basé sur les rôles.
Cette fonctionnalité est disponible uniquement dans les instances utilisant Cloud Data Fusion version 6.5 et ultérieure.
Cliquez sur Create (Créer).
gcloud
Pour créer une instance compatible avec RBAC, exécutez la commande suivante :
gcloud beta data-fusion instances create --edition=enterprise \
--enable_rbac \
--location=REGION INSTANCE_ID \
--version=6.5.0
Exemple d'utilisation :
gcloud beta data-fusion instances create --edition=enterprise \
--enable_rbac \
--location=us-east1 \
--version=6.5.0
API REST
Pour créer une instance compatible avec RBAC à l'aide de l'API REST, transmettez l'option enableRbac
définie sur true
dans les options de l'instance, comme indiqué dans les commandes suivantes :
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"}'
Attribuer des rôles Cloud Data Fusion prédéfinis aux utilisateurs (obligatoire)
Une fois le contrôle RBAC activé, vous accordez des rôles aux comptes principaux pour leur permettre d'effectuer des actions spécifiques dans une instance ou un espace de noms. Pour savoir quels rôles répondent le mieux à vos exigences, consultez les sections Rôles Cloud Data Fusion prédéfinis et Recommandations relatives à la sécurité.
Console
Pour attribuer des rôles Cloud Data Fusion prédéfinis aux comptes principaux :
Accédez à la page Autorisations de Cloud Data Fusion.
Cliquez sur Ajouter
.La boîte de dialogue Ajouter des utilisateurs s'ouvre.
Dans le champ Nouveaux membres, saisissez la liste des comptes principaux (utilisateurs, groupes ou adresses e-mail de comptes de service) auxquels vous souhaitez attribuer des rôles.
Cochez la case à côté de chaque instance à laquelle vous souhaitez accorder autorisations.
Accédez à la colonne Rôle et sélectionnez le menu déroulant à côté des instances choisies.
Pour accorder des autorisations d'administrateur d'instances, sélectionnez Administrateur d'instances.
Pour accorder des autorisations au niveau de l'espace de noms, sélectionnez Utilisateur de l'espace de noms.
Si vous accordez des autorisations au niveau de l'espace de noms, cliquez sur Sélectionner.
Une boîte de dialogue Ajouter des droits d'accès s'ouvre.
Sélectionnez un espace de noms, puis l'espace de noms prédéfini Rôle Cloud Data Fusion que vous souhaitez attribuer à l'espace de noms.
Cliquez sur Sélectionner pour enregistrer vos nouveaux paramètres.
Facultatif: Pour accorder des autorisations d'espace de noms à d'autres instances, répétez l'étape 5.
Cliquez sur Enregistrer.
Pour vérifier les rôles qui ont été attribués, consultez Vérifiez les rôles dans la console Google Cloud.
gcloud
Vous pouvez utiliser la Google Cloud CLI pour contrôler l'accès par programmation.
Pour attribuer un rôle à l'aide de la gcloud CLI, utilisez une liste d'identifiants d'utilisateur séparés par des virgules au format suivant :
[user|group|serviceAccount][email_address]
Indiquez les valeurs suivantes :
user:useremail@example.com
group:groupemail@example.com
serviceAccount:serviceaccount@project.iam.gserviceaccount.com
Pour plus d'exemples, consultez la page Accorder un rôle.
Attribuer le rôle "Accesseur d'instances" (obligatoire)
Vous devez d'abord autoriser un utilisateur à accéder à l'instance en lui attribuant le rôle Accesseur sur une instance :
Exportez les variables suivantes à l'aide de la commande suivante, en remplaçant les variables par vos propres valeurs :
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export USER_ID=EMAIL export USER_TYPE=USER_TYPE
Remplacez les variables suivantes par vos propres valeurs :
- PROJECT_ID : nom de votre projet
- INSTANCE_ID : nom de l'instance
- REGION : région à laquelle appartient le projet
- EMAIL : adresse e-mail du compte principal
- USER_TYPE : type d'utilisateur: utilisateur, groupe ou ressource serviceAccount
Exécutez le code suivant pour attribuer le rôle :
gcloud beta data-fusion add-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --member="${USER_TYPE}:${USER_ID}" --role="roles/datafusion.accessor"
Attribuer des rôles à un espace de noms (dépendant du cas d'utilisation)
Selon votre cas d'utilisation, attribuez des rôles à l'aide des commandes suivantes :
Exportez les variables suivantes à l'aide de la commande suivante, en remplaçant les variables par vos propres valeurs :
export PROJECT=PROJECT_ID export INSTANCE=INSTANCE_ID export REGION=REGION export NAMESPACE=NAMESPACE export USER_ID=EMAIL export USER_TYPE=USER_TYPE
Remplacez les variables suivantes par vos propres valeurs :
- PROJECT_ID : nom de votre projet
- INSTANCE_ID : nom de l'instance
- REGION : région à laquelle appartient le projet
- NAMESPACE : nom de l'espace de noms
- EMAIL : adresse e-mail du compte principal
- USER_TYPE : type d'utilisateur: utilisateur, groupe ou ressource serviceAccount
Exécutez la commande suivante pour attribuer un rôle à un compte principal dans un espace de noms donné :
gcloud beta data-fusion add-iam-policy-binding ${INSTANCE} --project ${PROJECT} --location=${REGION} --namespace=${NAMESPACE} --member="${USER_TYPE}:${USER_ID}" --role="roles/ROLE_NAME"
Remplacez ROLE_NAME par l'une des valeurs suivantes :
- Pour le rôle Éditeur pour un espace de noms, utilisez
datafusion.editor
. - Pour le rôle Opérateur pour un espace de noms, utilisez
datafusion.operator
. - Pour le rôle Développeur pour un espace de noms, utilisez
datafusion.developer
. - Pour le rôle Lecteur pour un espace de noms, utilisez
datafusion.viewer
.
- Pour le rôle Éditeur pour un espace de noms, utilisez
Facultatif : Révoquer les rôles de l'espace de noms
Pour révoquer le rôle accordé à un utilisateur pour un espace de noms donné, utilisez la commande suivante :
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}"
Facultatif: Lister les rôles attribués sur un espace de noms donné
Pour répertorier tous les rôles attribués sur un espace de noms particulier, utilisez la méthode pour récupérer la stratégie IAM:
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}
API REST
Attribuer le rôle "Accesseur d'instances" (obligatoire)
Vous devez d'abord autoriser un utilisateur à accéder à l'instance en lui attribuant le rôle Accesseur sur une instance.
Il est fortement recommandé d'utiliser gcloud CLI pour accorder Rôle d'accesseur.
Accordez le rôle d'accesseur sur une instance :
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"'
Récupérez la stratégie IAM actuelle et enregistrez-la dans un fichier :
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:getIamPolicy > iam_policy.json
Ajoutez une liaison pour le rôle et l'utilisateur dans la stratégie. Exemple :
{ "policy": { "bindings": [ { "role": "roles/datafusion.accessor", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }
Mettez à jour la stratégie IAM de l'instance:
gcurl \ -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}:setIamPolicy
Attribuer des rôles à un espace de noms (dépendant du cas d'utilisation)
Selon votre cas d'utilisation, attribuez des rôles à l'aide des commandes suivantes :
Exportez les variables suivantes à l'aide de la commande suivante, en remplaçant les variables par vos propres valeurs :
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"'
Remplacez les variables suivantes par vos propres valeurs :
- PROJECT_ID : nom de votre projet
- INSTANCE_ID : nom de l'instance
- REGION : région à laquelle appartient le projet
- NAMESPACE : nom de l'espace de noms
- EMAIL : adresse e-mail du compte principal
- USER_TYPE : type d'utilisateur: utilisateur, groupe ou ressource serviceAccount
Récupérez la stratégie IAM actuelle et enregistrez-la dans un fichier :
gcurl https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:getIamPolicy > iam_policy.json
Remplacez iam_policy.json par votre nom de fichier.
Ajoutez une liaison pour le rôle et l'utilisateur dans le fichier de stratégie. Par exemple, le fichier de stratégie peut ressembler à ceci :
{ "policy": { "bindings": [ { "role": "roles/ROLE_NAME", "members": [ "${USER_TYPE}:${USER_ID}" ] } ] } }
Plusieurs liaisons de rôles peuvent être spécifiées pour une stratégie donnée, et plusieurs comptes principaux peuvent être spécifiés dans la liste des membres pour une liaison de rôle donnée. Pour un compte principal donné, remplacez ROLE_NAME par l'une des valeurs suivantes :
- Pour le rôle Éditeur pour un espace de noms, utilisez
datafusion.editor
. - Pour le rôle Opérateur pour un espace de noms, utilisez
datafusion.operator
. - Pour le rôle Développeur pour un espace de noms, utilisez
datafusion.developer
. - Pour le rôle Lecteur pour un espace de noms, utilisez
datafusion.viewer
.
- Pour le rôle Éditeur pour un espace de noms, utilisez
Exécutez la commande suivante pour mettre à jour le fichier de stratégie :
gcurl -d @iam_policy.json \ https://datafusion.googleapis.com/v1beta1/projects/${PROJECT}/locations/${REGION}/instances/${INSTANCE}/namespaces/{NAMESPACE}:setIamPolicy
Remplacez iam_policy.json par votre nom de fichier.
Vérifier les rôles dans la console Google Cloud
Examiner et modifier les rôles existants sur Cloud Data Fusion Autorisations.
Vérifier les rôles avec le fichier de stratégie
Vérifiez que les rôles sont attribués aux bons utilisateurs dans le fichier de stratégie IAM à l'aide de la CLI gcloud ou de l'API REST.
Dans l'exemple de fichier de stratégie IAM suivant, l'utilisateur alice@example.com
possède le rôle Data Fusion Developer :
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=
Obtenir la stratégie IAM associée à une instance
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
Obtenir la stratégie IAM associée à un espace de noms
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
Étape suivante
- Approfondissez vos connaissances sur le contrôle des accès basé sur les rôles dans Cloud Data Fusion.