Accorder et révoquer l'accès

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

Les personas (IO, PA, AO) ne sont pas des rôles, mais des ensembles de rôles utilisateur mappés à des autorisations spécifiques et attribués à des utilisateurs individuels.

Configurer les liaisons de rôle

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

Pour obtenir les autorisations nécessaires pour configurer les liaisons de rôle, demandez à votre administrateur IAM de l'organisation de vous accorder le rôle d'administrateur IAM de l'organisation.

Pour attribuer un rôle à un membre autorisé, procédez comme suit :

Console

  1. Connectez-vous à la console GDC.
  2. Sélectionnez une organisation ou un projet dans le sélecteur de couverture.
    • Pour configurer des liaisons de rôle pour une organisation, sélectionnez-la.
    • 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. Indiquez si vous souhaitez 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 d'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é 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 la section Authentification gdcloud CLI.

  3. Configurez les liaisons de rôle.

    • Configurez des liaisons de rôle 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. Cet indicateur 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. Cet indicateur 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 identifiants utilisateur que vous utilisez :

    export GLOBAL_API_SERVER_KUBECONFIG=GLOBAL_API_SERVER_KUBECONFIG
    
  2. Exportez le compte utilisateur auquel vous souhaitez attribuer le rôle, y compris le préfixe du fournisseur d'identité (par exemple, idpprefix-paul@example.com) :

    export USERNAME=IDP_PREFIX-USER_EMAIL
    
  3. Exportez le nom du rôle dont l'utilisateur a besoin, par exemple project-creator. Consultez les définitions des rôles pour trouver le rôle correspondant.

    export ROLE_NAME=ROLE_NAME
    
  4. Exportez l'espace de noms dans lequel la liaison doit être créée :

    export BINDING_NAMESPACE=BINDING_NAMESPACE
    

    Remplacez BINDING_NAMESPACE par platform pour les rôles à l'échelle de l'organisation, ou par le nom de l'espace de noms du projet cible pour les rôles à l'échelle du projet.

    Pour obtenir la liste des rôles et de leur champ d'application, consultez Définitions des rôles.

  5. 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: ${USERNAME}
    EOF
    

Supprimer des liaisons de rôle

Lorsque l'accès n'est plus nécessaire, supprimez un membre ainsi que les rôles, autorisations et accès qui lui sont 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é 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 la section 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. Cet indicateur 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. Cet indicateur 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.

API

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

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

Remplacez les éléments suivants :

  • GLOBAL_API_SERVER_KUBECONFIG : chemin d'accès au fichier kubeconfig pour accéder au serveur d'API mondial.
  • USERNAME : compte utilisateur pour lequel vous souhaitez supprimer le rôle, y compris le préfixe du fournisseur d'identité (par exemple, idpprefix-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. Si vous révoquez l'accès d'un utilisateur, il est déconnecté de Distributed Cloud et ses rôles et autorisations sont supprimés. Vous pouvez également lister l'activité et les sessions de l'utilisateur en indiquant 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 individuelle séparément. Procédez comme suit pour chaque zone :

  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 vous souhaitez 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 Gérer les ressources dans les zones.

  2. Obtenez les autorisations nécessaires pour révoquer les utilisateurs. Demandez à votre administrateur IAM de l'organisation de vous attribuer le rôle Administrateur de session de l'organisation (org-session-admin).

  3. 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 à celui-ci 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.

  4. Confirmez 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, vous obtenez le résultat suivant :

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