Publier Secure Web Proxy en tant que service Private Service Connect

Pour centraliser votre déploiement de Secure Web Proxy sur plusieurs réseaux VPC, vous pouvez rendre Secure Web Proxy disponible via un rattachement de service Private Service Connect.

Le déploiement de Secure Web Proxy avec Private Service Connect implique les étapes suivantes :

  1. Créez une stratégie de proxy Web sécurisé et des règles.
  2. Créez une instance Secure Web Proxy qui utilise votre stratégie.
  3. Créez un rattachement de service pour publier l'instance Secure Web Proxy en tant que service Private Service Connect.
  4. Créez un point de terminaison client Private Service Connect dans chaque réseau VPC qui doit se connecter à Secure Web Proxy.
  5. Dirigez le trafic sortant de votre charge de travail vers l'instance Secure Web Proxy centralisée dans la région.
Déploiement du proxy Web sécurisé en mode rattachement de service Private Service Connect.
La publication de Secure Web Proxy en tant que service Private Service Connect vous permet de centraliser la gestion du trafic de sortie pour les charges de travail sur plusieurs réseaux VPC. (cliquez pour agrandir).

Avant de commencer

Avant de suivre les étapes de cette page, effectuez la configuration initiale.

Créer et configurer une instance de proxy Web sécurisé

Ce guide explique comment créer une stratégie et des règles de proxy Web sécurisé qui correspondent au trafic par session.

Pour savoir comment configurer l'inspection TLS de manière facultative, consultez Activer l'inspection TLS.

Pour savoir comment configurer la correspondance au niveau de l'application de manière facultative, consultez Créer et déployer une instance de Secure Web Proxy.

Créer une stratégie de proxy Web sécurisé

Console

  1. Dans la Google Cloud console, accédez à la page Règles SWP.

    Accéder aux règles SWP

  2. Cliquez sur Créer une règle.

  3. Saisissez un nom pour la règle que vous souhaitez créer, par exemple myswppolicy.

  4. Saisissez une description de la règle.

  5. Dans la liste Régions, sélectionnez la région dans laquelle vous souhaitez créer la règle de proxy Web.

  6. Cliquez sur Créer.

Cloud Shell

  1. Créez un fichier policy.yaml.

    description: basic Secure Web Proxy policy
    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet
    • REGION : région de la règle
  2. Créez une règle de Secure Web Proxy basée sur policy.yaml.

    gcloud network-security gateway-security-policies import policy1 \
        --source=policy.yaml \
        --location=REGION
    

Ajouter des règles de Secure Web Proxy à votre règle

Configurez des règles Secure Web Proxy pour autoriser le trafic de sortie de chaque charge de travail.

Cette section explique comment créer une règle pour autoriser le trafic provenant de charges de travail identifiées par un tag Resource Manager ou un compte de service. Pour savoir comment faire correspondre le trafic d'autres manières, consultez la documentation de référence sur le langage de correspondance CEL .

Console

  1. Dans la Google Cloud console, accédez à la page Règles SWP.

    Accéder aux règles SWP

  2. Cliquez sur le nom de votre règle.

  3. Pour ajouter des règles permettant aux charges de travail d'accéder à Internet, procédez comme suit :

    1. Cliquez sur Ajouter une règle.
    2. Saisissez une priorité. Les règles sont évaluées de la priorité la plus élevée à la priorité la plus basse, où 0 est la priorité la plus élevée.
    3. Saisissez un nom.
    4. Saisissez une description.
    5. Saisissez un état.
    6. Dans le champ Action, sélectionnez Autoriser.
    7. Cliquez sur État, puis sélectionnez Activé.
    8. Dans la section Correspondance de session, spécifiez les critères de correspondance de la session.

      • Par exemple, pour autoriser le trafic vers google.com à partir de charges de travail dont l'ID de valeur de tag Resource Manager est tagValues/123456, saisissez les éléments suivants :

        source.matchTag('tagValues/123456') && host() == 'google.com'

      • Pour autoriser le trafic vers google.com à partir de charges de travail qui utilisent le compte de service my-service-account@my-project.iam.gserviceaccount.com, saisissez les éléments suivants :

        source.matchServiceAccount('my-service-account@my-project.iam.gserviceaccount.com') && host() == 'google.com'

    9. Cliquez sur Créer.

