Applications client-serveur sécurisées

Sécuriser les applications client-serveur avec le connecteur client

Présentation

BeyondCorp Enterprise est la solution zéro confiance de Google Cloud qui fournit un accès sécurisé à des applications privées avec une protection intégrée contre les menaces et la compromission des données. BeyondCorp Enterprise utilise Chrome pour fournir un accès sécurisé à toutes les applications Web (HTTPS).

Le connecteur client BeyondCorp Enterprise étend la compatibilité aux applications non Web en créant une connexion sécurisée aux applications s'exécutant à la fois dans des environnements Google Cloud et autres que Google Cloud, avec un contexte complet et un accès basé sur l'identité.

Fonctionnement

Le schéma suivant fournit une vue d'ensemble de l'architecture du connecteur client.

Composants des connecteurs client BeyondCorp Enterprise

Voici les principaux composants du connecteur client:

Endpoint Verification et agent client: le connecteur client s'intègre à Endpoint Verification, une extension Chrome dotée d'un agent léger natif qui s'exécute sur les ordinateurs portables ou de bureau des utilisateurs, et fournit des informations sur les appareils. Endpoint Verification sert également de plan de contrôle pour que l'utilisateur final démarre et arrête les connexions aux passerelles clientes.

Passerelles clientes: composants régionaux côté serveur auxquels les clients peuvent se connecter. Les passerelles clientes sont déployées par les administrateurs. Les passerelles communiquent avec le système d'application de BeyondCorp Enterprise pour appliquer les vérifications contextuelles. Le système d'application de BeyondCorp Enterprise utilise Identity-Aware Proxy et Access Context Manager, un moteur flexible de règles zéro confiance BeyondCorp Enterprise.

Le connecteur client envoie du trafic à vos applications protégées depuis un utilisateur final, un client ou des appareils via un canal sécurisé ou une passerelle. Vous pouvez vous connecter à des applications Web et non Web exécutées dans Google Cloud ou en dehors de Google Cloud. Vous pouvez utiliser Cloud VPN ou Cloud Interconnect pour vous connecter à vos applications extérieures à Google Cloud.

Avant de commencer

Avant d'activer le connecteur client BeyondCorp Enterprise, assurez-vous de disposer des éléments suivants:

Activer le connecteur client BeyondCorp Enterprise

Configurer l'accès aux services privés

Le connecteur client utilise l'accès aux services privés pour permettre la connectivité entre le réseau VPC géré par Google et le réseau VPC consommateur. Cela garantit que le trafic des utilisateurs est acheminé vers le réseau VPC consommateur.

