Utiliser des listes d'URL pour créer des règles

Cette page explique comment utiliser des listes d'URL pour créer et gérer des règles d'accès précises pour votre trafic Web sortant dans votre instance de proxy Web sécurisé. Au lieu de créer des règles individuelles pour chaque site Web, les listes d'URL vous permettent de définir une collection réutilisable et centralisée de domaines, de noms d'hôte et de modèles d'URL spécifiques.

Voici quelques-uns des principaux avantages de l'utilisation des listes d'URL :

  • Simplifiez la gestion des règles : vous pouvez appliquer un grand nombre de règles allow ou deny avec une seule référence dans votre stratégie de sécurité.

  • Contrôle précis : vous pouvez utiliser une syntaxe spécifique pour faire correspondre des domaines entiers, des sous-domaines ou des chemins d'URL exacts. Cela permet de s'assurer que vos charges de travail ne peuvent accéder qu'aux destinations autorisées.

  • Accès Web sécurisé : vous pouvez sécuriser et auditer efficacement l'accès Web dans votre environnement Google Cloud .

Avant de commencer

  • Suivez la procédure de configuration initiale.

  • Vérifiez que la version 406.0.0 (ou ultérieure) de la Google Cloud CLI est installée :

    gcloud version | head -n1
    

    Si vous avez installé une version antérieure de la gcloud CLI, mettez-la à jour :

    gcloud components update --version=406.0.0
    

Créer une instance Secure Web Proxy avec une règle vide

Pour créer une instance de proxy Web sécurisé, vous devez d'abord créer une stratégie de sécurité vide, puis créer un proxy Web qui utilise cette stratégie.

Créer une règle de sécurité vide

Console

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

    Accéder aux règles SWP

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

  3. Dans le champ Nom, saisissez un nom pour la stratégie (par exemple, myswppolicy).

  4. Dans le champ Description, saisissez une description de la règle, par exemple My new swp policy.

  5. Pour Régions, sélectionnez la région dans laquelle vous souhaitez créer le règlement, par exemple us-central1.

  6. Cliquez sur Créer.

Cloud Shell

  1. Utilisez l'éditeur de texte de votre choix pour créer un fichier policy.yaml.

  2. Ajoutez ce qui suit au fichier policy.yaml que vous avez créé :

    name: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    description: POLICY_DESCRIPTION
    

    Remplacez les éléments suivants :

    • PROJECT_NAME : nom de votre projet

    • REGION : région dans laquelle votre stratégie est créée, par exemple us-central1

    • POLICY_NAME : nom de votre règle

    • POLICY_DESCRIPTION : description de votre règle

  3. Importez la stratégie de sécurité à l'aide de la commande gcloud network-security gateway-security-policies import :

    gcloud network-security gateway-security-policies import POLICY_NAME \
        --source=POLICY_FILE.yaml \
        --location=REGION
    

Créer un proxy Web

Console

  1. Dans la console Google Cloud , accédez à la page Proxys Web.

    Accéder aux proxys Web

  2. Cliquez sur Créer un proxy Web sécurisé.

  3. Dans le champ Nom, saisissez un nom pour le proxy Web, tel que myswp.

  4. Dans le champ Description, saisissez une description du proxy Web, par exemple My new swp.

  5. Pour Mode de routage, sélectionnez l'option Explicite.

  6. Pour Régions, sélectionnez la région dans laquelle vous souhaitez créer le proxy Web, par exemple us-central1.

  7. Pour Réseau, sélectionnez le réseau sur lequel vous souhaitez créer le proxy Web.

  8. Pour Sous-réseau, sélectionnez le sous-réseau VPC que vous avez créé précédemment dans les étapes de configuration initiale.

  9. Facultatif : Dans le champ Adresse IP du proxy Web, saisissez l'adresse IP du proxy Web sécurisé.

    Vous pouvez saisir une adresse IP de la plage d'adresses IP du proxy Web sécurisé qui se trouve dans le sous-réseau que vous avez créé à l'étape précédente. Si vous ne saisissez pas l'adresse IP, votre instance Secure Web Proxy choisit automatiquement une adresse IP dans le sous-réseau sélectionné.

  10. Pour Certificat, sélectionnez le certificat que vous souhaitez utiliser pour créer le proxy Web.

  11. Pour Règle, sélectionnez la règle que vous avez créée pour associer le proxy Web.

  12. Cliquez sur Créer.

