Créer et gérer des profils de sécurité de filtrage des URL

Cette page explique comment créer et gérer des profils de sécurité de type url-filtering à l'aide de la console Google Cloud et de la Google Cloud CLI.

Avant de commencer

Rôles

Pour obtenir les autorisations nécessaires pour créer, afficher, mettre à jour ou supprimer des profils de sécurité, demandez à votre administrateur de vous accorder les rôles IAM nécessaires sur votre organisation. Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Créer un profil de sécurité de filtrage des URL

Lorsque vous créez un profil de sécurité de filtrage des URL (profil de sécurité de type url-filtering), vous pouvez spécifier le nom du profil de sécurité sous forme de chaîne ou d'identifiant d'URL unique. L'URL unique d'un profil de sécurité à l'échelle de l'organisation peut présenter le format suivant :

organization/ORGANIZATION_ID/locations/LOCATION/securityProfiles/SECURITY_PROFILE_NAME

Si vous utilisez un identifiant d'URL unique pour le nom du profil de sécurité, l'organisation et l'emplacement du profil de sécurité sont déjà inclus dans l'identifiant d'URL. Toutefois, si vous n'utilisez que le nom du profil de sécurité, vous devez spécifier l'organisation et l'emplacement séparément. Pour en savoir plus sur les identifiants d'URL uniques, consultez la section spécifications du profil de sécurité.

Console

  1. Dans la console Google Cloud , accédez à la page Profils de sécurité.

    Accéder à la page "Profils de sécurité"

  2. Dans le menu de sélection du projet, sélectionnez votre organisation.

  3. Sélectionnez l'onglet Profils de sécurité.

  4. Cliquez sur Créer un profil.

  5. Saisissez un nom dans le champ Nom.

  6. Facultatif : saisissez une description dans le champ Description.

  7. Pour créer un profil de sécurité Cloud Next Generation Firewall Enterprise, sélectionnez Cloud NGFW Enterprise dans la section Usage.

  8. Pour créer un profil de sécurité de filtrage des URL, sélectionnez Filtrage des URL dans la section Type.

  9. Dans la section Filtres d'URL, cliquez sur le bouton Créer un filtre d'URL.

  10. Dans le volet Créer un filtre d'URL, spécifiez les détails suivants :

    • Priorité : spécifiez la priorité du filtre d'URL.
    • Action : spécifiez l'action que Cloud NGFW effectue sur le trafic.
      • Autoriser : autorise les connexions correspondant à une URL.
      • Refuser : refuse les connexions correspondant à une URL.
    • Liste d'URL : spécifiez une liste d'URL ou de chaînes de correspondance. Chaque entrée d'URL ou de chaîne de correspondance doit apparaître sur une ligne distincte, sans espaces ni délimiteurs. Chaque entrée ne peut être constituée que d'un domaine. Pour en savoir plus sur les chaînes de correspondance, consultez Chaînes de correspondance pour les URL.
  11. Cliquez sur Créer.