Console

  1. L'accès aux services privés nécessite la réservation d'une plage d'adresses IP afin d'éviter tout conflit d'adresses IP entre votre réseau VPC et le réseau VPC géré par Google. Pour allouer une plage d'adresses IP, procédez comme suit:

    1. Accédez à la page "Réseaux VPC" dans Google Cloud Console.
      Accéder à la page "Réseaux VPC"

    2. Sélectionnez le réseau VPC connecté à votre application.

    3. Sélectionnez l'onglet Connexion au service privé.

    4. Dans l'onglet Connexion de service privée, sélectionnez l'onglet Plages d'adresses IP allouées pour les services.

    5. Cliquez sur Allouer une plage d'adresses IP.

    6. Saisissez un nom et une description pour la plage d'adresses IP à allouer.

    7. Spécifiez une plage d'adresses IP pour l'allocation :

      • Pour spécifier une plage d'adresses IP, sélectionnez Personnalisée, puis saisissez un bloc CIDR, tel que 192.168.0.0/16.
      • Pour spécifier une longueur de préfixe et laisser Google sélectionner une plage disponible, sélectionnez Automatique, puis saisissez une longueur de préfixe, telle que 16.

      Spécifiez un réseau d'au moins /24.

    8. Cliquez sur Allouer pour créer la plage allouée.

  2. Créez une connexion d'appairage de réseaux VPC en procédant comme suit:

    1. Accédez à la page "Réseaux VPC" dans Google Cloud Console.
      Accéder à la page "Réseaux VPC"
    2. Sélectionnez le réseau VPC connecté à votre application.
    3. Sélectionnez l'onglet Connexion au service privé.
    4. Dans l'onglet Connexion au service privé, sélectionnez l'onglet Connexions privées aux services.
    5. Cliquez sur Créer une connexion pour créer une connexion privée entre votre réseau et le service du connecteur client.
    6. Dans la fenêtre qui s'affiche, conservez la valeur par défaut pour Producteur de services connecté. Dans le champ Allocation attribuée, sélectionnez la plage que vous avez créée à l'étape précédente.
    7. Cliquez sur Connecter pour créer la connexion.
  3. Créez une règle de pare-feu.

    1. Dans Google Cloud Console, accédez à la page Pare-feu.
      Accéder à la page "Pare-feu"
    2. Cliquez sur Créer une règle de pare-feu.
    3. Entrez un nom pour la règle de pare-feu.
      Ce nom doit être unique au projet.
    4. Facultatif: Vous pouvez activer la journalisation des règles de pare-feu :
      • Cliquez sur Journaux > Activé.
      • Pour omettre les métadonnées, développez Détails des journaux, puis décochez la case Inclure les métadonnées.
    5. Spécifiez le réseau connecté à votre application.
    6. Spécifiez la priorité de la règle. Plus le nombre est faible, plus la priorité est élevée.
    7. Pour le champ Sens du trafic, sélectionnez Entrée.
    8. Dans Action en cas de correspondance, sélectionnez Autoriser.
    9. Pour les Cibles, sélectionnez Toutes les instances du réseau.
    10. Dans le champ Filtre source, sélectionnez Plages IPv4, puis saisissez les valeurs address et prefixLength de l'étape 1 pour représenter la plage d'adresses IP allouée au format CIDR. Utilisez le format 0.0.0.0/0 pour toute source IPv4.
    11. Dans Protocoles et ports, sélectionnez Tout autoriser pour que la règle s'applique à tous les protocoles et ports de destination.
    12. Cliquez sur CRÉER.

gcloud

  1. L'accès aux services privés nécessite la réservation d'une plage d'adresses IP afin d'éviter tout conflit d'adresses IP entre votre réseau VPC et le réseau VPC géré par Google. Exécutez la commande suivante pour allouer une plage d'adresses IP:

    gcloud compute addresses create RESERVED_RANGE \
      --network=CONSUMER_NETWORK \
      --project=CONSUMER_PROJECT \
      --prefix-length=16 \
      --purpose=VPC_PEERING \
      --global
    

    Remplacez les éléments suivants :

    • RESERVED_RANGE: nom de la plage d'adresses IP à réserver pour l'appairage VPC. Le nom ne peut contenir que des lettres minuscules, des chiffres et des traits d'union.
    • CONSUMER_NETWORK: nom du réseau VPC connecté à l'application.
    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  2. Créez la connexion d'appairage de VPC.

    gcloud services vpc-peerings connect \
      --network=CONSUMER_NETWORK \
      --project=CONSUMER_PROJECT \
      --ranges=RESERVED_RANGE \
      --service="servicenetworking.googleapis.com"
    

    Remplacez les éléments suivants :

    • CONSUMER_NETWORK: nom du réseau VPC connecté à l'application.
    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
    • RESERVED_RANGE: nom de votre plage réservée pour l'appairage de VPC.
  3. Obtenez les détails de la plage d'adresses IP allouée.

    gcloud compute addresses describe RESERVED_RANGE \
      --global \
      --project=CONSUMER_PROJECT
    

    Remplacez les éléments suivants :

    • RESERVED_RANGE: nom de votre plage réservée pour l'appairage de VPC.
    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  4. Utilisez les valeurs address et prefixLength issues de la sortie de l'étape précédente pour représenter la plage d'adresses IP allouée au format CIDR, puis créez une règle de pare-feu.

    gcloud compute firewall-rules create "allow-peered-ingress" \
      --network=CONSUMER_NETWORK \
      --project=CONSUMER_PROJECT \
      --direction ingress \
      --action allow \
      --source-ranges={Allocated IP range in CIDR format i.e. address/prefixLength} \
      --rules=all
    

    Remplacez les éléments suivants :

    • CONSUMER_NETWORK: nom du réseau VPC connecté à l'application.
    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.

