Sécuriser Google Cloud Console et les API Google Cloud

L'accès contextuel pour Cloud Console et les API Google Cloud limite l'accès à Cloud Console et aux API Google Cloud à l'aide de règles contextuelles. Il s'appuie sur la suite de solutions BeyondCorp Enterprise existante (validation des points de terminaison et Access Context Manager), et permet de s'assurer que les personnes et les groupes de votre organisation répondant aux exigences d'accès définies peuvent accéder à Cloud Console et aux API Google Cloud (y compris via l'outil de ligne de commande gcloud).

Pour configurer cette fonctionnalité, procédez comme suit :

  1. [Facultatif] Déployez la validation des points de terminaison sur les appareils de votre organisation.
  2. Créez un niveau d'accès dans Access Context Manager.
  3. Créez un groupe d'utilisateurs à associer aux restrictions de BeyondCorp Enterprise.
  4. Obtenez les autorisations IAM (Identity and Access Management) requises.
  5. Créez une liaison d'accès qui applique des règles contextuelles pour Cloud Console et les API Google Cloud.

[Facultatif] Déployer la validation des points de terminaison

Cette fonctionnalité vous permet de créer un inventaire d'appareils accédant aux données de votre organisation. Dans le cadre d'une solution BeyondCorp Enterprise, elle permet également de fournir un contrôle des accès critique basé sur la sécurité et la confiance des appareils, ainsi que d'appliquer un contrôle d'accès précis sur vos ressources Google Cloud.

La validation des points de terminaison est exécutée en tant qu'extension Chrome sur les ordinateurs de bureau et les ordinateurs portables pour les utilisateurs Mac, Windows et Linux. Un administrateur peut la déployer sur les appareils détenus par l'entreprise à partir de la console d'administration Google Workspace, ou les membres de l'organisation peuvent l'installer eux-mêmes.

Créer un niveau d'accès

Vous devrez définir le niveau d'accès à utiliser pour déterminer l'accès à Cloud Console et aux API Google Cloud en créant un niveau d'accès de base dans Access Context Manager.

Créer un groupe d'utilisateurs

Créez un groupe d'utilisateurs devant être soumis à des restrictions contextuelles. Tous les utilisateurs de ce groupe, qui sont également membres de votre organisation, doivent respecter le niveau d'accès créé précédemment pour accéder à Cloud Console et aux API Google Cloud.

Accorder les autorisations IAM requises

Accordez les autorisations IAM au niveau de l'organisation qui seront nécessaires pour créer les liaisons d'accès Access Context Manager.

Console

  1. Accédez à la page IAM et administration de Cloud Console.

    Accéder à IAM et administration

  2. Cliquez sur Ajouter et configurez les éléments suivants :

    • Nouveaux membres : spécifiez l'utilisateur ou le groupe auquel vous souhaitez accorder les autorisations.
    • Sélectionner un rôle : sélectionnez Access Context Manager > Administrateur de la liaison d'accès cloud.
  3. Cliquez sur Enregistrer.

gcloud

  1. Vérifiez que vous êtes authentifié et que vous disposez des droits suffisants pour ajouter des autorisations IAM au niveau de l'organisation. Vous devez au minimum disposer du rôle d'administrateur de l'organisation.

    Après vous être assuré que vous disposez des autorisations nécessaires, connectez-vous avec :

    gcloud auth login
    
  2. Attribuez le rôle GcpAccessAdmin en exécutant la commande suivante :

    gcloud organizations add-iam-policy-binding ORG_ID \
      --member=user:EMAIL \
      --role=roles/accesscontextmanager.gcpAccessAdmin
    
    • ORG_ID est l'ID de votre organisation. Si vous ne disposez pas encore de l'ID de votre organisation, vous pouvez utiliser la commande suivante pour le trouver :

       gcloud organizations list
      
    • EMAIL est l'adresse e-mail de la personne ou du groupe auquel vous souhaitez accorder le rôle.

Créer une liaison d'accès

Vous pouvez maintenant créer une liaison d'accès, qui correspond à un mappage entre le groupe d'utilisateurs que vous avez créé précédemment et le niveau d'accès Access Context Manager que vous avez défini pour accéder à Cloud Console et aux API Google Cloud.

Console

  1. Accédez à la page BeyondCorp Enterprise dans Cloud Console.

    Accéder à BeyondCorp Enterprise

  2. Choisissez une organisation et cliquez sur Sélectionner.

  3. Cliquez sur Gérer l'accès afin de choisir les groupes d'utilisateurs auxquels vous souhaitez accorder l'accès.

  4. Cliquez sur Ajouter et configurez les éléments suivants :

    • Groupes de membres : spécifiez le groupe auquel vous souhaitez accorder l'accès. Seuls les groupes qui ne sont pas déjà liés à un niveau d'accès peuvent être sélectionnés.
    • Sélectionner les niveaux d'accès : choisissez le niveau d'accès à appliquer au groupe.
  5. Cliquez sur Enregistrer.

gcloud

Vous pouvez consulter le SDK Cloud pour plus d'informations sur cette commande, les autres commandes gcloud access-context-manager cloud-bindings, et leurs différentes options supplémentaires.

gcloud access-context-manager cloud-bindings create \
    --group-key GROUP_ID \
    --level ACCESS_LEVEL \
    --organization ORG_ID
  • Remplacez GROUP_ID par l'ID du groupe d'utilisateurs que vous avez créé précédemment.

  • ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et de ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

  • Si la propriété access-context-manager/organization n'a pas été prédéfinie, remplacez ORG_ID dans l'option facultative --organization par l'ID de l'organisation que vous avez utilisé lors de la création du rôle GcpAccessAdmin.

API

  1. Créez un corps de requête :

    {
      "groupKey": "GROUP_ID",
      "accessLevels": [ "ACCESS_LEVEL" ]
    }
    
    • Remplacez GROUP_ID par l'ID du groupe d'utilisateurs que vous avez créé précédemment.

    • ACCESS_LEVEL est au format accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME. Les valeurs de POLICY_ID et de ACCESS_LEVEL_NAME sont disponibles dans Access Context Manager à partir du moment où vous avez créé le niveau d'accès.

  2. Créez la liaison d'accès en appelant le point de terminaison gcpUserAccessBindings et en remplaçant ORG_ID par l'ID de l'organisation que vous avez utilisée lors de la création du rôle GcpAccessAdmin :

    POST https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
    

    Cette méthode renvoie une ressource GcpUserAccessBinding sous la forme d'une réponse au format suivant :

    {
      // Unique name for the access binding, in the form
      // "organizations/ORG_ID/gcpUserAccessBindings/BINDING_ID"
      name: string,
    
      // Unique Group ID.
      group_key: string,
    
      // The access level that users of the group must satisfy, in the form
      // "accessPolicies/POLICY_ID/accessLevels/ACCESS_LEVEL_NAME"
      access_levels: [ string ]
    }
    

Vérifier la réussite de l'opération

Une fois que les liaisons d'accès ont été configurées pour un groupe d'utilisateurs, l'accès à Cloud Console et aux API Google Cloud doit être contrôlé en fonction du niveau d'accès associé.

Vous pouvez vérifier que la liaison a bien été créée, la modifier ou la supprimer.

Console

Une fois que vous avez créé une liaison d'accès, toutes les liaisons d'accès de l'organisation sont affichées, et peuvent être modifiées ou supprimées si nécessaire.

gcloud

  • Pour afficher toutes les liaisons d'accès d'une organisation, procédez comme suit :

    gcloud access-context-manager cloud-bindings list \
        --organization ORG_ID
    

    Si la propriété access-context-manager/organization n'a pas été prédéfinie, remplacez ORG_ID dans l'option facultative --organization par l'ID de l'organisation que vous avez utilisé lors de la création du rôle GcpAccessAdmin.

  • Pour modifier une liaison d'accès, par exemple pour changer le niveau d'accès, utilisez la commande suivante :

    gcloud access-context-manager cloud-bindings update \
        --binding ACCESS_BINDING \
        --level ACCESS_LEVEL
    

    Remplacez ACCESS_BINDING par organizations/ORG_ID/gcpUserAccessBindings/ACCESS_BINDING_NAME, où ORG_ID est l'ID de l'organisation que vous avez utilisé lors de la création du rôle GcpAccessAdmin, et ACCESS_BINDING_NAME est la chaîne unique de l'identifiant name renvoyée lors de la création de la liaison d'accès.

    La valeur de ACCESS_LEVEL doit être mise en forme comme lorsque la liaison a été créée pour la ressource.

  • Pour supprimer une liaison d'accès spécifique, utilisez la commande suivante :

    gcloud access-context-manager cloud-bindings delete \
        --binding ACCESS_BINDING
    

    Formatez la valeur de ACCESS_BINDING de la même façon que dans la commande de modification d'une liaison d'accès.

API

  • Pour afficher toutes les liaisons d'accès d'une organisation, procédez comme suit :

    GET https://accesscontextmanager.googleapis.com/v1/organizations/ORG_ID/gcpUserAccessBindings
    

    Cela renvoie une liste de ressources GcpUserAccessBinding.

  • Pour modifier une liaison d'accès, telle que modifier le niveau d'accès, créez un corps de requête qui définit la modification, puis appelez le point de terminaison avec le nom de la ressource :

    {
      "accessLevels": [ "ACCESS_LEVEL" ]
    }
    

    Formatez la valeur de ACCESS_LEVEL comme lors de la création de la liaison pour la ressource.

    PATCH https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME?update_mask=access_levels
    

    Remplacez ACCESS_BINDING_NAME par la chaîne unique de l'identifiant name renvoyée lors de la création de la liaison d'accès.

  • Pour supprimer une ressource GcpUserAccessBinding particulière, appelez le point de terminaison avec le nom de la ressource :

    DELETE https://accesscontextmanager.googleapis.com/v1/ACCESS_BINDING_NAME
    

    Remplacez ACCESS_BINDING_NAME par la chaîne unique de l'identifiant name renvoyée lors de la création de la liaison d'accès.

Questions fréquentes

  • Combien de temps faut-il pour qu'une liaison d'accès nouvellement créée soit prise en compte ?

    Cette opération peut prendre jusqu'à 24 heures.

  • Que se passe-t-il si je supprime un groupe doté d'une liaison d'accès ?

    Le groupe et la liaison sont supprimés, et tous les utilisateurs du groupe sont autorisés à accéder.

  • Que se passe-t-il si je supprime le niveau d'accès utilisé dans une liaison d'accès ?

    Le niveau d'accès ne peut jamais être satisfait, et tous les utilisateurs du groupe doté d'une liaison d'accès se voient refuser l'accès.

  • Que se passe-t-il lorsqu'un utilisateur appartient à plusieurs groupes qui ont des liaisons d'accès ?

    L'utilisateur doit seulement respecter le niveau d'accès de l'un de ces groupes pour obtenir l'accès.

  • Qu'en est-il des utilisateurs qui ne font pas partie de mon organisation ?

    Les personnes extérieures à votre organisation, même si vous les avez ajoutées au groupe d'utilisateurs qui doivent être liés par des restrictions contextuelles, ne sont pas soumises à la liaison d'accès.

Étape suivante