Netskope LogoNetskope Logo
  • Services de sécurité
  • Services d’IA
  • Services de miseenréseau
  • Services d'analyse
  • Intégrations
  • getting-started.svgPour commencer
    • Support
    • Communauté
    • Netskope.com
    © 2026 Tous droits réservés. Netskope Inc.
    Accueil
    Netskope Public Cloud Security
    Gestion du niveau de sécurité dans le cloud
    Création de politiques d'évaluation de la sécurité pour Netskope Public Cloud Security
    Règle de sécurité
    Règles personnalisées utilisant un langage spécifique au domaine

    Règles personnalisées utilisant un langage spécifique au domaine

    Créez des règles personnalisées sous Policies > Security Posture > Profiles & Rules en utilisant un langage spécifique au domaine (DSL) pour l'évaluation de la sécurité des ressources AWS, Azure et Google Cloud. 

    The following syntax diagram represents the general rule to write a DSL statement.

    rule_should_not.png

    Format de la règle : <entity> [where <condition>] should [not] have <condition>

    Par exemple,

    S3Bucket should not have any ACL in (10.0.0.0)
    IAMUser where Name eq “root” should have Password.Enabled eq true and MFAActive eq true
    Entity

    An entity defines what the rule is checking against. It can be used alone or with a condition to further specify the entity.

    entity.png

    Voici quelques exemples d'utilisation d'une entité.

    <entity> <entité> devrait avoir <condition>S3Bucket devrait avoir LoggingEnabled

    AADuser ne devrait pas avoir d’égalisation Type « Invité »

    <entity> <entité> où <condition>

    La condition "où" définit davantage l'entité afin de réduire le résultat.

    IAMUser où l’égalisation Name « racine » et l’égalisation MFAActive true

    AWS où CloudTrails avec [ MultiRegionTrailEnabled eq true ]

    Pour une liste complète des entités et attributs pris en charge, voir

    • Entités AWS
    • Entités Azure
    • Entités de Google Cloud
    Condition

    Une condition est une norme que la règle utilise pour vérifier une entité afin de réduire le résultat.

    condition.png

    The following table provides examples of using a condition. The formats in this table are applicable to all properties.

    <property>< propriété >L'AWS doit avoir CloudTrails
    <property> <propriété> [func()] <opérateur><operator> <value>IAMUser doit avoir Name eq “root”

    IAMUser doit avoir Policies.Managed len() eq 0

    <property> <propriété> avec/contenant <condition>L'AWS doit avoir IAMUsers with [ Name eq “root” ]
    <property> <value1><value2><value3><propriété> in/notin (,,)IAMUser doit avoir Name in ( “root”, “name2” )
    utiliser des quantificateurs pour les propriétés des listes et des séquencesIAMUser doit avoir atleast one Password eq “1234”
    utiliser et, ou, pas, ( ) pour les conditions complexesIAMUser doit avoir (Name eq “root”) and (MFAActive eq true)
    Function

    Utilisez des fonctions dans les règles pour trouver des informations spécifiques sur les entités. Les fonctions utilisent la syntaxe suivante,

    <entity> <function>(<argument>)

    Par exemple,

    S3Bucket should have Tags len ( ) gt 0

    Protocol in ("-1", "tcp")

    Le tableau suivant fournit une liste complète des fonctions disponibles pour les règles.

    FunctionProperty TypesArgumentsRenvoie le type de propriétéDescription
    lenlist, stringnonenumberRenvoie la longueur d'une chaîne ou d'une liste.
    numhostsipnonenumberNumber of hosts in subnet.
    isPrivateipnonebooleanSi l'IP est privée (IPy).
    isPublicipnonebooleanWhether IP is public (IPy).
    divisiblebynumbernumberbooleanSi le nombre LHS est divisible par l'argument.
    en, pas enchaîne, booléen, ip, nombrelistbooleanSi la valeur LHS est dans la liste (raccourci pour OR long).
    haslistlistbooleanWhether LHS list contains any one of the lists passed in as argument.
    isLaterThannuméro (date)nombre, unitésbooleanIndique si le nombre LHS (date) est postérieur à l'heure actuelle +/- le nombre d'unités (arguments). Par exemple, isLaterThan ( -1, "days") signifie que LHS est postérieur à un jour (à partir de l'heure de balayage). Les unités doivent être l'une des suivantes : secondes|minutes|heures|jours|semaines.

    Le terme "jours" est le plus courant.

    isEarlierThannuméro (date)nombre, unitésbooleanIndique si le nombre LHS (date) est antérieur à l'heure actuelle +/- le nombre d'unités (arguments). Par exemple, Password.LastUsedTime isEarlierThan ( -90, "days")). Les unités doivent être l'une des suivantes : secondes|minutes|heures|jours|semaines.

    Le terme "jours" est le plus courant.

    Property

    La propriété est utilisée pour définir la condition que la règle vérifie ainsi que pour restreindre l'entité contre laquelle la règle est vérifiée. Les propriétés peuvent être imbriquées à l'aide de ".", par exemple MFADevices.Virtual où la règle vérifie tous les périphériques virtuels.

    The following is the syntax format.

    <entity> should [not] have <property>...

    <entity> where <property>...

    Le tableau suivant fournit la liste des types de propriétés et des fonctions qu'ils prennent en charge.

    Type de propriétéOperators and FunctionsExemple
    listin, notin, contain, with, len()IAMUsers with [ Name eq “root” ]
    sequenceen, pas enMFADevices in ("ID1", "ID2" )
    stringeq, neq, like, not like, len()Name eq “root”
    numbereq (=), neq (!=), gt (>), gte (>=), lt (<), lte (<=)Topic.Subscriptions len() > 0
    booleaneq, neqPassword.Enabled eq true
    ipeq, neqIPRanges avec [ ip eq 0.0.0.0/0 ]
    Règles de conformité

    Netskope provides a list of predefined rules to check your IaaS and SaaS environment for security posture compliance. For a complete list of predefined rules, see:

    • Règles prédéfinies AWS
    • Règles prédéfinies Azure
    • Règles prédéfinies de Google Cloud
    Common elements used to write a DSL rule

    The following elements are commonly used in a DSL rule.

    • with - Pour accéder aux éléments d'une liste.
    • “.“
    • where – To restrict evaluated assets.
    • Opérateurs - Par exemple, eq, gte, gt, lt, lte, neq.
    • Functions – Such as, like, has, in, len, isEarlierThan, isLaterThan, len.
    • Numeric range syntax – For example, to check for port 137 and port 138, include the following in the syntax.
      FromPort lte 138 and ToPort gte 13

      Note

      Will match any security group or firewall ruleset that has a port range including 137, 138 or both.

    Meilleures pratiques en matière de rédaction de règles DSL personnalisées

    Les meilleures pratiques suivantes sont recommandées lors de la rédaction de règles DSL personnalisées.

    1. Commencez par examiner les règles prédéfinies existantes. Si une règle prédéfinie peut effectuer les contrôles requis sur vos ressources IaaS, ajoutez-la à votre profil personnalisé.
    2. Si une règle existante répond partiellement à votre besoin, copiez-la et modifiez-la.
    3. Vérifiez les types de propriétés et les valeurs attendues du côté du fournisseur de services en nuage (CSP) et des entités prises en charge par Netskope. Les types et la hiérarchie peuvent être différents. Pour vérifier les types et les valeurs des propriétés :
      • on the CSP side use the CSP test environment through CLI.
      • du côté de Netskope, utilisez l'API Inventaire. Par exemple, obtenez des détails sur les ressources S3 Bucket dans AWS run,
        curl --request GET "https://&amp;lt;tenant_url&amp;gt;/api/v1/public_cloud/inventory?token=NS_API_TOKEN&amp;amp;limit=10&amp;amp;skip=0&amp;amp;resource_name=&amp;lt;name_of_asset&amp;gt;&amp;amp;resource_type=S3Bucket" | python -mjson.tool
    4. Testez la règle personnalisée New en exécutant une commande comme la suivante :
      curl --location --request POST "https://<tenant_url>/api/v1/public_cloud/rule_evaluate?token=NS_API_TOKEN" --header 'Content-Type: application/json' --data-raw '{ "cloud_provider": "aws", "rule_code": "S3Bucket should not have Access eq "Public"",  "instance": "NS_UI_CONNECTION_INSTANCE",  "resource_ids": [  ]  }'

      Assurez-vous que le nom de l'instance correspond au nom configuré dans votre pile de locataires AWS.

    5. Déboguer la règle en fonction des résultats du test. Netskope recommande de tester la règle en utilisant au moins deux valeurs de propriété dont l'une correspond à la règle et l'autre non. Par exemple, testez en utilisant différents utilisateurs tels que root, admin, non-admin. Lorsque vous testez des politiques, faites-le en utilisant à la fois des politiques en ligne et des politiques gérées.
    6. Consider false positives and false negatives in the rule output and refine the rule.
      • Incluez une clause "où" dans votre règle. Par exemple, pour signaler tout utilisateur non root qui ne s'est pas connecté au cours des 90 derniers jours, écrivez une règle du type,
        IAMUser where RootUser eq False and LastUsedTime isEarlierThan ( -90, "days" ) 
      • Assurez-vous de connaître les entités CSP et leur configuration. Il est important de connaître toutes les valeurs autorisées pour le bien afin de s'assurer qu'il n'y a pas de valeurs manquantes. Par exemple, pour vérifier un protocole TCP, vous devez savoir qu'en plus de tcp-only ("tcp"), il existe un joker "All Protocols" qui est enregistré sous la forme -1.

        Reportez-vous à la documentation de Netskope ainsi qu'à celle de CSP pour connaître toutes les valeurs prises en charge pour un champ d'attribut.

    Dans ce thème
    • Règles personnalisées utilisant un langage spécifique au domaine