Pour en savoir plus sur la configuration des règles de pare-feu, consultez la page Utiliser des règles de pare-feu VPC.

Configurer les ressources du connecteur client

Vous devez configurer deux types de ressources:

  • Service de connecteur client: définit une configuration commune pour un groupe de passerelles clientes.
  • Passerelle cliente: fait référence au service du connecteur client et contrôle les régions dans lesquelles vous souhaitez gérer le trafic utilisateur.

Vous ne pouvez utiliser qu'un seul service de connecteur client par domaine et une passerelle cliente par région et par service de connecteur client. De plus, vous ne pouvez utiliser que les régions suivantes pour héberger votre service de connecteur client et vos ressources de passerelle: asia-east1, europe-west1, us-east1 et us-central1.

Créer le service du connecteur client

Console

  1. Accédez à la page d'administration d'IAP.

    Accéder à IAP

  2. Cliquez sur CONNECTEURS > ACTIVER LE CONNECTEUR CLIENT.

  3. Indiquez le réseau VPC qui recevra le trafic provenant des clients gérés.

  4. Sélectionnez les régions auxquelles vos clients peuvent se connecter. Notez que les passerelles clientes sont créées à cette étape. Vous n'avez donc pas besoin de les créer dans la procédure Créer, vérifier ou supprimer des passerelles clientes.

  5. Saisissez la plage d'adresses IP des applications auxquelles vous souhaitez que le connecteur client puisse accéder.

  6. Cliquez sur ACTIVER LE CONNECTEUR CLIENT. La création du connecteur peut prendre plusieurs minutes.

gcloud

Exécutez la commande suivante :

gcloud beta beyondcorp client-connector services create CLIENT_CONNECTOR_SERVICE_NAME \
  --project=CONSUMER_PROJECT \
  --location=SERVICE_LOCATION \
  --config-from-file=/path/to/file/config.json

config.json est:

   {
     "ingress": {
       "config": {
         "transportProtocol": "TCP",
         "destinationRoutes": [{
           "address": "DESTINATION_ADDRESS",
           "netmask": "DESTINATION_MASK"
         }]
       }
     },
     "egress": {
       "peeredVpc": {
         "networkVpc": "projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK"
       }
     }
   }

Remplacez les éléments suivants :

  • CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
  • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  • SERVICE_LOCATION: région dans laquelle créer le service de connecteur client. Vous pouvez indiquer que l'une des régions suivantes est acceptée: asia-east1, europe-west1, us-east1 ou us-central1.
  • DESTINATION_ADDRESS: adresse hôte du sous-réseau de destination hébergeant l'application. Par exemple, si votre application utilise 10.0.0.0/28, l'adresse est 10.0.0.0.
  • DESTINATION_MASK: masque de réseau du sous-réseau de destination hébergeant l'application. Par exemple, si votre application utilise 10.0.0.0/28, le masque est 255.255.255.240.
  • CONSUMER_NETWORK: nom du réseau VPC connecté à l'application.

API

Exécutez la commande suivante :

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @config.json \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices?client_connector_service_id=CLIENT_CONNECTOR_SERVICE_NAME