Cloud Shell

  1. Utilisez l'éditeur de texte de votre choix pour créer un fichier gateway.yaml.

  2. Ajoutez ce qui suit au fichier gateway.yaml.

    name: projects/PROJECT_NAME/locations/REGION/gateways/GATEWAY_NAME
    type: SECURE_WEB_GATEWAY
    ports: [GATEWAY_PORT_NUMBERS]
    certificateUrls: [CERTIFICATE_URLS]
    gatewaySecurityPolicy: projects/PROJECT_NAME/locations/REGION/gatewaySecurityPolicies/POLICY_NAME
    network: projects/PROJECT_NAME/global/networks/NETWORK_NAME
    subnetwork: projects/PROJECT_NAME/regions/REGION/subnetworks/SUBNETWORK
    addresses: [GATEWAY_IP_ADDRESS]
    scope: samplescope
    

    Remplacez les éléments suivants :

    • GATEWAY_NAME : nom de cette instance Secure Web Proxy

    • GATEWAY_PORT_NUMBERS : liste des numéros de port pour cette passerelle, par exemple [80,443].

    • CERTIFICATE_URLS : liste des URL des certificats SSL

    • SUBNETWORK : sous-réseau VPC que vous avez créé précédemment dans le cadre des étapes de configuration initiale.

    • GATEWAY_IP_ADDRESS : liste facultative d'adresses IP pour vos instances Secure Web Proxy dans les sous-réseaux de proxy que vous avez créés précédemment dans les étapes de configuration initiale

      Si vous choisissez de ne pas lister les adresses IP, omettez le champ pour laisser le proxy Web choisir une adresse IP pour vous.

  3. Créez l'instance Secure Web Proxy à l'aide de la commande gcloud network-services gateways import :

    gcloud network-services gateways import GATEWAY_NAME \
        --source=gateway.yaml \
        --location=REGION
    

Tester la connectivité

Pour tester la connectivité, utilisez la commande curl à partir de n'importe quelle instance de machine virtuelle (VM) de votre réseau de cloud privé virtuel (VPC) :

  curl -x https://GATEWAY_IP_ADDRESS:PORT_NUMBER https://www.example.com --proxy-insecure

Si tout fonctionne correctement, votre instance de proxy Web sécurisé renvoie un code d'état 403 Forbidden. Cette erreur confirme les points suivants :

  • L'instance de proxy Web sécurisé a été déployée et reçoit activement du trafic.

  • La stratégie de proxy Web sécurisé applique correctement la posture de sécurité par défaut qui consiste à refuser tout le trafic jusqu'à ce que vous définissiez des règles allow spécifiques dans les sections suivantes.

Créer et configurer une liste d'URL

Console

  1. Dans la console Google Cloud , accédez à la page Listes d'URL.

    Accéder aux listes d'URL

  2. Cliquez sur Créer une liste d'URL. La page Créer une liste d'URL s'ouvre.

  3. Dans le champ Nom, saisissez un nom pour la liste d'URL (par exemple, example-org-allowed-list).

  4. Dans le champ Description, saisissez une description pour la liste d'URL, par exemple My new URL list.

  5. Dans Régions, sélectionnez la région dans laquelle vous souhaitez créer la liste d'URL, par exemple us-central1.

  6. Pour ajouter la liste des hôtes, des URL ou des modèles à faire correspondre, saisissez les informations dans le champ Liste d'URL ou cliquez sur Importer une liste pour importer une liste personnalisée d'URL. Pour en savoir plus, consultez la référence de la syntaxe UrlList.

  7. Cliquez sur Créer.

Cloud Shell

  1. Utilisez l'éditeur de texte de votre choix pour créer le fichier url_list.yaml.

  2. Ajoutez ce qui suit au fichier url_list.yaml.

      name: projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME
      values: URL_LIST
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID unique de votre projet Google Cloud

    • REGION : région dans laquelle votre liste d'URL est créée, par exemple us-central1

    • URL_LIST_NAME : nom de la liste d'URL

    • URL_LIST : liste des hôtes, des URL ou des modèles à faire correspondre

    Pour en savoir plus, consultez la documentation de référence sur la syntaxe UrlList.

    Voici un exemple de fichier de règles de liste d'URL :

    name: projects/PROJECT_ID/locations/REGION/urlLists/example-org-allowed-list
    values:
      - www.example.com
      - about.example.com
      - "*.google.com"
      - "github.com/example-org/*"
    

    L'astérisque (*) a une signification particulière dans YAML. Vous devez ajouter des guillemets autour des URL qui incluent un caractère *.

  3. Importez la liste d'URL que vous avez créée à l'aide de la commande gcloud network-security url-lists import afin que votre règle de proxy Web sécurisé puisse y faire référence.

    gcloud network-security url-lists import URL_LIST_NAME \
        --location=REGION \
        --project=PROJECT_ID \
        --source=url_list.yaml
    