gcloud

  1. Créez un fichier YAML avec le contenu suivant :

    name: NAME
    type: PROFILE_TYPE
    urlFilteringProfile:
    urlFilters:
      - filteringAction: ACTION
        priority: PRIORITY
        urls: URL[,URL,...]
    

    Remplacez les éléments suivants :

    • NAME : nom du profil de sécurité de filtrage des URL. Vous pouvez spécifier le nom en tant que chaîne ou en tant qu'identifiant d'URL unique.

    • PROFILE_TYPE : type de profil de sécurité, à savoir url-filtering ou threat-prevention.

    • ACTION : spécifiez l'une des actions suivantes :

      • allow : autorise les connexions correspondant à une URL.
      • deny : refuse les connexions correspondant à une URL.
    • PRIORITY : priorité d'un filtre d'URL, comprise entre 0 et 2147483647.

    • URLs : liste de chaînes de correspondance séparées par des virgules. Par exemple, www.example.com et www.altostrat.com.

  2. Pour créer le profil de sécurité de filtrage d'URL, exécutez la commande gcloud network-security security-profiles import :

    gcloud network-security security-profiles import NAME \
        --location LOCATION \
        --source FILE_NAME \
        --organization = ORGANIZATION_ID
    

    Vous pouvez également créer un profil de sécurité de filtrage d'URL sans fichier YAML à l'aide de la commande gcloud network-security security-profiles url-filtering create :

    gcloud network-security security-profiles url-filtering create NAME \
        --location LOCATION \
        --organization ORGANIZATION_ID \
        --description DESCRIPTION
    

    Remplacez les éléments suivants :

    • NAME : nom du profil de sécurité de filtrage des URL. Vous pouvez spécifier le nom en tant que chaîne ou en tant qu'identifiant d'URL unique.

      Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre les options LOCATION et ORGANIZATION.

    • LOCATION : emplacement du profil de sécurité de filtrage des URL.

      L'emplacement est toujours défini sur global. Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre l'option LOCATION.

    • FILE_NAME : nom du fichier YAML. Exemple : url-filtering-sp.yaml.

    • ORGANIZATION_ID : organisation dans laquelle le profil de sécurité de filtrage d'URL est créé. Si vous utilisez un identifiant d'URL unique pour l'option name, vous pouvez omettre l'option ORGANIZATION_ID.

    • DESCRIPTION : description facultative pour le profil de sécurité du filtrage d'URL.

    Par exemple, l'extrait de code suivant montre un exemple de profil de sécurité de filtrage d'URL qui autorise les requêtes vers www.example.com et www.altostrat.com, mais refuse les requêtes vers tous les autres domaines :

    url_filtering_profile:
    url_filters:
      - filtering_action: ALLOW
        priority: 1000
        urls: ['www.example.com', 'www.altostrat.com']
      # the following URL filter is implicit and will be processed last
      - filtering_action: DENY
        priority: 2147483647
        urls: ['*']
    

Filtre d'URL avec refus implicite

Le profil de sécurité de filtrage des URL inclut toujours un filtre d'URL par défaut avec la priorité la plus basse (2147483647), qui refuse toutes les connexions ne correspondant pas aux filtres d'URL de priorité plus élevée. L'extrait de code suivant présente un exemple de filtre d'URL de refus implicite :

  url_filtering_profile:
  url_filters:
    # user-specified URL filters
    - filtering_action: DENY
      priority: 1000
      urls: ['www.example.com','www.altostrat.com']
    - filtering_action: ALLOW
      priority: 2000
      urls: ['www.example.org','www.example.net']
    # implicit deny URL filter that will be processed last
    - filtering_action: DENY
      priority: 2147483647
      urls: ['*']
  

Vous pouvez voir le filtre d'URL d'interdiction implicite lorsque vous consultez ou exportez un profil de sécurité de filtre d'URL. Vous ne pouvez pas modifier ni supprimer le filtre implicite. Par exemple, si vous souhaitez modifier l'action par défaut d'un profil de DENY (appliquée par un filtre implicite) à ALLOW, vous devez ajouter un filtre explicite que Cloud NGFW traite avant le filtre implicite.

  url_filtering_profile:
  url_filters:
    # user-specified filters
    - filtering_action: DENY
      priority: 1000
      urls: ['www.example.com','www.altostrat.com']
    # explicit allow URL filter that you can add
    - filtering_action: ALLOW
      priority: 2000
      urls: ['*']
    # implicit deny URL filter that will be processed last
    - filtering_action: DENY
      priority: 2147483647
      urls: ['*']
  

Chaînes de correspondance pour les URL

Les chaînes de correspondance sont les valeurs que vous spécifiez dans le champ urls d'un filtre d'URL. Vous pouvez spécifier une ou plusieurs chaînes de correspondance dans un filtre d'URL.

Caractères génériques