config.json est:

   {
     "ingress": {
       "config": {
         "transportProtocol": "TCP",
         "destinationRoutes": [{
           "address": "DESTINATION_ADDRESS",
           "netmask": "DESTINATION_MASK"
         }]
       }
     },
     "egress": {
       "peeredVpc": {
         "networkVpc": "projects/CONSUMER_PROJECT/global/networks/CONSUMER_NETWORK"
       }
     }
   }

Remplacez les éléments suivants :

  • DESTINATION_ADDRESS: adresse hôte du sous-réseau de destination hébergeant l'application. Par exemple, si votre application utilise 10.0.0.0/28, l'adresse est 10.0.0.0.
  • DESTINATION_MASK: masque de réseau du sous-réseau de destination hébergeant l'application. Par exemple, si votre application utilise 10.0.0.0/28, le masque est 255.255.255.240.
  • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  • CONSUMER_NETWORK: nom du réseau VPC connecté à l'application.
  • SERVICE_LOCATION: région dans laquelle créer le service de connecteur client.
  • CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.

Vérifier que le service du connecteur client a été créé en répertoriant le service

Console

  1. Accédez à la page d'administration d'IAP.

    Accéder à IAP

  2. Cliquez sur CONNECTEURS. Votre connecteur doit figurer dans la section Connecteur client et doit comporter une coche verte pour indiquer son état.

gcloud

Exécutez la commande suivante :

gcloud beta beyondcorp client-connector services list \
  --project=CONSUMER_PROJECT \
  --location=SERVICE_LOCATION

Remplacez les éléments suivants :

  • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  • SERVICE_LOCATION: région dans laquelle créer le service de connecteur client.

API

Exécutez la commande suivante :

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices

Remplacez les éléments suivants :

  • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.

Facultatif: Mettre à jour un service de connecteur client

Console

Mettez à jour les routes de destination en procédant comme suit:

  1. Accédez à la page d'administration d'IAP.

    Accéder à IAP

  2. Cliquez sur CONNECTEURS.

  3. Dans la section Connecteur client, cliquez sur l'icône en forme de crayon à côté du connecteur client que vous souhaitez mettre à jour.

  4. Saisissez les nouvelles adresses hôtes et masques de réseau des sous-réseaux de destination hébergeant les applications, puis cliquez sur METTRE À JOUR LE CONNECTEUR CLIENT.

gcloud

Mettez à jour les routes de destination en exécutant la commande suivante:

gcloud beta beyondcorp client-connector services update CLIENT_CONNECTOR_SERVICE_NAME \
  --project=CONSUMER_PROJECT \
  --location=SERVICE_LOCATION \
  --config-from-file=/path/to/file/config.json

config.json est:

{
  "ingress":{
    "config":{
      "destinationRoutes":[
        {
          "address":"NEW_DESTINATION_ADDRESS1",
          "netmask":"NEW_DESTINATION_MASK1"
        },
        {
          "address":"NEW_DESTINATION_ADDRESS2",
          "netmask":"NEW_DESTINATION_MASK2"
        }
      ]
    }
  }
}

Remplacez les éléments suivants :

  • CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
  • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.
  • NEW_DESTINATION_ADDRESS1 et NEW_DESTINATION_ADDRESS2 : nouvelles adresses hôtes des sous-réseaux de destination hébergeant les applications.
  • NEW_DESTINATION_MASK1 et NEW_DESTINATION_MASK2: nouveaux masques de réseau pour les sous-réseaux de destination.

API

Pour mettre à jour les routes de destination, exécutez la commande suivante:

curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d @update.json \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME?update_mask=ingress.config.destinationRoutes

update.json correspond à :

{
  "ingress":{
    "config":{
      "destinationRoutes":[
        {
          "address":"NEW_DESTINATION_ADDRESS1",
          "netmask":"NEW_DESTINATION_MASK1"
        },
        {
          "address":"NEW_DESTINATION_ADDRESS2",
          "netmask":"NEW_DESTINATION_MASK2"
        }
      ]
    }
  }
}

