Contrôle des accès avec un compte de service d'espace de noms

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:

  1. Si vous ne disposez d'aucun compte de service pour l'espace de noms, créez-en un.
  2. 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.

    Accéder à la page "Instances"

  3. Cliquez sur Administrateur système > Configuration > Espaces de noms.

  4. Cliquez sur l'espace de noms que vous souhaitez configurer.

  5. Cliquez sur l'onglet Comptes de service, puis sur Ajouter un service compte.

    Bouton "Add Service Account" (Ajouter un compte de service).

  6. Attribuer le rôle d'utilisateur Workload Identity (roles/iam.workloadIdentityUser).

    Pour accorder le rôle, procédez comme suit :

    1. 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
    2. Suivez les instructions dans la boîte de dialogue qui s'affiche.
  7. Pour terminer la configuration du compte de service, revenez à l'espace de noms de votre instance Cloud Data Fusion, puis cliquez sur Enregistrer.

  8. Répétez ces étapes afin de configurer un compte de service pour chaque espace de noms.

API REST

  1. Attribuez le rôle Utilisateur Workload Identity (roles/iam.workloadIdentityUser).

    Pour accorder le rôle, procédez comme suit :

    1. 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.

        Accéder à la page "Instances"

      • SERVICE_ACCOUNT_PROJECT: le ID du projet Google Cloud dans lequel le rôle IAM compte de service.

    2. 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

  2. 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.
  3. 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:

  1. Dans votre instance Cloud Data Fusion, cliquez sur System admin (Administrateur système) > Configuration > Espaces de noms.
  2. Cliquez sur l'espace de noms contenant le compte de service que vous souhaitez modifier.
  3. Pour modifier le compte de service, accédez à l'onglet Comptes de service. À côté de le nom du compte de service, cliquez sur Menu > Modifier.
  4. 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 :

  1. 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:

  1. Dans votre instance Cloud Data Fusion, cliquez sur System admin (Administrateur système) > Configuration > Espaces de noms.
  2. Cliquez sur l'espace de noms contenant le compte de service que vous souhaitez supprimer.
  3. Pour supprimer le compte de service, accédez à l'onglet Comptes de service. Suivant au nom du compte de service, cliquez sur Menu > Supprimer.

API REST

Pour supprimer un compte de service d'espace de noms d'un espace de noms, procédez comme suit:

  1. 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:

  1. 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.

    Accéder à la page "Instances"

  2. Cliquez sur Administrateur système > Configuration > Espaces de noms.

  3. 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:

  1. 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