Chaque chaîne de correspondance dans une liste d'URL accepte les caractères génériques (*) de manière limitée.

  • Chaque chaîne de correspondance ne peut accepter qu'un seul astérisque (*), qui doit être le premier ou le seul caractère.
  • L'astérisque (*) peut avoir les interprétations suivantes :

    • Un astérisque (*) avant un point (.) indique tous les sous-domaines du domaine.

      Par exemple, la chaîne de correspondance *.example.com correspond à a.example.com et a.b.c.example.com, mais pas à example.com.

      url_filtering_profile:
      url_filters:
        # user-specified filters
        - filtering_action: ALLOW
          priority: 1000
          urls: ['*.example.com']
        # implicit deny URL filter that will be processed last
        - filtering_action: DENY
          priority: 2147483647
          urls: ['*']
      

      Dans l'exemple précédent, Cloud NGFW autorise le trafic vers les sous-domaines de example.com, mais refuse le reste du trafic sortant.

    • Un astérisque (*) avant une étiquette indique le domaine et tous les sous-domaines.

      Par exemple, la chaîne de correspondance *example.com correspond à a.example.com, a.b.c.example.com et example.com.

      url_filtering_profile:
      url_filters:
        # user-specified filters
        - filtering_action: ALLOW
          priority: 1000
          urls: ['*example.com']
        # implicit deny URL filter that will be processed last
        - filtering_action: DENY
          priority: 2147483647
          urls: ['*']
      

      Dans l'exemple précédent, Cloud NGFW autorise le trafic vers example.com ainsi que les sous-domaines de example.com, mais refuse le reste du trafic sortant.

    • Cloud NGFW n'interprète pas l'astérisque (*) comme un caractère générique d'expression régulière.

      Par exemple, *example.test ne correspond pas à newexample.test ni à a.newexample.test. Il ne correspond qu'à example.test et aux sous-domaines de example.test.

    • Un astérisque unique (*) sans aucun autre caractère indique une correspondance pour toutes les requêtes.

      Par exemple, la chaîne de correspondance du filtre d'URL d'autorisation explicite de priorité la plus faible ne contient qu'un astérisque (*) et a une action ALLOW qui remplace l'action par défaut DENY. Cela se produit, car le filtre d'URL de refus implicite applique la valeur par défaut DENY à toutes les requêtes qui ne correspondent pas aux filtres d'URL de priorité supérieure.

      Le filtre d'URL de priorité la plus élevée (ALLOW explicite ou DENY implicite) détermine si Cloud NGFW autorise ou refuse les connexions lorsqu'il manque des informations sur le SNI ou le domaine. Cela peut se produire avec le trafic HTTP non chiffré ou lorsque l'inspection TLS est désactivée pour les en-têtes de messages chiffrés.

      url_filtering_profile:
      url_filters:
        # user-specified filters
        - filtering_action: DENY
          priority: 1000
          urls: ['www.example.com','www.altostrat.com']
        # explicit allow URL filter that you can add
        - filtering_action: ALLOW
          priority: 2000
          urls: ['*']
        # implicit deny URL filter that will be processed last
        - filtering_action: DENY
          priority: 2147483647
          urls: ['*']
      

Limites

  • Les chaînes de correspondance représentent des domaines ou des sous-domaines.
  • Les chaînes de correspondance n'acceptent pas la barre oblique (/). Par exemple : www.example.com/images.
  • Les chaînes de correspondance ne sont pas compatibles avec les schémas ni les noms de protocoles. Exemple : http://www.example.com.
  • Les chaînes de correspondance ne sont pas compatibles avec les numéros de port. Exemple : www.example.com:80.
  • Les chaînes de correspondance n'acceptent que les lettres ASCII, les chiffres et les caractères spéciaux : trait d'union (-), point (.) et astérisque (*).