Remplacez les éléments suivants :

  • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.
  • CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
  • NEW_DESTINATION_ADDRESS1 et NEW_DESTINATION_ADDRESS2 : nouvelles adresses hôtes des sous-réseaux de destination hébergeant les applications.
  • NEW_DESTINATION_MASK1 et NEW_DESTINATION_MASK2: nouveaux masques de réseau pour les sous-réseaux de destination.

Facultatif: Supprimer un service de connecteur client

Console

  1. Accédez à la page d'administration d'IAP.

    Accéder à IAP

  2. Cliquez sur CONNECTEURS.

  3. Dans la section Connecteur client, cliquez sur l'icône de corbeille pour supprimer le service du connecteur client et les passerelles. Cette opération peut prendre plusieurs minutes.

gcloud

Exécutez la commande suivante :

gcloud beta beyondcorp client-connector services delete CLIENT_CONNECTOR_SERVICE_NAME \
  --project CONSUMER_PROJECT \
  --location SERVICE_LOCATION

Remplacez les éléments suivants :

  • CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
  • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.

API

Exécutez la commande suivante :

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME

Remplacez les éléments suivants :

  • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
  • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.
  • CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.

Créer, vérifier ou supprimer des passerelles clientes

Console

  1. Si vous utilisez la console pour configurer le connecteur client, les passerelles clientes sont créées lors de la création du service de connecteur client, lors d'une étape précédente.

  2. Pour vérifier que les passerelles clientes sont opérationnelles:

    1. Accédez à la page d'administration d'IAP.

      Accéder à IAP

    2. Cliquez sur CONNECTEURS. Le connecteur et les passerelles associées doivent figurer dans la section Connecteur client et comporter une coche verte pour indiquer leur état.
  3. Facultatif: Pour supprimer une passerelle client, procédez comme suit.

    1. Accédez à la page d'administration d'IAP.

      Accéder à IAP

    2. Cliquez sur CONNECTEURS.

    3. Dans la section Connecteur client, cliquez sur l'icône en forme de crayon à côté du connecteur client pour lequel vous souhaitez supprimer une passerelle.

    4. Supprimez une région du service du connecteur en décochant la case correspondant à la région dans la liste déroulante Régions de passerelle, puis cliquez sur METTRE À JOUR LE CONNECTEUR CLIENT.

gcloud

  1. Créer une passerelle client

    gcloud beta beyondcorp client-connector gateways create CLIENT_GATEWAY_NAME \
      --project CONSUMER_PROJECT \
      --location GATEWAY_LOCATION \
      --client-connector-service \
      projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME
    

    Remplacez les éléments suivants :

    • CLIENT_GATEWAY_NAME: nom de votre passerelle cliente.
    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
    • GATEWAY_LOCATION: région dans laquelle créer la passerelle cliente.
    • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.
    • CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
  2. Vérifiez que les passerelles clientes sont opérationnelles.

    gcloud beta beyondcorp client-connector gateways list \
      --project CONSUMER_PROJECT \
      --location GATEWAY_LOCATION
    

    Remplacez les éléments suivants :

    • CONSUMER_PROJECT: ID de votre projet qui héberge CONSUMER_NETWORK.
    • GATEWAY_LOCATION: région dans laquelle se trouve la passerelle cliente.
  3. (Facultatif) Supprimez une passerelle client.

    gcloud beta beyondcorp client-connector gateways delete CLIENT_GATEWAY_NAME \
      --project CONSUMER_PROJECT \
      --location GATEWAY_LOCATION
    

    Remplacez les éléments suivants :

    • CLIENT_GATEWAY_NAME: nom de votre passerelle cliente.
    • CONSUMER_PROJECT: ID de votre projet qui héberge CONSUMER_NETWORK.
    • GATEWAY_LOCATION: région dans laquelle se trouve la passerelle cliente.

