Accorder et révoquer l'accès

Chaque sujet (utilisateur ou groupe) doit suivre une procédure en deux étapes pour accéder au serveur d'API global. Accorder des autorisations à un sujet dans le serveur d'API global à l'aide de IAMRoleBinding à un IAMRole prédéfini. Tous les rôles et liaisons de rôle sont globaux.

Cette page s'adresse aux audiences du groupe d'administrateurs de plate-forme qui gèrent les autorisations au sein de leur organisation. Pour en savoir plus, consultez la documentation sur les audiences pour GDC sous air gap.

Avant de commencer

Avant de gérer les liaisons de rôle ou de révoquer l'accès, vous devez demander les autorisations nécessaires et préparer votre environnement. Les rôles spécifiques requis dépendent de si vous gérez les liaisons de rôle ou si vous révoquez l'accès des utilisateurs.

Demander des rôles IAM

Contactez l'administrateur IAM de votre organisation pour demander les rôles en fonction des tâches que vous devez effectuer :

  • Administrateur IAM de l'organisation (organization-iam-admin) : créez, modifiez et supprimez des liaisons de rôle au niveau de l'organisation et du projet.
  • Administrateur de session de l'organisation (org-session-admin) : révoque les sessions actives et l'accès d'un utilisateur dans une zone spécifique.

Préparer votre environnement

Pour utiliser les outils de ligne de commande permettant de gérer les liaisons de rôle ou de révoquer l'accès, effectuez la configuration suivante.

Configurer les liaisons de rôles

Vous pouvez configurer des liaisons de rôles qui donnent aux membres de l'équipe accès aux ressources au niveau de l'organisation ou du projet.

Attribuez un rôle à un membre autorisé :

Console

  1. Connectez-vous à la console GDC.
  2. Sélectionnez une organisation ou un projet dans le sélecteur de champ d'application.
    • Pour configurer des liaisons de rôle pour une organisation, sélectionnez-en une.
    • Pour configurer des liaisons de rôle pour un projet, sélectionnez-le.
  3. Dans le menu de navigation, cliquez sur Identité et accès > Accès.
  4. Cliquez sur Ajouter un membre.
  5. Choisissez d'ajouter des utilisateurs individuels ou des groupes.
  6. Dans la liste Fournisseur d'identité, sélectionnez un fournisseur d'identité.
  7. Dans le champ Nom d'utilisateur ou alias de groupe, saisissez le nom d'utilisateur, l'adresse e-mail ou l'alias.
  8. Dans la liste Rôle, sélectionnez le rôle que vous souhaitez attribuer à l'utilisateur ou au groupe, par exemple Lecteur de l'organisation au niveau de l'organisation ou Créateur de projet au niveau du projet.
  9. Cliquez sur Ajouter.

Le membre apparaît dans la liste Membre autorisé.

gdcloud

  1. Assurez-vous d'avoir installé la gdcloud CLI.

  2. Connectez-vous à l'aide de la commande gdcloud auth login pour vous authentifier auprès de votre fournisseur d'identité. Pour en savoir plus, consultez l'authentification gdcloud CLI.

  3. Configurez les liaisons de rôles.

    • Configurez des liaisons de rôles pour une organisation :

      gdcloud organizations add-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Remplacez les variables suivantes :

      • ORGANIZATION : nom de l'organisation pour laquelle vous configurez l'association de rôle.
      • USER_ACCOUNT : compte utilisateur auquel vous souhaitez attribuer le rôle. Ce paramètre accepte une adresse e-mail d'utilisateur avec le préfixe du fournisseur d'identité (user:idpprefix-user@example.com) ou un nom de compte de service avec le projet de compte de service (serviceAccount:projectName:serviceAccountName).
      • ROLE : nom du rôle prédéfini ou personnalisé que vous souhaitez attribuer à l'utilisateur.
    • Configurez des liaisons de rôle pour un projet :

      gdcloud projects add-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Remplacez les variables suivantes :

      • PROJECT : nom du projet pour lequel vous configurez l'association de rôle.
      • USER_ACCOUNT : compte utilisateur auquel vous souhaitez attribuer le rôle. Ce paramètre accepte une adresse e-mail d'utilisateur avec le préfixe du fournisseur d'identité (user:idpprefix-user@example.com) ou un nom de compte de service avec le projet de compte de service (serviceAccount:projectName:serviceAccountName).
      • ROLE : nom du rôle prédéfini ou personnalisé que vous souhaitez attribuer à l'utilisateur.