Cloud Shell

Pour chaque règle que vous souhaitez ajouter, procédez comme suit :

  1. Créez un fichier rule.yaml et spécifiez les critères de correspondance de la session.

    • Pour autoriser le trafic vers un domaine spécifique à partir de charges de travail identifiées par un ID de valeur de tag Resource Manager, créez le fichier suivant :

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
      description: Allow traffic based on tag
      enabled: true
      priority: PRIORITY
      basicProfile: ALLOW
      sessionMatcher: source.matchTag('TAG_VALUE_ID') && host() == 'DOMAIN_NAME'
      

      Remplacez les éléments suivants :

      • PROJECT_ID : ID du projet
      • REGION : région de votre règle
      • RULE_NAME : nom de la règle
      • PRIORITY: priorité de la règle. Les règles sont évaluées de la priorité la plus élevée à la priorité la plus basse, où 0 est la priorité la plus élevée.
      • TAG_VALUE_ID: ID de valeur de tag des charges de travail pour lesquelles autoriser le trafic
      • DOMAIN_NAME: nom de domaine pour lequel autoriser le trafic
    • Pour autoriser le trafic vers un domaine spécifique à partir de charges de travail qui utilisent un compte de service, créez le fichier suivant :

      name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/policy1/rules/RULE_NAME
      description: Allow traffic based on service account
      enabled: true
      priority: PRIORITY
      basicProfile: ALLOW
      sessionMatcher: source.matchServiceAccount('SERVICE_ACCOUNT') && host() == 'DOMAIN_NAME'
      

      Remplacez SERVICE_ACCOUNT par le nom du compte de service.

  2. Pour mettre à jour votre règle avec la règle que vous avez définie dans rule.yaml, exécutez la commande suivante :

    gcloud network-security gateway-security-policies rules import RULE_NAME \
       --source=rule.yaml \
       --location=REGION \
       --gateway-security-policy=policy1
    

Déployer une instance de proxy Web sécurisé

Déployez une instance de Secure Web Proxy en mode de routage explicite dans le réseau de cloud privé virtuel (VPC) que vous souhaitez utiliser pour le trafic sortant. Lorsque vous créez l'instance, associez-la à la règle et aux règles que vous avez créées lors des étapes précédentes.

La publication du proxy Web sécurisé avec un rattachement de service Private Service Connect n'est pas compatible avec le mode de routage du saut suivant.

Pour savoir comment configurer l'instance, consultez Configurer un proxy Web. Vous n'avez pas besoin de suivre les autres étapes de cette page pour le moment.

Déployer le proxy Web sécurisé en tant que service Private Service Connect dans un modèle hub and spoke

Cette section explique comment déployer Secure Web Proxy en tant que service Private Service Connect à l'aide d'un modèle hub and spoke pour centraliser la gestion du trafic de sortie.

Publier Secure Web Proxy en tant que service Private Service Connect

Pour publier Secure Web Proxy en tant que service, créez un sous-réseau et un rattachement de service Private Service Connect. Le sous-réseau et le rattachement de service doivent partager la même région que les points de terminaison Private Service Connect qui accèdent au rattachement de service.

Créer un sous-réseau pour Private Service Connect

Pour créer un sous-réseau pour Private Service Connect, procédez comme suit.

Console

  1. Dans la console Google Cloud , accédez à la page Réseaux VPC.

    Accéder aux réseaux VPC

  2. Cliquez sur le nom d'un réseau VPC pour afficher la page des détails du réseau VPC.

  3. Cliquez sur Sous-réseaux.

  4. Cliquez sur Ajouter un sous-réseau. Dans le panneau qui apparaît, procédez comme suit :

    1. Indiquez un Nom.
    2. Sélectionnez une Région.
    3. Dans la section Objectif, sélectionnez Private Service Connect.
    4. Pour Type de pile d'adresses IP, sélectionnez IPv4 (pile unique) ou IPv4 et IPv6 (double pile).
    5. Saisissez une plage IPv4. Exemple : 10.10.10.0/24.
    6. Si vous créez un sous-réseau à double pile, définissez le type d'accès IPv6 sur Interne.
    7. Cliquez sur Ajouter.