API

  1. Exécutez la commande suivante :

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d "{client_connector_service: \"projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME\"}" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways?client_gateway_id=CLIENT_GATEWAY_NAME
    

    Remplacez les éléments suivants :

    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
    • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.
    • CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
    • GATEWAY_LOCATION: région dans laquelle créer la passerelle cliente.
    • CLIENT_GATEWAY_NAME: nom de votre passerelle cliente.

    Cette étape peut prendre quelques minutes.

  2. Vérifiez que les passerelles clientes sont opérationnelles.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways
    

    Remplacez les éléments suivants :

    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
    • GATEWAY_LOCATION: région dans laquelle se trouve la passerelle cliente.
  3. (Facultatif) Supprimez une passerelle client.

    curl -X DELETE \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/GATEWAY_LOCATION/clientGateways/CLIENT_GATEWAY_NAME
    

    Remplacez les éléments suivants :

    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
    • GATEWAY_LOCATION: région dans laquelle se trouve la passerelle du connecteur client.
    • CLIENT_GATEWAY_NAME: nom de votre passerelle cliente.

Configurer des règles d'accès contextuel

  1. Déterminez les comptes principaux ou créez un groupe d'utilisateurs. Identifiez les utilisateurs qui ont besoin d'accéder aux applications non Web protégées. Vous pouvez également créer un groupe d'utilisateurs pour simplifier la configuration et la gestion.

  2. Facultatif: créez un niveau d'accès dans Access Context Manager pour définir une règle contextuelle, que vous pouvez utiliser pour restreindre l'accès à votre application.

  3. Configurez une stratégie IAM pour la ressource du service de connecteur client, puis accordez au compte principal ou au groupe d'utilisateurs le rôle Utilisateur du service de connecteur client Cloud BeyondCorp (roles/beyondcorp.clientConnectorServiceUser) requis pour accéder aux applications non Web. Vous pouvez éventuellement spécifier une condition IAM pour ne provisionner le rôle que lorsqu'un niveau d'accès est satisfait. Pour mettre à jour la stratégie IAM d'une ressource, vous pouvez utiliser la console ou l'API.

    Dans la console, procédez comme suit:

    1. Accédez à la page d'administration d'IAP.

      Accéder à IAP

    2. Cliquez sur APPLICATIONS.
    3. Si vous n'avez pas encore configuré d'écran de consentement OAuth, vous devez le faire pour terminer cette étape. Dans la section CONNECTER UNE NOUVELLE APPLICATION, sélectionnez votre connecteur sous Applications non Web.
    4. Dans la fenêtre qui s'affiche, cliquez sur AJOUTER UN COMPTE PRINCIPAL.
    5. Attribuez au compte principal ou au groupe d'utilisateurs le rôle Cloud BeyondCorp Client Connector Service User (roles/beyondcorp.clientConnectorServiceUser) requis pour accéder aux applications non Web. Vous pouvez éventuellement spécifier un niveau d'accès pour ne provisionner le rôle que lorsque le niveau d'accès est satisfait. Pour spécifier un niveau d'accès, vous devez être administrateur de l'organisation ou disposer des autorisations view et edit sur les niveaux d'accès de l'organisation.
    6. Cliquez sur ENREGISTRER.

Mettre à jour une stratégie IAM

Console

  1. Accédez à la page d'administration d'IAP.

    Accéder à IAP

  2. Cliquez sur l'onglet APPLICATIONS. Dans la liste Ressource, développez Applications non Web.
  3. Sélectionnez votre connecteur client. Une section contenant les autorisations IAM associées à votre connecteur s'ouvre.
  4. Vous pouvez mettre à jour les stratégies IAM associées à votre connecteur client dans la section qui s'affiche.