Vous devez utiliser Punycode pour convertir les noms de domaine qui contiennent des caractères autres que des lettres ASCII, des chiffres, des traits d'union (-), des points (.) ou des astérisques (*). Punycode est une norme d'encodage qui transforme les noms de domaine Unicode en un format compatible avec ASCII.

  • Si vous avez plusieurs libellés, séparez-les par des points (.). Une étiquette peut contenir un ou plusieurs traits d'union (-), mais ne doit pas commencer ni se terminer par un trait d'union. Chaque étiquette peut inclure un maximum de 63 caractères.

  • Un filtre d'URL n'accepte pas les points au début d'un nom de domaine ni les points consécutifs dans une chaîne de correspondance. Un filtre d'URL autorise les points finaux, mais Cloud NGFW les supprime avant d'enregistrer un filtre d'URL.

  • Cloud NGFW convertit les chaînes de correspondance en minuscules avant d'enregistrer le filtre d'URL. Cloud NGFW n'effectue aucune autre normalisation.

  • Chaque nom de domaine peut comporter 255 caractères au maximum.

Afficher un profil de sécurité de filtrage des URL

Vous pouvez afficher les détails d'un profil de sécurité de filtrage d'URL spécifique dans une organisation.

Console

  1. Dans la console Google Cloud , accédez à la page Profils de sécurité.

    Accéder à la page "Profils de sécurité"

  2. Sélectionnez l'onglet Profils de sécurité. L'onglet affiche une liste des profils de sécurité configurés.

  3. Cliquez sur un profil de sécurité de type Filtrage d'URL pour afficher les détails du profil.

gcloud

Pour afficher les détails d'un profil de sécurité de filtrage des URL, utilisez la commande gcloud network-security security-profiles url-filtering describe :

gcloud network-security security-profiles url-filtering describe NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \

Remplacez les éléments suivants :

  • NAME : nom du profil de sécurité de type url-filtering que vous souhaitez décrire. Vous pouvez spécifier le nom en tant que chaîne ou en tant qu'identifiant d'URL unique.

  • ORGANIZATION_ID : organisation dans laquelle le profil de sécurité de filtrage d'URL est créé. Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre l'option ORGANIZATION_ID.

  • LOCATION : emplacement du profil de sécurité du filtrage d'URL. L'emplacement est toujours défini sur global. Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre l'option LOCATION.

Lister les profils de sécurité de filtrage des URL

Vous pouvez lister tous les profils de sécurité de filtrage d'URL dans une organisation.

Console

  1. Dans la console Google Cloud , accédez à la page Profils de sécurité.

    Accéder à la page "Profils de sécurité"

  2. Sélectionnez l'onglet Profils de sécurité. L'onglet affiche une liste des profils de sécurité configurés.

gcloud

Pour répertorier tous les profils de sécurité de filtrage des URL, exécutez la commande gcloud network-security security-profiles url-filtering list :

gcloud network-security security-profiles url-filtering list \
    --organization ORGANIZATION_ID \
    --location LOCATION

Remplacez les éléments suivants :

  • ORGANIZATION_ID : organisation dans laquelle les profils de sécurité de filtrage d'URL sont créés.

  • LOCATION : emplacement des profils de sécurité de filtrage d'URL. L'emplacement est toujours défini sur global.

Supprimer un profil de sécurité de filtrage des URL

Vous pouvez supprimer un profil de sécurité de filtrage d'URL en spécifiant son nom, son emplacement et son organisation. Toutefois, si un profil de sécurité est référencé par un groupe de profils de sécurité, il ne peut pas être supprimé.

Console

  1. Dans la console Google Cloud , accédez à la page Profils de sécurité.

    Accéder à la page "Profils de sécurité"

  2. Sélectionnez l'onglet Profils de sécurité. L'onglet affiche une liste des profils de sécurité configurés.

  3. Sélectionnez le profil de sécurité que vous souhaitez supprimer, puis cliquez sur Supprimer.

  4. Cliquez à nouveau sur Supprimer pour confirmer votre choix.

gcloud