Cloud Shell

Effectuez l'une des opérations suivantes :

  • Pour créer un sous-réseau Private Service Connect IPv4 uniquement, procédez comme suit :

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    
  • Pour créer un sous-réseau Private Service Connect à double pile, procédez comme suit :

    gcloud compute networks subnets create SUBNET_NAME \
        --network=NETWORK_NAME \
        --region=REGION \
        --stack-type=IPV4_IPV6 \
        --ipv6-access-type=INTERNAL \
        --range=SUBNET_RANGE \
        --purpose=PRIVATE_SERVICE_CONNECT
    

Remplacez l'élément suivant :

  • SUBNET_NAME : nom à attribuer au sous-réseau.

  • NETWORK_NAME : nom du VPC pour le nouveau sous-réseau.

  • REGION : région du nouveau sous-réseau. Il doit s'agir de la même région que celle du service que vous publiez.

  • SUBNET_RANGE: plage d'adresses IPv4 à utiliser pour le sous-réseau, par exemple 10.10.10.0/24.

Créer un rattachement de service

Pour publier Secure Web Proxy en tant que rattachement de service dans le réseau VPC central (hub), procédez comme suit.

Cette section explique comment créer un rattachement de service qui accepte automatiquement toutes les connexions. Pour en savoir plus sur l'approbation explicite ou d'autres options de configuration, consultez Publier un service avec approbation explicite.

Console

  1. Dans la console Google Cloud , accédez à la page Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Services publiés.

  3. Cliquez sur Publier le service.

  4. Dans la section Détails de la cible, sélectionnez Proxy Web sécurisé.

  5. Sélectionnez l'instance Secure Web Proxy que vous souhaitez publier. Les champs de réseau et de région sont renseignés avec les détails de l'instance de Secure Web Proxy sélectionnée.

  6. Dans le champ Nom du service, saisissez le nom du rattachement de service.

  7. Sélectionnez un ou plusieurs sous-réseaux Private Service Connect pour le service. La liste contient les sous-réseaux du réseau VPC de l'instance Secure Web Proxy sélectionnée.

  8. Dans la section Préférences de connexion, sélectionnez Accepter automatiquement toutes les connexions.

  9. Cliquez sur Ajouter un service.

Cloud Shell

Exécutez la commande gcloud compute service-attachments create.

gcloud compute service-attachments create SERVICE_ATTACHMENT_NAME \
    --target-service=SWP_INSTANCE_URI \
    --connection-preference=ACCEPT_AUTOMATIC \
    --nat-subnets=NAT_SUBNET_NAME \
    --region=REGION \
    --project=PROJECT

Remplacez les éléments suivants :

  • SERVICE_ATTACHMENT_NAME: nom du rattachement de service
  • SWP_INSTANCE_URI : URI de l'instance de proxy Web sécurisé, au format suivant : //networkservices.googleapis.com/projects/PROJECT_ID/locations/REGION/gateways/INSTANCE_NAME
  • NAT_SUBNET_NAME: nom du sous-réseau Private Service Connect
  • REGION: région du déploiement du proxy Web sécurisé
  • PROJECT: projet du déploiement du proxy Web sécurisé

Créer des points de terminaison

Créez un point de terminaison dans chaque réseau VPC qui doit envoyer du trafic sortant via l'instance Secure Web Proxy centralisée. Par défaut, un point de terminaison n'est accessible qu'aux charges de travail de sa propre région.

Pour autoriser les charges de travail de n'importe quelle Google Cloud région à accéder à un point de terminaison, activez l'option d'accès mondial.

Répétez les étapes suivantes pour chaque point de terminaison que vous devez créer.