gcloud

  1. Lisez la stratégie existante. La méthode getIamPolicy() lit la stratégie IAM existante pour la ressource de service du connecteur client dans policy.json.

    gcloud beta beyondcorp client-connector services get-iam-policy CLIENT_CONNECTOR_SERVICE_NAME \
      --project=CONSUMER_PROJECT \
      --location=SERVICE_LOCATION > policy.json
    

    Remplacez les éléments suivants :

    • CLIENT_CONNECTOR_SERVICE_NAME: nom du service de connecteur client.
    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
    • SERVICE_LOCATION: région dans laquelle se trouve le service de connecteur client.
  2. Modifiez les conditions renvoyées. Mettez à jour les liaisons dans policy.json pour inclure la nouvelle attribution du rôle IAM. Vous pouvez le faire dans un éditeur de texte ou de façon programmatique. Exemple :

    {
                "bindings": [
                  {
                    "role": "roles/beyondcorp.clientConnectorServiceUser",
                    "members": [
                      "user:EXAMPLE_USER@EXAMPLE.COM",
                      "group:EXAMPLE_GROUP@EXAMPLE.COM",
                    ],
                    "condition":
                     {
                       "expression":
            "'accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME' in
            request.auth.access_levels",
                      "title": "CONDITION_NAME"
                    }
                  }
                ]
    }
    

    Remplacez les éléments suivants :

    • POLICY_NAME: nom numérique de votre règle d'accès Access Context Manager
    • LEVEL_NAME: nom de votre niveau d'accès Access Context Manager
    • CONDITION_NAME: texte du titre de la condition IAM.
  3. Écrivez la stratégie mise à jour. Vous pouvez utiliser la méthode setIamPolicy() pour écrire la stratégie IAM mise à jour. Exemple :

    gcloud beta beyondcorp client-connector services set-iam-policy CLIENT_CONNECTOR_SERVICE_NAME policy.json \
      --project=CONSUMER_PROJECT \
      --location=SERVICE_LOCATION

    Remplacez les éléments suivants :

    • CLIENT_CONNECTOR_SERVICE_NAME: nom de votre service de connecteur client.
    • CONSUMER_PROJECT: ID de votre projet qui héberge CONSUMER_NETWORK.
    • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.

API

  1. Lisez la stratégie existante. La méthode getIamPolicy() lit la stratégie IAM existante pour la ressource de service du connecteur client dans policy.json.

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:getIamPolicy > policy.json
    

    Remplacez les éléments suivants :

    • CONSUMER_PROJECT: ID du projet qui héberge CONSUMER_NETWORK.
    • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.
    • CLIENT_CONNECTOR_SERVICE_NAME: nom de votre service de connecteur client.
  2. Modifiez les conditions renvoyées. Mettez à jour les liaisons dans policy.json pour inclure la nouvelle attribution du rôle IAM. Vous pouvez le faire dans un éditeur de texte ou de façon programmatique. Exemple :

     {
       "policy": {
          "bindings": [
            {
              "role": "roles/beyondcorp.clientConnectorServiceUser",
              "members": [
                "user:EXAMPLE_USER@EXAMPLE.COM",
                "group:EXAMPLE_GROUP@EXAMPLE.COM",
             ],
             "condition":
              {
                "expression":
     "'accessPolicies/POLICY_NAME/accessLevels/LEVEL_NAME' in
     request.auth.access_levels",
                "title": "CONDITION_NAME"
              }
           }
         ]
       }
     }
     

    Remplacez les éléments suivants :

    • POLICY_NAME: nom numérique de votre règle d'accès Access Context Manager
    • LEVEL_NAME: nom de votre niveau d'accès Access Context Manager
    • CONDITION_NAME: texte du titre de la condition IAM.
  3. Écrivez la stratégie mise à jour. Vous pouvez utiliser la méthode setIamPolicy() pour écrire la stratégie IAM mise à jour. Exemple :

    curl -X POST \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    -d @policy.json \
    https://beyondcorp.googleapis.com/v1/projects/CONSUMER_PROJECT/locations/SERVICE_LOCATION/clientConnectorServices/CLIENT_CONNECTOR_SERVICE_NAME:setIamPolicy
     

    Remplacez les éléments suivants :

    • CONSUMER_PROJECT: ID de votre projet qui héberge CONSUMER_NETWORK.
    • SERVICE_LOCATION: région dans laquelle se trouve le service du connecteur client.
    • CLIENT_CONNECTOR_SERVICE_NAME: nom de votre service de connecteur client.