API

  1. Exportez les variables d'environnement pour la liaison de rôle :

    export GLOBAL_API_SERVER_KUBECONFIG=GLOBAL_API_SERVER_KUBECONFIG
    export USERNAME=IDP_PREFIX-USERNAME
    export ROLE_NAME=ROLE_NAME
    export BINDING_NAMESPACE=BINDING_NAMESPACE
    export USER_EMAIL=IDP_PREFIX-USER_EMAIL
    

    Remplacez les éléments suivants :

    • GLOBAL_API_SERVER_KUBECONFIG : chemin d'accès au fichier kubeconfig pour le serveur d'API global.
    • IDP_PREFIX : préfixe du fournisseur d'identité.
    • USERNAME : nom d'utilisateur de l'adresse e-mail de l'utilisateur avant le symbole @ (par exemple, paul dans paul@example.com).
    • ROLE_NAME : nom du rôle dont l'utilisateur a besoin (par exemple, project-creator). Consultez Définitions des rôles pour obtenir la liste des rôles et de leur portée.
    • BINDING_NAMESPACE : platform pour les rôles à portée d'organisation, ou le nom de l'espace de noms du projet cible pour les rôles à portée de projet.
    • USER_EMAIL : adresse e-mail du compte utilisateur auquel vous souhaitez attribuer le rôle (par exemple, paul@example.com).
  2. Créez et appliquez une ressource personnalisée IAMRoleBinding :

    cat <<EOF | kubectl --kubeconfig ${GLOBAL_API_SERVER_KUBECONFIG} apply -f -
    apiVersion: iam.global.gdc.goog/v1
    kind: IAMRoleBinding
    metadata:
      name: ${USERNAME}-${ROLE_NAME}-binding
      namespace: ${BINDING_NAMESPACE}
    spec:
      roleRef:
        apiGroup: iam.global.gdc.goog
        kind: IAMRole
        name: ${ROLE_NAME}
      subjects:
      - apiGroup: rbac.authorization.k8s.io
        kind: User
        name: ${USER_EMAIL}
    EOF
    

Supprimer des liaisons de rôle

Lorsque l'accès n'est plus nécessaire, supprimez le membre, ainsi que les rôles, autorisations et accès associés.

Pour supprimer des membres, procédez comme suit :

Console

  1. Connectez-vous à la console GDC.
  2. Dans le menu de navigation, cliquez sur Identité et accès > Accès.
  3. Dans la liste Membres autorisés, sélectionnez un membre.
  4. Cliquez sur Supprimer le membre.
  5. Lorsque vous y êtes invité, cliquez sur Supprimer le membre pour confirmer.

gdcloud

  1. Assurez-vous d'avoir installé la gdcloud CLI.

  2. Connectez-vous à l'aide de la commande gdcloud auth login pour vous authentifier auprès de votre fournisseur d'identité. Pour en savoir plus, consultez l'authentification gdcloud CLI.

  3. Supprimez les liaisons de rôle.

    • Supprimez les liaisons de rôle pour une organisation :

      gdcloud organizations remove-iam-policy-binding ORGANIZATION \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Remplacez les variables suivantes :

      • ORGANIZATION : nom de l'organisation à partir de laquelle vous supprimez l'association de rôle.
      • USER_ACCOUNT : compte utilisateur dont vous souhaitez supprimer le rôle. Ce paramètre accepte une adresse e-mail d'utilisateur avec le préfixe du fournisseur d'identité (user:idpprefix-user@example.com) ou un nom de compte de service avec le projet de compte de service (serviceAccount:projectName:serviceAccountName).
      • ROLE : nom du rôle prédéfini ou personnalisé que vous souhaitez supprimer du compte utilisateur.
    • Supprimez les liaisons de rôle pour un projet :

      gdcloud projects remove-iam-policy-binding PROJECT \
        --member=USER_ACCOUNT \
        --role=ROLE
      

      Remplacez les variables suivantes :

      • PROJECT : nom du projet à partir duquel vous supprimez l'association de rôle.
      • USER_ACCOUNT : compte utilisateur dont vous souhaitez supprimer le rôle. Ce paramètre accepte une adresse e-mail d'utilisateur avec le préfixe du fournisseur d'identité (user:idpprefix-user@example.com) ou un nom de compte de service avec le projet de compte de service (serviceAccount:projectName:serviceAccountName).
      • ROLE : nom du rôle prédéfini ou personnalisé que vous souhaitez supprimer du compte utilisateur.

