Cette page explique comment configurer un service Identity and Access Management (IAM) un espace de noms dans une instance Cloud Data Fusion.
À propos des espaces de noms dans Cloud Data Fusion
Un espace de noms est un regroupement logique d'applications, de données et dans une instance Cloud Data Fusion. Vous pouvez considérer les espaces de noms comme de l'instance. Toute application ou donnée, ici appelée entity peuvent exister indépendamment dans plusieurs espaces de noms. Dans une seule instance, un espace de noms stocke les données et métadonnées d'une entité indépendamment un autre espace de noms.
Contrôle des accès avec un compte de service d'espace de noms
Pour contrôler l'accès aux ressources Google Cloud, les espaces de noms dans Cloud Data Fusion utilisent le Agent de service de l'API Cloud Data Fusion par défaut.
Pour une meilleure isolation des données, vous pouvez associer un compte de service IAM personnalisé (appelé compte de service par espace de noms) à chaque espace de noms. Le compte de service IAM personnalisé, qui peut être différent pour les différents espaces de noms, vous permet de contrôler l'accès Ressources Google Cloud entre les espaces de noms pour la conception du pipeline opérations dans Cloud Data Fusion, telles que l'aperçu du pipeline, Wrangler et la validation du pipeline.
Avant de commencer
- Les comptes de service par espace de noms sont compatibles avec les instances pour lesquelles RBAC est activé de Cloud Data Fusion 6.10.0 et versions ultérieures.
- Les comptes de service par espace de noms permettent de contrôler et de gérer l'accès aux ressources Google Cloud.
Rôles et autorisations requis
Pour obtenir les autorisations nécessaires pour personnaliser les comptes de service d'espaces de noms et accorder des autorisations aux utilisateurs dans un espace de noms,
demandez à votre administrateur de vous accorder le
Rôle IAM Administrateur Cloud Data Fusion (roles/datafusion.admin
) sur l'instance Cloud Data Fusion du projet.
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Gérer les autorisations des utilisateurs d'un espace de noms
Pour accorder aux utilisateurs les autorisations dont ils ont besoin dans un espace de noms, attribuez-leur des rôles Cloud Data Fusion prédéfinis. Pour en savoir plus, consultez les rôles Cloud Data Fusion prédéfinis disponibles pour les utilisateurs des instances pour lesquelles RBAC est activé.
Configurer un compte de service d'espace de noms
Console
Pour configurer un compte de service pour l'espace de noms, procédez comme suit:
- Si vous ne disposez d'aucun compte de service pour l'espace de noms, créez-en un.
Dans la console Google Cloud, accédez aux instances Cloud Data Fusion. et ouvrir une instance dans la session Web Cloud Data Fusion de commande.
Cliquez sur Administrateur système > Configuration > Espaces de noms.
Cliquez sur l'espace de noms que vous souhaitez configurer.
Cliquez sur l'onglet Comptes de service, puis sur Ajouter un service compte.
Attribuer le rôle d'utilisateur Workload Identity (
roles/iam.workloadIdentityUser
).Pour accorder le rôle, procédez comme suit :
- Dans le champ Compte de service de conception de pipeline, saisissez le nom du service.
l'adresse e-mail du compte Google, par exemple,
SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
- Suivez les instructions dans la boîte de dialogue qui s'affiche.
- Dans le champ Compte de service de conception de pipeline, saisissez le nom du service.
l'adresse e-mail du compte Google, par exemple,
Pour terminer la configuration du compte de service, revenez à l'espace de noms de votre instance Cloud Data Fusion, puis cliquez sur Enregistrer.
Répétez ces étapes afin de configurer un compte de service pour chaque espace de noms.
API REST
Attribuez le rôle Utilisateur Workload Identity (
roles/iam.workloadIdentityUser
).Pour accorder le rôle, procédez comme suit :
Définissez les variables d'environnement suivantes :
export TENANT_PROJECT_ID=TENANT_PROJECT export GSA_PROJECT_ID=SERVICE_ACCOUNT_PROJECT
Remplacez les éléments suivants :
TENANT_PROJECT
: ID du projet locataire. À recherchez-la, accédez à la page Instances, puis cliquez sur l'instance son nom. L'ID apparaît sur la page Détails de l'instance.SERVICE_ACCOUNT_PROJECT
: le ID du projet Google Cloud dans lequel le rôle IAM compte de service.
Attribuez le rôle d'utilisateur Workload Identity:
gcloud iam service-accounts add-iam-policy-binding \ --role roles/iam.workloadIdentityUser --member "serviceAccount:${TENANT_PROJECT_ID}.svc.id.goog[default/NAMESPACE_IDENTITY]" SERVICE_ACCOUNT_EMAIL \ --project ${GSA_PROJECT_ID}
Remplacez les éléments suivants :
NAMESPACE_IDENTITY
: identité du espace de noms. Pour en savoir plus, consultez la section Informations détaillées espace de noms.SERVICE_ACCOUNT_EMAIL
: adresse e-mail de compte de service (par exemple,SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
Validez l'adresse e-mail du compte de service d'espace de noms obtenu à l'étape précédente. Définir la
environment variables
, puis exécutez la commande suivante:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity/validate -X POST -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
Remplacez les éléments suivants :
NAMESPACE_NAME
: ID de l'espace de noms.SERVICE_ACCOUNT_EMAIL
: l'IAM l'adresse e-mail du compte de service que vous souhaitez définir dans l'espace de noms.
Définissez le compte de service d'espace de noms. Définissez le
environment variables
, puis exécutez la commande suivante :curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
Modifier un compte de service d'espace de noms
Console
Pour modifier un compte de service d'espace de noms, procédez comme suit:
- Dans votre instance Cloud Data Fusion, cliquez sur System admin (Administrateur système) > Configuration > Espaces de noms.
- Cliquez sur l'espace de noms contenant le compte de service que vous souhaitez modifier.
- Pour modifier le compte de service, accédez à l'onglet Comptes de service. À côté de le nom du compte de service, cliquez sur > Modifier. Menu
- Suivez la procédure permettant de configurer un compte de service d'espace de noms.
API REST
Pour modifier un compte de service de namespace, procédez comme suit :
Définissez
environment variables
, puis exécutez la commande suivante :curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X PUT -d '{"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}'
Remplacez les éléments suivants :
NAMESPACE_NAME
: ID de l'espace de noms.SERVICE_ACCOUNT_EMAIL
: l'IAM l'adresse e-mail du compte de service que vous souhaitez définir dans l'espace de noms.
Supprimer un compte de service d'espace de noms
Console
Pour supprimer un compte de service d'espace de noms d'un espace de noms, procédez comme suit:
- Dans votre instance Cloud Data Fusion, cliquez sur System admin (Administrateur système) > Configuration > Espaces de noms.
- Cliquez sur l'espace de noms contenant le compte de service que vous souhaitez supprimer.
- Pour supprimer le compte de service, accédez à l'onglet Comptes de service. Suivant au nom du compte de service, cliquez sur > Supprimer. Menu
API REST
Pour supprimer un compte de service d'espace de noms d'un espace de noms, procédez comme suit:
Définissez le
environment variables
, puis exécutez la commande suivante:curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X DELETE
Remplacez les éléments suivants :
NAMESPACE_NAME
: ID de l'espace de noms.
Obtenir le compte de service de l'espace de noms
Console
Pour obtenir les informations de compte de service associées à l'espace de noms, procédez comme suit : étapes:
Dans la console Google Cloud, accédez aux instances Cloud Data Fusion. et ouvrir une instance dans la session Web Cloud Data Fusion de commande.
Cliquez sur Administrateur système > Configuration > Espaces de noms.
Cliquez sur le nom d'un espace de noms pour afficher les détails du compte de service.
API REST
Pour obtenir le nom du compte de service d'espace de noms, procédez comme suit:
Définissez
environment variables
, puis exécutez la commande suivante :curl -H "Authorization: Bearer $(gcloud auth print-access-token)" ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_NAME/credentials/workloadIdentity -X GET
Remplacez les éléments suivants :
NAMESPACE_NAME
: ID de l'espace de noms.
Si l'opération réussit, vous obtenez l'adresse e-mail du compte de service dans la réponse suivante :
Response: {"serviceAccount":"SERVICE_ACCOUNT_EMAIL"}
Étape suivante
- Apprenez-en plus sur le cas d'utilisation du contrôle des accès avec des comptes de service d'espace de noms.
- Approfondissez vos connaissances sur le contrôle des accès basé sur les rôles dans Cloud Data Fusion.