Console

  1. Dans la console Google Cloud , accédez à la page Private Service Connect.

    Accéder à Private Service Connect

  2. Cliquez sur l'onglet Points de terminaison connectés.

  3. Cliquez sur Connecter le point de terminaison.

  4. Pour Cible, sélectionnez Service publié.

  5. Dans le champ Service cible, saisissez l'URI du rattachement de service auquel vous souhaitez vous connecter.

    L'URI du rattachement de service est au format suivant : projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME.

  6. Dans le champ Nom du point de terminaison, saisissez un nom à utiliser pour le point de terminaison.

  7. Sélectionnez un réseau pour le point de terminaison.

  8. Sélectionnez un sous-réseau pour le point de terminaison.

  9. Sélectionnez une adresse IP pour le point de terminaison. Si vous avez besoin d'une nouvelle adresse IP, vous pouvez en créer une :

    1. Cliquez sur le menu déroulant Adresse IP , puis sélectionnez Créer une adresse IP.
    2. Saisissez un nom et une description facultative pour l'adresse IP.
    3. Sélectionnez une version IP.
    4. Si vous créez une adresse IPv4, sélectionnez Attribuer automatiquement ou Laissez-moi choisir.

      Si vous avez sélectionné Laissez-moi choisir, saisissez l'adresse IP personnalisée que vous souhaitez utiliser.

    5. Cliquez sur Réserver.

  10. Facultatif : Pour autoriser les clients de n'importe quelle Google Cloud région à accéder au point de terminaison, sélectionnez Activer l'accès mondial.

    Pour en savoir plus, consultez les sections Accès mondial et Créer un point de terminaison dans la documentation sur le VPC.

  11. Cliquez sur Ajouter un point de terminaison.

Cloud Shell

  1. Réservez une adresse IP interne à attribuer au point de terminaison.

    gcloud compute addresses create ADDRESS_NAME \
        --region=REGION \
        --subnet=SUBNET \
        --ip-version=IP_VERSION
    

    Remplacez l'élément suivant :

    • ADDRESS_NAME : nom à attribuer à l'adresse IP réservée.

    • REGION : région de l'adresse IP du point de terminaison. Il doit s'agir de la même région que celle contenant le rattachement de service du producteur de services.

    • SUBNET : nom du sous-réseau de l'adresse IP du point de terminaison.

    • IP_VERSION : version IP de l'adresse IP, qui peut être IPV4 ou IPV6. IPV4 est la valeur par défaut. Pour spécifier IPV6, l'adresse IP doit être connectée à un sous-réseau avec une plage d'adresses IPv6 internes.

  2. Créez une règle de transfert pour connecter le point de terminaison au rattachement de service du producteur de services.

    gcloud compute forwarding-rules create ENDPOINT_NAME \
       --region=REGION \
       --network=NETWORK_NAME \
       --address=ADDRESS_NAME \
       --target-service-attachment=SERVICE_ATTACHMENT
    

    Facultatif : Pour autoriser les clients de n'importe quelle Google Cloud région à accéder au point de terminaison, ajoutez l'option --allow-psc-global-access.

    Pour en savoir plus, consultez les sections Accès mondial et Créer un point de terminaison dans la documentation sur le VPC.

    Remplacez l'élément suivant :

    • ENDPOINT_NAME : nom à attribuer au point de terminaison.

    • REGION : région du point de terminaison. Cette région doit être celle qui contient le rattachement de service du producteur de services.

    • NETWORK_NAME : nom du réseau VPC utilisé pour le point de terminaison.

    • ADDRESS_NAME : nom de l'adresse réservée.

    • SERVICE_ATTACHMENT : URI du rattachement de service du producteur de services. Exemple : projects/SERVICE_PROJECT/regions/REGION/serviceAttachments/SERVICE_NAME

Diriger les charges de travail vers les points de terminaison Private Service Connect

Configurez des variables d'environnement proxy afin que chaque charge de travail utilise l'adresse IP d'un point de terminaison Private Service Connect pour le trafic sortant.

Par exemple, pour une charge de travail dans un environnement Linux ou macOS, vous pouvez utiliser la ligne de commande pour configurer temporairement les variables d'environnement HTTP_PROXY et HTTPS_PROXY :

export HTTP_PROXY="http://ENDPOINT_IP_ADDRESS:HTTP_PORT"
export HTTPS_PROXY="https://ENDPOINT_IP_ADDRESS:HTTPS_PORT"

Remplacez les éléments suivants :

  • ENDPOINT_IP_ADDRESS: adresse IP interne de votre point de terminaison
  • HTTP_PORT : port de réception du trafic HTTP
  • HTTPS_PORT : port de réception du trafic HTTPS

Pour savoir comment définir définitivement des variables proxy dans l'environnement de vos charges de travail, consultez la documentation de votre système d'exploitation.

Étape suivante