kubectl

Supprimez IAMRoleBinding pour révoquer l'autorisation accordée au compte PA :

kubectl --kubeconfig GLOBAL_API_SERVER_KUBECONFIG \
delete iamrolebinding IDP_PREFIX-USERNAME-ROLE_NAME-binding -n BINDING_NAMESPACE

Remplacez les éléments suivants :

  • GLOBAL_API_SERVER_KUBECONFIG : chemin d'accès au fichier kubeconfig pour le serveur d'API global.
  • IDP_PREFIX : préfixe du fournisseur d'identité.
  • USERNAME : nom d'utilisateur de l'adresse e-mail de l'utilisateur avant le symbole @ (par exemple, paul dans paul@example.com).
  • ROLE_NAME : nom du rôle que vous souhaitez supprimer, par exemple project-creator.
  • BINDING_NAMESPACE : remplacez par platform pour les rôles à portée d'organisation ou par le nom de l'espace de noms du projet cible pour les rôles à portée de projet.

Révoquer l'accès d'un utilisateur

Si un membre quitte votre organisation ou votre équipe, vous pouvez révoquer son accès à Google Distributed Cloud (GDC) air-gapped. La révocation de l'accès d'un utilisateur le déconnecte de Distributed Cloud et supprime ses rôles et autorisations. Vous pouvez également lister l'activité et les sessions de l'utilisateur à partir de leur heure de début et de fin.

Pour révoquer l'accès d'un utilisateur à un univers GDC, vous devez révoquer l'accès à chaque zone individuellement. Pour chaque zone, procédez comme suit :

  1. Assurez-vous d'être connecté à la zone pour laquelle vous souhaitez révoquer l'accès. Par exemple, définissez la configuration de l'URL zonale pour la CLI gdcloud, puis connectez-vous :

    gdcloud config set organization_console_url ZONE_URL
    gdcloud auth login
    

    Remplacez ZONE_URL par l'URL de la console GDC pour la zone pour laquelle révoquer l'accès utilisateur, qui ressemble à https://console.ORG_NAME.ZONE_NAME.ORG_SUFFIX.

    Pour en savoir plus sur le changement de contexte zonal, consultez Accéder aux zones avec vos outils.

  2. Révoquez l'accès de l'utilisateur à la zone :

    gdcloud admin auth revoke --accounts USER_EMAIL
    

    Remplacez USER_EMAIL par l'adresse e-mail de l'utilisateur dont vous souhaitez révoquer l'accès.

    Une fois la commande exécutée, un résultat semblable à ce qui suit s'affiche. Cet exemple révoque l'accès de l'utilisateur ariel@example.com :

    Success: NUMBER of sessions revoked for user ariel@example.com
    

    Dans cet exemple, la variable NUMBER fait référence au nombre de sessions actives de l'utilisateur.

  3. Vérifiez que vous avez révoqué l'accès de l'utilisateur en exécutant à nouveau la commande gdcloud admin auth revoke. Si l'opération réussit, le résultat suivant s'affiche :

    No sessions found for account: ariel@example.com
    
  4. Répétez les étapes précédentes pour chaque zone de votre univers.