Ajouter une règle Secure Web Proxy

Console

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

    Accéder aux règles SWP

  2. Cliquez sur le nom de votre règle, par exemple myswppolicy.

  3. Cliquez sur Ajouter une règle.

  4. Pour chaque règle, procédez comme suit :

    1. Dans Priorité, saisissez l'ordre d'évaluation numérique de la règle. Les règles sont évaluées de la priorité la plus élevée à la plus faible, où 0 correspond à la priorité la plus élevée.

    2. Dans le champ Nom, saisissez un nom pour la règle (par exemple, allow-org-url-list).

    3. Dans le champ Description, saisissez une description de la règle.

    4. Pour Action, sélectionnez l'une des options suivantes :

      • Autoriser : pour autoriser les demandes de connexion correspondant à la règle.
      • Refuser : pour refuser les demandes de connexion correspondant à la règle.
    5. Pour le champ État, sélectionnez l'une des options suivantes pour l'application des règles :

      • Activé : pour appliquer la règle à votre instance Secure Web Proxy.
      • Désactivé : pour ne pas appliquer la règle à votre instance Secure Web Proxy.
    6. Dans la section Correspondance de session, spécifiez le nom unique de la liste d'URL que vous avez créée dans la section précédente. Exemple :

        sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME)"
      

      Pour en savoir plus sur la syntaxe de SessionMatcher, consultez la documentation de référence sur le langage de correspondance CEL.

    7. Dans la section Correspondance de l'application, spécifiez les critères de correspondance de la requête.

    8. Cliquez sur Ajouter une règle.

Cloud Shell

  1. Utilisez l'éditeur de texte de votre choix pour créer un fichier rule.yaml.

  2. Ajoutez ce qui suit au fichier rule.yaml.

    name: projects/PROJECT_ID/locations/REGION/gatewaySecurityPolicies/POLICY_NAME/rules/RULE_NAME
    basicProfile: ALLOW
    enabled: true
    priority: RULE_PRIORITY
    description: RULE_DESCRIPTION
    sessionMatcher: SESSION_CEL_EXPRESSION
    applicationMatcher: APPLICATION_CEL_EXPRESSION
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID unique de votre projet Google Cloud

    • REGION : région à laquelle s'applique cette règle.

    • POLICY_NAME : nom d'une stratégie de sécurité existante utilisée par votre instance Secure Web Proxy

    • RULE_NAME : nom de la règle

    • PRIORITY_VALUE : priorité de la règle. Plus le nombre est faible, plus la priorité est élevée.

    • RULE_DESCRIPTION : description de la règle

    • SESSION_CEL_EXPRESSION : expression CEL (Common Expression Language). Pour en savoir plus, consultez la documentation de référence sur le langage de correspondance CEL.

    • APPLICATION_CEL_EXPRESSION : expression CEL pour votre application

    Voici un exemple de fichier de règles :

    name: projects/PROJECT_ID/locations/REGION/urlLists/allow-repos
    basicProfile: ALLOW
    enabled: true
    priority: 100
    description: Allow access to our list of known code repos.
    sessionMatcher: "inUrlList(host(), 'projects/PROJECT_ID/locations/REGION/urlLists/URL_LIST_NAME')"
    

  3. Importez la règle que vous avez créée à l'aide de la commande gcloud network-security gateway-security-policies rules import.

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

Tester la configuration des règles

Vous pouvez tester à nouveau la connectivité pour vérifier que les règles d'accès basées sur la liste d'URL sont correctement configurées et appliquées activement par votre instance Secure Web Proxy.

Pour tester la connectivité, utilisez la commande curl suivante :

curl -x https://SWP_IP_ADDRESS:SWP_PORT_NUMBER HTTP_TEST_ADDRESS
--proxy-insecure

Remplacez les éléments suivants :

  • SWP_IP_ADDRESS : adresse IP de votre instance Secure Web Proxy

  • SWP_PORT_NUMBER : numéro de port de votre proxy Web, tel que 443

  • HTTP_TEST_ADDRESS : adresse à tester, par exemple https://www.example.com. Il correspond à une entrée d'hôte ou d'URL dans votre url_list.

Si tout fonctionne correctement, vous recevrez une réponse 200 OK. Cette réponse confirme que le trafic sortant vers une URL figurant dans votre liste d'URL et référencée par la règle de stratégie de sécurité est autorisé à transiter par votre instance de proxy Web sécurisé.

Étapes suivantes