Pour supprimer un profil de sécurité de filtrage d'URL, exécutez la commande gcloud network-security security-profiles url-filtering delete :

gcloud network-security security-profiles url-filtering delete NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION

Remplacez les éléments suivants :

  • NAME : nom du profil de sécurité de filtrage des URL que vous souhaitez supprimer. Vous pouvez spécifier le nom sous forme de chaîne ou d'identifiant d'URL unique.

  • ORGANIZATION_ID : organisation dans laquelle le profil de sécurité de filtrage d'URL est créé. Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre l'option ORGANIZATION_ID.

  • LOCATION : emplacement du profil de sécurité de filtrage des URL.

    L'emplacement est toujours défini sur global. Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre l'option LOCATION.

Importer un profil de sécurité de filtrage des URL

Vous pouvez importer un profil de sécurité de filtrage d'URL (créé sur mesure ou exporté précédemment) à partir d'un fichier YAML. Lorsque vous importez un profil de sécurité de filtrage des URL, si un profil portant le même nom existe déjà, Cloud NGFW met à jour le profil existant.

gcloud

Pour importer un profil de sécurité de filtrage des URL à partir d'un fichier YAML, utilisez la commande gcloud network-security security-profiles import :

gcloud network-security security-profiles import NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \
    --source FILE_NAME

Remplacez les éléments suivants :

  • NAME : nom du profil de sécurité de type url-filtering que vous souhaitez importer. Vous pouvez spécifier le nom en tant que chaîne ou en tant qu'identifiant d'URL unique.

    Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre les options ORGANIZATION_ID et LOCATION.

  • ORGANIZATION_ID : organisation dans laquelle le profil de sécurité de filtrage d'URL est créé. Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre l'option ORGANIZATION_ID.

  • LOCATION : emplacement du profil de sécurité du filtrage d'URL. L'emplacement est toujours défini sur global. Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre l'option LOCATION.

  • FILE_NAME : chemin d'accès au fichier YAML contenant les données d'exportation de la configuration du profil de sécurité du filtrage d'URL. Par exemple,url-filtering-sp.yaml.

    Le fichier YAML ne doit contenir aucun champ exclusivement de sortie. Vous pouvez également omettre l'option source pour lire à partir de l'entrée standard.

Exporter un profil de sécurité de filtrage des URL

Vous pouvez exporter un profil de sécurité de filtrage d'URL vers un fichier YAML. Par exemple, au lieu d'utiliser l'interface utilisateur pour modifier un profil de sécurité volumineux, vous pouvez utiliser cette fonctionnalité pour exporter le profil de sécurité, le modifier rapidement et l'importer à nouveau.

gcloud

Pour exporter un profil de sécurité de filtrage des URL vers un fichier YAML, utilisez la commande gcloud network-security security-profiles export :

gcloud network-security security-profiles export NAME \
    --organization ORGANIZATION_ID \
    --location LOCATION \
    --destination FILE_NAME

Remplacez les éléments suivants :

  • NAME : nom du profil de sécurité de type url-filtering que vous souhaitez exporter. Vous pouvez spécifier le nom en tant que chaîne ou en tant qu'identifiant d'URL unique.

    Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre les options ORGANIZATION_ID et LOCATION.

  • ORGANIZATION_ID : organisation dans laquelle le profil de sécurité de filtrage d'URL est créé. Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre l'option ORGANIZATION_ID.

  • LOCATION : emplacement du profil de sécurité du filtrage d'URL. L'emplacement est toujours défini sur global. Si vous utilisez un identifiant d'URL unique pour l'option NAME, vous pouvez omettre l'option LOCATION.

  • FILE_NAME : chemin d'accès au fichier YAML dans lequel Cloud NGFW exportera la configuration du profil de sécurité du filtrage d'URL. Exemple : url-filtering-sp.yaml.

    Les données de configuration exportées ne contiennent aucun champ en sortie seule. Vous pouvez également omettre l'indicateur destination pour écrire dans la sortie standard.

Étapes suivantes