Installer l'agent de connecteur client sur des points de terminaison (Windows ou macOS)

  1. Activez l'extension Endpoint Verification en suivant la procédure décrite dans Configurer la validation des points de terminaison sur vos appareils.

  2. Une fois la validation des points de terminaison opérationnelle, l'extension Endpoint Verification de l'utilisateur mis à jour affiche un bouton DÉMARRER LA CONNEXION. Pour accéder à l'application non Web protégée, les utilisateurs peuvent cliquer sur le bouton DÉMARRER LA CONNEXION.

Lorsqu'un utilisateur établit une connexion pour la première fois, Endpoint Verification l'invite à télécharger et à installer les binaires du connecteur client. Vous pouvez également télécharger les binaires du connecteur client aux URL suivantes:

Une fois la connexion établie, un utilisateur peut accéder à la ressource protégée. Les utilisateurs peuvent choisir de mettre fin à la connexion en cliquant sur le bouton ANNULER LA CONNEXION.

Dépannage

Si vous rencontrez des problèmes lors de l'utilisation du connecteur client, vous trouverez ci-dessous des procédures de dépannage susceptibles de les résoudre.

Vous ne pouvez pas accéder à votre application

La passerelle du connecteur client est en cours d'exécution et la connexion a bien été établie, mais vous ne parvenez toujours pas à accéder à votre application.

Vous trouverez ci-dessous les raisons les plus courantes de ce problème, ainsi que les solutions possibles:

  • Vous n'avez pas annoncé la plage d'adresses IP allouée sur Cloud VPN. Si vous utilisez Cloud VPN pour vous connecter à l'application autre que Google Cloud, veillez également à annoncer la plage d'adresses IP allouée pour l'accès aux services privés auprès du routeur pair via le protocole BGP (Border Gateway Protocol). Pour savoir comment procéder, consultez la page Spécifier des annonces sur un routeur cloud.

  • Vous avez spécifié une adresse et un masque incorrects dans les itinéraires de destination. Assurez-vous que le nombre de bits masqués est égal à zéro lorsque vous fournissez l'adresse. Par exemple, 10.0.10.1 n'est pas une adresse valide à fournir avec un masque de réseau 255.255.255.0 (/24). L'adresse correcte est 10.0.10.0.

  • Conflits d'adresses IP possibles entre la plage d'adresses IP allouée pour l'accès privé aux services et les sous-réseaux IP utilisés par le réseau hébergeant l'application. Assurez-vous que ces plages s'excluent mutuellement. Ce problème survient le plus souvent lorsque l'application est hébergée sur un réseau autre que Google Cloud.

Vous recevez le message Unable to connect to the network

Si vous recevez le message Unable to connect to the network. Check your network connection and try again., cela signifie que la connexion Internet de votre appareil n'est pas active.

Solution: assurez-vous que votre connexion Internet est active, puis réessayez de vous connecter.

Journaux d'audit

Si vous êtes administrateur, vous pouvez consulter les journaux d'audit de BeyondCorp Enterprise, y compris ceux du connecteur client, sur la page Journalisation de la console Google Cloud. Pour en savoir plus, consultez Journaux d'audit des services BeyondCorp Enterprise.

Si vous êtes un utilisateur final, vous pouvez accéder aux journaux de connexion en procédant comme suit:

  1. Effectuez un clic droit sur l'extension Endpoint Verification dans le navigateur.
  2. Cliquez sur Options.
  3. Sélectionnez la précision du niveau de journalisation. Par défaut, le niveau de précision est défini sur Infos.
  4. Cliquez sur Show Log (Afficher le journal).

Étapes suivantes