Gérer les contrôles cloud

Compliance Manager inclut de nombreux contrôles cloud intégrés que vous pouvez ajouter à des frameworks et déployer dans votre environnement. Si nécessaire, vous pouvez créer et gérer vos propres contrôles cloud personnalisés, et mettre à jour les contrôles cloud intégrés.

Avant de commencer

Effectuez ces tâches avant de passer aux autres tâches de cette page.

Configurer les autorisations

Configurer la Google Cloud CLI

Dans la console Google Cloud , activez Cloud Shell.

Activer Cloud Shell

En bas de la console Google Cloud , une session Cloud Shell démarre et affiche une invite de ligne de commande. Cloud Shell est un environnement de shell dans lequel Google Cloud CLI est déjà installé, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

Pour configurer la gcloud CLI afin qu'elle utilise l'emprunt d'identité d'un compte de service pour s'authentifier auprès des Google APIs plutôt que d'utiliser vos identifiants utilisateur, exécutez la commande suivante :

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

Pour en savoir plus, consultez la section Emprunt d'identité d'un compte de service.

Afficher les contrôles cloud

Suivez les étapes ci-dessous pour afficher les contrôles cloud intégrés et les contrôles cloud personnalisés que vous avez déjà créés.

Console

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

    Accéder

  2. Sélectionnez votre organisation ou votre projet.

  3. Dans l'onglet Configurer, cliquez sur Contrôles cloud. Les commandes cloud disponibles s'affichent.

    Le tableau de bord indique les frameworks qui incluent le contrôle cloud et le nombre de ressources (organisation, dossiers et projets) auxquelles le contrôle cloud est appliqué.

  4. Pour afficher des informations sur un contrôle cloud, cliquez sur son nom.

CLI

Vous pouvez afficher des informations sur un contrôle cloud spécifique ou lister tous les contrôles cloud de votre organisation.

Afficher les détails d'un contrôle cloud

Pour afficher des informations sur un contrôle cloud spécifique, exécutez la commande gcloud compliance-manager cloud-controls describe :

gcloud compliance-manager cloud-controls describe CLOUD_CONTROL \
   --location=LOCATION \
   --organization=ORGANIZATION \
   [--major-revision-id=MAJOR_REVISION_ID]

Remplacez les valeurs suivantes :

  • CLOUD_CONTROL : nom du contrôle cloud

  • ORGANIZATION : ID de votre organisation

  • LOCATION : région dans laquelle le contrôle du cloud est stocké

  • MAJOR_REVISION_ID est un indicateur facultatif qui spécifie la version du contrôle cloud à afficher. Si vous n'incluez pas l'indicateur, la dernière version est renvoyée.

Par exemple, pour afficher un contrôle cloud portant le nom builtin-block-external-ip-addresses-for-vm-access et le numéro de révision majeur 1, exécutez la commande suivante :

gcloud compliance-manager cloud-controls describe \
   builtin-block-external-ip-addresses-for-vm-access \
   --organization=3589215982 \
   --location=global \
   --major-revision-id=1

Pour en savoir plus, consultez gcloud compliance-manager cloud-controls describe.

Obtenir la liste des contrôles cloud

Pour obtenir la liste des contrôles cloud de votre organisation, exécutez la commande gcloud compliance-manager cloud-controls list :

gcloud compliance-manager cloud-controls list \
   --location=LOCATION \
   --organization=ORGANIZATION

Remplacez les valeurs suivantes :

  • ORGANIZATION : ID de votre organisation

  • LOCATION : région dans laquelle les commandes cloud sont stockées

Par exemple, pour afficher tous les contrôles cloud de l'organisation 3589215982 stockés dans l'emplacement global, exécutez la commande suivante :

gcloud compliance-manager cloud-controls list \
   --organization=3589215982 \
   --location=global

Pour en savoir plus sur les options facultatives, consultez gcloud compliance-manager cloud-controls list.

Créer un contrôle cloud personnalisé

Lorsque vous créez un contrôle cloud personnalisé, vous appliquez une règle à n'importe quel type de ressource de l'inventaire des éléments cloud.

Console

Lorsque vous utilisez la console, vous pouvez créer des contrôles cloud personnalisés avec une règle qui s'applique à un type de ressource.

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

    Accéder

  2. Sélectionnez votre organisation ou votre projet.

  3. Dans l'onglet Configurer, cliquez sur Contrôles cloud. La liste des contrôles cloud disponibles s'affiche.

  4. Créez un contrôle cloud avec Gemini ou manuellement :

Utiliser Gemini

  1. Demandez à Gemini de générer un contrôle cloud pour vous. En fonction de votre requête, Gemini fournit un identifiant unique, un nom, une logique de détection associée et des mesures correctives possibles.

  2. Examinez les recommandations et apportez les modifications nécessaires.

  3. Enregistrez votre contrôle cloud personnalisé.

Créer manuellement

  1. Dans ID du contrôle cloud, indiquez un identifiant unique pour votre contrôle.

  2. Saisissez un nom et une description pour aider les utilisateurs de votre organisation à comprendre l'objectif du contrôle cloud personnalisé.

  3. Facultatif : Sélectionnez les catégories du contrôle. Cliquez sur Continuer.

  4. Sélectionnez un type de ressource disponible pour votre contrôle cloud personnalisé. Compliance Manager est compatible avec tous les types de ressources. Pour trouver le nom d'une ressource, consultez Types d'assets.

  5. Fournissez la logique de détection pour votre contrôle cloud, au format CEL (Common Expression Language).

    Les expressions CEL vous permettent de définir la manière dont vous souhaitez évaluer les propriétés d'une ressource. Pour en savoir plus et obtenir des exemples, consultez Écrire des règles pour les contrôles cloud personnalisés. Cliquez sur Continuer.

    Si votre règle d'évaluation n'est pas valide, une erreur s'affiche.

  6. Sélectionnez le niveau de gravité approprié pour les résultats.

  7. Rédigez vos instructions de correction afin que les responsables de la gestion des incidents et les administrateurs de votre organisation puissent résoudre les problèmes liés au contrôle du cloud. Cliquez sur Continuer.

  8. Vérifiez vos entrées, puis cliquez sur Créer.

CLI

Lorsque vous utilisez la gcloud CLI, vous pouvez créer un contrôle cloud personnalisé avec un maximum de trois règles. Chaque règle ne peut s'appliquer qu'à un seul type de ressource.

Pour créer un contrôle cloud personnalisé, exécutez la commande gcloud compliance-manager cloud-controls create :

gcloud compliance-manager cloud-controls create CLOUD_CONTROL \
   --location=LOCATION \
   --organization=ORGANIZATION \
   [--display-name=DISPLAY_NAME] \
   [--description=DESCRIPTION] \
   [--categories=[CATEGORIES,...]] \
   [--finding-category=FINDING_CATEGORY] \
   [--parameter-spec=[defaultValue=DEFAULTVALUE],[description=DESCRIPTION],[displayName=DISPLAYNAME],[isRequired=ISREQUIRED],[name=NAME],[substitutionRules=SUBSTITUTIONRULES],[validation=VALIDATION],[valueType=VALUETYPE]] \
   [--remediation-steps=REMEDIATION_STEPS] \
   [--rules=[celExpression=CELEXPRESSION],[description=DESCRIPTION],[ruleActionTypes=RULEACTIONTYPES]] \
   [--severity=SEVERITY] \
   [--supported-cloud-providers=[SUPPORTED_CLOUD_PROVIDERS,…]] \
   [--supported-target-resource-types=[SUPPORTED_TARGET_RESOURCE_TYPES,…]]

Remplacez les valeurs suivantes :

  • CLOUD_CONTROL : nom alphanumérique unique pour le contrôle cloud

  • ORGANIZATION : ID de votre organisation

  • LOCATION : région dans laquelle le contrôle du cloud est stocké

  • DISPLAY_NAME : nom lisible du contrôle cloud

  • DESCRIPTION : description facultative de l'objectif du contrôle cloud

  • CATEGORIES,… : paramètre facultatif qui définit les catégories auxquelles appartient le contrôle cloud. Pour obtenir la liste des catégories autorisées, consultez gcloud compliance-manager cloud-controls create.

  • FINDING_CATEGORY : valeur qui s'affiche dans le tableau de bord des résultats Security Command Center lorsque le contrôle cloud génère un résultat

  • --parameter-spec=[defaultValue=DEFAULTVALUE], \
     [description=DESCRIPTION], \
     [displayName= DISPLAYNAME], \
     [isRequired=ISREQUIRED], \
     [name=NAME], \
     [substitutionRules=SUBSTITUTIONRULES], \
     [validation=VALIDATION], \
     [valueType=VALUETYPE]...]
    

    sont les informations sur les paramètres facultatifs pour le contrôle du cloud, au format suivant :

    • DEFAULTVALUE : données appliquées si un utilisateur ne personnalise pas le paramètre lors du déploiement d'un framework. Les types de valeurs acceptés sont boolValue, numberValue, stringListValue ou stringValue.

    • DESCRIPTION : description facultative du contrôle

    • ISREQUIRED : true si le contrôle nécessite la définition d'un paramètre

    • NAME : nom du paramètre

    • SUBSTITUTIONRULES : indique comment et où le Gestionnaire de conformité injecte la valeur personnalisée du paramètre. Spécifiez le chemin ciblé dans la règle à l'aide d'une notation par points proto (par exemple, rules[0].org_policy_constraint...). Choisissez l'une des options suivantes :

      • attributeSubstitutionRule lorsque vous souhaitez injecter la valeur du paramètre directement dans un champ structurel de votre règle (par exemple, pour remplir une liste de valeurs restreintes dans un modèle de règle de contrainte de règle relative aux règles de l'organisation).

      • placeholderSubstitutionRule lorsque votre règle utilise une chaîne de texte (ou une expression CEL). La chaîne doit contenir une variable d'espace réservé préfixée par $ (par exemple, $deniedServices). Cette règle indique au compilateur de mapper le paramètre à cet espace réservé.

      L'exemple suivant crée un paramètre de liste nommé deniedServices avec le type STRINGLIST. Il utilise attributeSubstitutionRule pour ajouter les noms de services fournis par l'utilisateur (tels que compute.googleapis.com) directement dans une règle de règle d'administration personnalisée structurelle (denied_values) lors du déploiement :

      --parameter-spec='name=deniedServices,isRequired=true,valueType=STRINGLIST,substitutionRules=[{attributeSubstitutionRule={attribute="rules[0].org_policy_constraint.policy_rules[0].values.denied_values"}}]'
    • VALIDATION est l'ensemble des valeurs autorisées. Choisissez l'une des options suivantes :

      • Utilisez allowedValues pour appliquer une liste d'autorisation statique. Par exemple, limitez les paramètres de localisation à des champs de chaîne spécifiques : validation={allowedValues={values=[{stringValue=us-central1},{stringValue=us-west1}]}}

      • Utilisez intRange pour appliquer des limites numériques aux nombres entiers. Par exemple, définissez une période de conservation comprise entre 1 et 365 : validation={intRange={min=1,max=365}}

      • Utilisez regexpPattern pour appliquer la correspondance d'expression régulière sur le texte de la chaîne. Par exemple, pour exiger une dénomination alphanumérique stricte : validation={regexpPattern={pattern="^[a-z][-a-z0-9]*$"}}

    • VALUETYPE : type de données ou format de la valeur qu'un utilisateur fournit pour ce paramètre. Les types de valeurs acceptés sont STRING, BOOLEAN, STRINGLIST, NUMBER et ONEOF.

    Vous pouvez également spécifier un fichier JSON ou YAML qui définit les paramètres. Par exemple, --parameter-spec=path_to_file.(yaml|json). Développez la section suivante pour afficher des exemples de fichiers JSON et YAML.

    Exemple de fichier JSON

      [
        {
          "name": "deniedServices",
          "displayName": "Services Requiring CMEK",
          "description": "List of service names that must use Customer-Managed Encryption Keys.",
          "isRequired": true,
          "valueType": "STRINGLIST",
          "substitutionRules": [
            {
              "attributeSubstitutionRule": {
                "attribute": "rules[0].org_policy_constraint.policy_rules[0].values.denied_values"
              }
            }
          ]
        }
      ]
          

    Exemple de fichier YAML

      - name: deniedServices
        displayName: "Services Requiring CMEK"
        description: "List of service names that must use Customer-Managed Encryption Keys."
        isRequired: true
        valueType: STRINGLIST
        substitutionRules:
        - attributeSubstitutionRule:
            attribute: "rules[0].org_policy_constraint.policy_rules[0].values.denied_values"
          
  • REMEDIATION_STEPS : étapes requises pour résoudre les problèmes détectés. Cette chaîne est limitée à 400 caractères.

  • --rules=[celExpression=CELEXPRESSION],[description=DESCRIPTION],[ruleActionTypes=RULEACTIONTYPES] correspond à la règle que vous souhaitez appliquer, au format suivant :

    • CELEXPRESSION : expression CEL (Common Expression Language) de la règle. Pour savoir comment écrire des expressions CEL, consultez Écrire des règles pour les contrôles cloud personnalisés. Incluez les éléments suivants :

      • expression : expression CEL, avec un maximum de 1 000 caractères

      • resourceTypesValues : nom des ressources, au format SERVICE_NAME/type. Utilisez un tableau values pour lister tous les types de ressources auxquels vous souhaitez appliquer la règle (par exemple, values=[compute.googleapis.com/Instance]).

    • DESCRIPTION : description de la règle

    • RULEACTIONTYPES : action effectuée par la règle. Les valeurs acceptées sont rule-action-type-detective, rule-action-type-preventive et rule-action-type-audit.

    Par exemple, pour vérifier la période de rotation des clés Cloud Key Management Service, saisissez la commande suivante :

    --rules="[
      {
        \"celExpression\": {
          \"expression\": \"has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')\",
          \"resourceTypesValues\": {
            \"values\": [
              \"cloudkms.googleapis.com/CryptoKey\"
            ]
          }
        },
        \"description\": \"Check KMS key rotation period\",
        \"ruleActionTypes\": [
          \"rule-action-type-detective\"
        ]
      }
    ]"
    

    Vous pouvez également spécifier un fichier JSON ou YAML qui définit la règle. Par exemple, --rules=path_to_file.(yaml|json). Développez la section suivante pour afficher des exemples de fichiers JSON et YAML.

    Exemple de fichier JSON

      [
        {
          "celExpression": {
            "expression": "has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')",
            "resourceTypesValues": {
              "values": [
                "cloudkms.googleapis.com/CryptoKey"
              ]
            }
          },
          "description": "Check KMS key rotation period to ensure it is under 60 hours.",
          "ruleActionTypes": [
            "rule-action-type-detective"
          ]
        }
      ]
          

    Exemple de fichier YAML

      - celExpression:
          expression: "has(resource.data.rotationPeriod) && resource.data.rotationPeriod < duration('60h')"
          resourceTypesValues:
            values:
            - cloudkms.googleapis.com/CryptoKey
        description: "Check KMS key rotation period to ensure it is under 60 hours."
        ruleActionTypes:
        - rule-action-type-detective
          
  • SEVERITY : niveau de criticité du contrôle cloud. Les valeurs acceptées sont critical, high, medium et low.

  • SUPPORTED_CLOUD_PROVIDERS,… : fournisseurs de services cloud auxquels s'applique ce contrôle du cloud. La seule valeur acceptée est gcp.

  • SUPPORTED_TARGET_RESOURCE_TYPES,… : types de ressources (organisation, dossier, projet ou dossier compatible avec les applications dans App Hub) compatibles avec le contrôle cloud. Les valeurs acceptées sont target-resource-crm-type-folder, target-resource-crm-type-org, target-resource-crm-type-project et target-resource-type-application.

Par exemple, pour créer un contrôle cloud qui applique les emplacements des ressources, exécutez la commande suivante :

  gcloud compliance-manager cloud-controls create \
     restrict-resource-locations \
     --organization=3589215982 \
     --location=global \
     --display-name="Restrict Resource Locations" \
     --description="Enforces checks to ensure resources are only deployed in approved cloud regions." \
     --severity=high \
     --finding-category="LOCATION_VIOLATION" \
     --supported-cloud-providers="gcp" \
     --supported-target-resource-types="target-resource-crm-type-project" \
     --parameter-spec='name=allowedLocations,isRequired=true,valueType=STRINGLIST,substitutionRules=[{placeholderSubstitutionRule={attribute="rules[0].cel_expression.expression"}}]' \
     --rules="[{\"celExpression\": {\"expression\": \"resource.location in \$allowedLocations\", \"resourceTypesValues\": {\"values\": [\"compute.googleapis.com/Instance\"]}}, \"description\": \"Check Compute Engine instance locations\", \"ruleActionTypes\": [\"rule-action-type-detective\"]}]"

Pour créer le même contrôle, mais utiliser des fichiers YAML pour définir les paramètres et les règles, exécutez la commande suivante :

     gcloud compliance-manager cloud-controls create \
     restrict-resource-locations \
     --organization=3589215982 \
     --location=global \
     --display-name="Restrict Resource Locations" \
     --description="Enforces checks to ensure resources are only deployed in approved cloud regions." \
     --severity=high \
     --finding-category="LOCATION_VIOLATION" \
     --supported-cloud-providers="gcp" \
     --supported-target-resource-types="target-resource-crm-type-project" \
     --parameter-spec=parameters.yaml \
     --rules=rules.yaml

Pour en savoir plus, consultez gcloud compliance-manager cloud-controls create.

Terraform

Lorsque vous utilisez Terraform, vous pouvez créer un contrôle cloud personnalisé avec un maximum de trois règles. Chaque règle ne peut s'appliquer qu'à un seul type de ressource.

L'exemple suivant montre comment créer un contrôle cloud personnalisé à l'aide de Terraform.

resource "google_cloud_security_compliance_cloud_control" "example" {
  organization        = "123456789"
  location            = "global"
  cloud_control_id    = "example-cloudcontrol"

  display_name      = "TF test CloudControl Name"
  description       = "A test cloud control for security compliance"
  categories        = ["CC_CATEGORY_INFRASTRUCTURE"]
  severity          = "HIGH"
  finding_category  = "SECURITY_POLICY"
  remediation_steps = "Review and update the security configuration according to best practices."

  supported_cloud_providers        = ["GCP"]

  rules {
    description         = "Ensure compute instances have secure boot enabled"
    rule_action_types   = ["RULE_ACTION_TYPE_DETECTIVE"]

    cel_expression {
      expression = "resource.data.shieldedInstanceConfig.enableSecureBoot == true"
      resource_types_values {
        values = ["compute.googleapis.com/Instance"]
      }
    }
  }

  parameter_spec {
    name         = "location"
    display_name = "Resource Location"
    description  = "The location where the resource should be deployed"
    value_type   = "STRING"
    is_required  = true

    default_value {
      string_value = "us-central1"
    }

    validation {
      regexp_pattern {
        pattern = "^[a-z]+-[a-z]+[0-9]$"
      }
    }
  }

  parameter_spec {
    name         = "enable_secure_boot"
    display_name = "Enable Secure Boot"
    description  = "Whether to enable secure boot for instances"
    value_type   = "BOOLEAN"
    is_required  = true

    default_value {
      bool_value = true
    }

    substitution_rules {
      attribute_substitution_rule {
        attribute = "rules[0].cel_expression.expression"
      }
    }

    validation {
      allowed_values {
        values {
          bool_value = true
        }
      }
    }
  }

  parameter_spec {
    name         = "max_instances"
    display_name = "Maximum Instances"
    description  = "Maximum number of instances allowed"
    value_type   = "NUMBER"
    is_required  = false

    default_value {
      number_value = 10
    }

    substitution_rules {
      placeholder_substitution_rule {
        attribute = "rules[0].description"
      }
    }

    validation {
      int_range {
        min = "1"
        max = "100"
      }
    }
  }

  parameter_spec {
    name         = "allowed_regions"
    display_name = "Allowed Regions"
    description  = "List of regions where resources can be deployed"
    value_type   = "STRINGLIST"
    is_required  = true

    default_value {
      string_list_value {
        values = ["us-central1", "us-east1", "us-west1"]
      }
    }

    validation {
      allowed_values {
        values {
          string_list_value {
            values = ["us-central1", "us-east1"]
          }
        }
        values {
          string_list_value {
            values = ["us-west1", "us-west2"]
          }
        }
      }
    }
  }

  parameter_spec {
    name         = "environment_type"
    display_name = "Environment Type"
    description  = "The type of environment"
    value_type   = "STRING"
    is_required  = true

    default_value {
      string_value = "production"
    }

    validation {
      allowed_values {
        values {
          string_value = "production"
        }
        values {
          string_value = "staging"
        }
        values {
          number_value = 1
        }
      }
    }
  }
}

Modifier un contrôle cloud personnalisé

Une fois que vous avez créé un contrôle cloud, vous pouvez modifier son nom, sa description, ses règles, ses étapes de correction et son niveau de gravité. Vous ne pouvez pas modifier la catégorie de contrôle cloud.

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

    Accéder

  2. Sélectionnez votre organisation ou votre projet.

  3. Dans l'onglet Configurer, cliquez sur Contrôles cloud. La liste des commandes cloud disponibles s'affiche.

  4. Cliquez sur le contrôle cloud que vous souhaitez modifier.

  5. Sur la page Détails des contrôles cloud, vérifiez que le contrôle cloud n'est pas inclus dans un framework. Si nécessaire, modifiez le framework pour supprimer le contrôle cloud.

  6. Cliquez sur Modifier.

  7. Sur la page Modifier le contrôle cloud personnalisé, modifiez le nom et la description selon vos besoins. Cliquez sur Continuer.

  8. Mettez à jour les règles, le niveau de gravité des résultats et les étapes de correction. Cliquez sur Continuer.

  9. Vérifiez les modifications apportées, puis cliquez sur Enregistrer.

Mettre à jour un contrôle cloud intégré vers une version plus récente

Google publie régulièrement des mises à jour de ses contrôles cloud intégrés à mesure que les services déploient de nouvelles fonctionnalités ou que de nouvelles bonnes pratiques émergent. Les mises à jour peuvent inclure de nouvelles commandes ou des modifications apportées aux commandes existantes.

Vous pouvez afficher les versions des contrôles cloud intégrés dans le tableau de bord des contrôles cloud de l'onglet Configurer ou sur la page d'informations sur les contrôles cloud.

Google vous avertit dans les notes de version lorsque les éléments suivants sont mis à jour :

  • Nom du contrôle cloud
  • Catégorie de résultats
  • Modification de la logique de détection ou de prévention dans une règle
  • Logique sous-jacente d'une règle

Pour mettre à jour un contrôle cloud après avoir reçu une notification, vous devez dissocier et redéployer les frameworks qui incluent le contrôle cloud. Pour obtenir des instructions, consultez Mettre à jour un framework vers une version plus récente.

Supprimer un contrôle cloud personnalisé

Supprimez un contrôle cloud lorsqu'il n'est plus nécessaire. Vous ne pouvez supprimer que les contrôles cloud que vous créez. Vous ne pouvez pas supprimer les contrôles cloud intégrés.

Console

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

    Accéder

  2. Sélectionnez votre organisation ou votre projet.

  3. Dans l'onglet Configurer, cliquez sur Contrôles cloud. La liste des commandes cloud disponibles s'affiche.

  4. Cliquez sur le contrôle cloud que vous souhaitez supprimer.

  5. Sur la page Détails des contrôles cloud, vérifiez que le contrôle cloud n'est pas inclus dans un framework. Si nécessaire, modifiez le framework pour supprimer le contrôle cloud.

  6. Cliquez sur Supprimer.

  7. Dans la fenêtre Supprimer, lisez le message. Saisissez Delete, puis cliquez sur Confirmer.

CLI

Pour supprimer un contrôle cloud personnalisé, exécutez la commande gcloud compliance-manager cloud-controls delete :

gcloud compliance-manager cloud-controls delete CLOUD_CONTROL \
   --location=LOCATION \
   --organization=ORGANIZATION

Remplacez les valeurs suivantes :

  • CLOUD_CONTROL : nom du contrôle cloud

  • ORGANIZATION : ID de votre organisation

  • LOCATION : région dans laquelle le contrôle du cloud est stocké

Par exemple, pour supprimer un contrôle cloud nommé restrict-resource-locations, exécutez la commande suivante :

gcloud compliance-manager cloud-controls delete \
   restrict-resource-locations \
   --organization=3589215982 \
   --location=global

Pour en savoir plus, consultez gcloud compliance-manager cloud-controls delete.

Mappage des détecteurs Security Health Analytics aux contrôles cloud

Le tableau suivant montre comment les contrôles cloud Compliance Manager sont mappés aux détecteurs Security Health Analytics.

Catégorie de résultat dans Security Health Analytics Nom du contrôle cloud dans le Gestionnaire de conformité

ACCESS_TRANSPARENCY_DISABLED

Activer Access Transparency

ADMIN_SERVICE_ACCOUNT

Bloquer les rôles d'administrateur des comptes de service

ALLOWED_INGRESS_ORG_POLICY

Configurer le paramètre "Paramètres d'entrée autorisés" pour la contrainte de règle d'administration Cloud Run

ALLOWED_VPC_EGRESS_ORG_POLICY

Configurer la contrainte de règle d'administration "Paramètres de sortie VPC autorisés" pour Cloud Run

ALLOYDB_AUTO_BACKUP_DISABLED

Activer les sauvegardes automatiques AlloyDB sur un cluster

ALLOYDB_BACKUPS_DISABLED

Activer les sauvegardes AlloyDB sur un cluster

ALLOYDB_CMEK_DISABLED

Activer CMEK pour les clusters AlloyDB

ALLOYDB_LOG_ERROR_VERBOSITY

Définir l'option de verbosité des erreurs de journaux pour les instances AlloyDB

ALLOYDB_LOG_MIN_ERROR_STATEMENT_SEVERITY

Définir l'option "log_min_error_statement" pour les instances AlloyDB

ALLOYDB_LOG_MIN_MESSAGES

Définir le flag "Nombre minimal de messages de journaux" pour les instances AlloyDB

ALLOYDB_PUBLIC_IP

Bloquer les adresses IP publiques pour les instances de cluster AlloyDB

ALPHA_CLUSTER_ENABLED

Désactiver les fonctionnalités alpha sur les clusters GKE

API_KEY_APPS_UNRESTRICTED

Restreindre les clés API aux API requises uniquement

API_KEY_EXISTS

Non disponible

API_KEY_NOT_ROTATED

Exiger la rotation de la clé API

AUDIT_CONFIG_NOT_MONITORED

Configurer des métriques de journal et des alertes pour les modifications apportées à Audit Logging

AUDIT_LOGGING_DISABLED

Implémenter la journalisation des événements pour les services Google Cloud

AUTO_BACKUP_DISABLED

Activer les sauvegardes automatiques pour les bases de données Cloud SQL

AUTO_REPAIR_DISABLED

Activer la réparation automatique pour les clusters GKE

AUTO_UPGRADE_DISABLED

Activer la mise à niveau automatique sur les clusters GKE

BIGQUERY_TABLE_CMEK_DISABLED

Activer CMEK pour les tables BigQuery

BINARY_AUTHORIZATION_DISABLED

Exiger l'autorisation binaire sur un cluster

BUCKET_CMEK_DISABLED

Activer CMEK pour les buckets Cloud Storage

BUCKET_IAM_NOT_MONITORED

Configurer des métriques et des alertes de journal pour les modifications apportées aux règles IAM Cloud Storage

BUCKET_LOGGING_DISABLED

Exiger la journalisation des buckets Cloud Storage

BUCKET_POLICY_ONLY_DISABLED

Activer l'accès uniforme au niveau du bucket sur les buckets Cloud Storage

CLOUD_ASSET_API_DISABLED

Activer le service d'inventaire des éléments cloud

CLUSTER_LOGGING_DISABLED

Activer Cloud Logging sur les clusters GKE

CLUSTER_MONITORING_DISABLED

Activer Cloud Monitoring sur les clusters GKE

CLUSTER_PRIVATE_GOOGLE_ACCESS_DISABLED

Activer l'accès privé à Google sur une instance

CLUSTER_SECRETS_ENCRYPTION_DISABLED

Activer le chiffrement sur les clusters GKE

CLUSTER_SHIELDED_NODES_DISABLED

Activer les nœuds GKE protégés sur un cluster

COMPUTE_PROJECT_WIDE_SSH_KEYS_ALLOWED

Bloquer les clés SSH à l'échelle du projet sur les instances Compute Engine

COMPUTE_SECURE_BOOT_DISABLED

Activer le démarrage sécurisé sur les instances Compute Engine

COMPUTE_SERIAL_PORTS_ENABLED

Bloquer les ports série pour les instances Compute Engine

CONFIDENTIAL_COMPUTING_DISABLED

Activer l'informatique confidentielle pour les instances Compute Engine

COS_NOT_USED

Exiger Container-Optimized OS pour un cluster GKE

CUSTOM_ORG_POLICY_VIOLATION

Non disponible

CUSTOM_ROLE_NOT_MONITORED

Configurer des métriques de journal et des alertes pour les modifications apportées aux rôles personnalisés

DATAPROC_CMEK_DISABLED

Exiger CMEK sur les clusters Dataproc

DATAPROC_IMAGE_OUTDATED

Utiliser les dernières versions d'image sur les clusters Dataproc

DATASET_CMEK_DISABLED

Activer CMEK pour les ensembles de données BigQuery

DEFAULT_NETWORK

Utiliser des réseaux avec des règles de pare-feu personnalisées

DEFAULT_SERVICE_ACCOUNT_USED

Utiliser des comptes de service personnalisés pour les instances Compute Engine

DISABLE_VPC_EXTERNAL_IP_V6_ORG_POLICY

Configurer la règle d'administration "Désactiver l'utilisation d'IPv6 à l'extérieur du VPC"

DISABLE_VPC_INTERNAL_IP_V6_ORG_POLICY

Configurer la règle d'administration "Désactiver l'utilisation d'IPv6 à l'extérieur du VPC"

DISABLED_SERIAL_PORT_ACCESS_ORG_POLICY

Configurer le règlement "Désactiver la journalisation du port série des VM sur Stackdriver" au niveau de l'organisation

DISK_CMEK_DISABLED

Activer CMEK sur les disques persistants Compute Engine

DISK_CSEK_DISABLED

Activer les clés de chiffrement fournies par le client sur les disques persistants Compute Engine

DNS_LOGGING_DISABLED

Activer la surveillance des journaux Cloud DNS

DNSSEC_DISABLED

Activer DNSSEC pour Cloud DNS

EGRESS_DENY_RULE_NOT_SET

Appliquer la règle de pare-feu de sortie "Tout refuser"

ESSENTIAL_CONTACTS_NOT_CONFIGURED

Définir les contacts essentiels

FIREWALL_NOT_MONITORED

Configurer des métriques de journal et des alertes pour les modifications apportées au pare-feu de réseau VPC

FIREWALL_RULE_LOGGING_DISABLED

Activer la journalisation des règles de pare-feu

FLOW_LOGS_DISABLED

Activer les journaux de flux pour un sous-réseau VPC

FULL_API_ACCESS

Restreindre l'accès aux API Google Cloud pour les instances Compute Engine

HTTP_LOAD_BALANCER

Appliquer le trafic HTTPS uniquement

INCORRECT_BQ4G_SERVICE_PERIMETER

Définir des périmètres de service dans VPC Service Controls

INSTANCE_OS_LOGIN_DISABLED

Activer OS Login

INTEGRITY_MONITORING_DISABLED

Activer la surveillance de l'intégrité sur les clusters GKE

INTRANODE_VISIBILITY_DISABLED

Activer la visibilité intranœud pour les clusters GKE

IP_ALIAS_DISABLED

Activer la plage d'alias d'adresse IP pour les clusters GKE

IP_FORWARDING_ENABLED

Empêcher le transfert IP sur les instances Compute Engine

KMS_KEY_NOT_ROTATED

Définir la période de rotation des clés Cloud KMS

KMS_PROJECT_HAS_OWNER

Non disponible

KMS_PUBLIC_KEY

Non disponible

KMS_ROLE_SEPARATION

Appliquer la séparation des tâches

LEGACY_AUTHORIZATION_ENABLED

Bloquer l'ancienne autorisation sur les clusters GKE

LEGACY_METADATA_ENABLED

Désactiver les anciens points de terminaison du serveur de métadonnées sur Compute Engine

LEGACY_NETWORK

Ne pas utiliser les anciens réseaux

LOAD_BALANCER_LOGGING_DISABLED

Activer la journalisation de l'équilibreur de charge

LOCKED_RETENTION_POLICY_NOT_SET

Verrouiller les règles de conservation des buckets de stockage

LOG_NOT_EXPORTED

Configurer des récepteurs de journaux

MASTER_AUTHORIZED_NETWORKS_DISABLED

Activer les réseaux autorisés pour le plan de contrôle sur les clusters GKE

MFA_NOT_ENFORCED

Non disponible

NETWORK_NOT_MONITORED

Configurer les métriques de journal et les alertes pour les modifications apportées au réseau VPC

NETWORK_POLICY_DISABLED

Activer les règles de réseau sur les clusters GKE

NODEPOOL_BOOT_CMEK_DISABLED

Activer CMEK sur les disques de démarrage des pools de nœuds GKE

NODEPOOL_SECURE_BOOT_DISABLED

Activer le démarrage sécurisé pour les nœuds GKE protégés

NON_ORG_IAM_MEMBER

Non disponible

OBJECT_VERSIONING_DISABLED

Activer la gestion des versions d'objets sur les buckets

OPEN_CASSANDRA_PORT

Bloquer les connexions aux ports Cassandra depuis toutes les adresses IP

OPEN_CISCOSECURE_WEBSM_PORT

Bloquer les connexions aux ports CiscoSecure/WebSM depuis toutes les adresses IP

OPEN_DIRECTORY_SERVICES_PORT

Bloquer les connexions aux ports des services d'annuaire depuis toutes les adresses IP

OPEN_DNS_PORT

Bloquer les connexions aux ports DNS depuis toutes les adresses IP

OPEN_ELASTICSEARCH_PORT

Bloquer les connexions aux ports Elasticsearch à partir de toutes les adresses IP

OPEN_FIREWALL

Non disponible

OPEN_FTP_PORT

Bloquer les connexions aux ports FTP depuis toutes les adresses IP

OPEN_GROUP_IAM_MEMBER

Non disponible

OPEN_HTTP_PORT

Bloquer les connexions aux ports HTTP à partir de toutes les adresses IP

OPEN_LDAP_PORT

Bloquer les connexions aux ports LDAP depuis toutes les adresses IP

OPEN_MEMCACHED_PORT

Bloquer les connexions aux ports Memcached à partir de toutes les adresses IP

OPEN_MONGODB_PORT

Bloquer les connexions aux ports MongoDB à partir de toutes les adresses IP

OPEN_MYSQL_PORT

Bloquer les connexions aux ports MySQL depuis toutes les adresses IP

OPEN_NETBIOS_PORT

Bloquer les connexions aux ports NetBIOS à partir de toutes les adresses IP

OPEN_ORACLEDB_PORT

Bloquer les connexions aux ports Oracle Database à partir de toutes les adresses IP

OPEN_POP3_PORT

Bloquer les connexions aux ports du serveur POP3 depuis toutes les adresses IP

OPEN_POSTGRESQL_PORT

Bloquer les connexions aux ports du serveur PostgreSQL depuis toutes les adresses IP

OPEN_RDP_PORT

Bloquer l'accès au port RDP

OPEN_REDIS_PORT

Bloquer les connexions aux ports du serveur Redis à partir de toutes les adresses IP

OPEN_SMTP_PORT

Bloquer les connexions aux ports du serveur SMTP à partir de toutes les adresses IP

OPEN_SSH_PORT

Bloquer l'accès au port SSH

OPEN_TELNET_PORT

Bloquer les connexions aux ports du serveur Telnet à partir de toutes les adresses IP

ORG_POLICY_CONFIDENTIAL_VM_POLICY

Activer la contrainte de règle d'administration Confidential VM

OS_LOGIN_DISABLED

Activer OS Login pour toutes les instances au niveau du projet

OVER_PRIVILEGED_ACCOUNT

Utiliser des comptes de service avec le moins de privilèges pour les clusters GKE

OVER_PRIVILEGED_SCOPES

Créer des clusters GKE avec des niveaux d'accès limités au compte de service

OVER_PRIVILEGED_SERVICE_ACCOUNT_USER

Bloquer les rôles d'administrateur des comptes de service

OWNER_NOT_MONITORED

Non disponible

POD_SECURITY_POLICY_DISABLED

Non disponible

PRIMITIVE_ROLES_USED

Restreindre les anciens rôles IAM

PRIVATE_CLUSTER_DISABLED

Activer les clusters privés pour GKE

PRIVATE_GOOGLE_ACCESS_DISABLED

Activer l'accès privé à Google pour les sous-réseaux VPC

PUBLIC_BUCKET_ACL

Restreindre l'accès public aux buckets Cloud Storage

PUBLIC_COMPUTE_IMAGE

Restreindre l'accès public aux images de calcul

PUBLIC_DATASET

Restreindre l'accès public aux ensembles de données BigQuery

PUBLIC_IP_ADDRESS

Limiter les adresses IP publiques aux instances Compute Engine

PUBLIC_LOG_BUCKET

Restreindre l'accès public aux buckets Cloud Storage

PUBLIC_SQL_INSTANCE

Limiter l'accès public aux instances de base de données Cloud SQL

PUBSUB_CMEK_DISABLED

Chiffrer un sujet Pub/Sub avec CMEK

QL_LOG_STATEMENT_STATS_ENABLED

Activer le flag "log_statement" pour PostgreSQL

REDIS_ROLE_USED_ON_ORG

Non disponible

RELEASE_CHANNEL_DISABLED

Abonner un cluster GKE à un canal de publication

REQUIRE_OS_LOGIN_ORG_POLICY

Activer OS Login

REQUIRE_VPC_CONNECTOR_ORG_POLICY

Définir la sortie du connecteur VPC pour les fonctions Cloud Run

RESTRICT_AUTHORIZED_NETWORKS_ORG_POLICY

Activer la contrainte de règle d'administration "Limiter le nombre de réseaux autorisés sur les instances Cloud SQL"

ROUTE_NOT_MONITORED

Configurer des métriques et des alertes de journal pour les modifications apportées aux routes VPC

RSASHA1_FOR_SIGNING

Éviter RSASHA1 pour la signature DNSSEC

S3_BUCKET_ACCESS_LOGGING_ENABLED_CLOUDTRAIL_S3_BUCKET

Non disponible

S3_BUCKETS_CONFIGURED_BLOCK_PUBLIC_ACCESS_BUCKET_AND_ACCOUNT_SETTINGS

Non disponible

SERVICE_ACCOUNT_KEY_NOT_ROTATED

Exiger la rotation des clés de compte de service

SERVICE_ACCOUNT_ROLE_SEPARATION

Appliquer la séparation des tâches

SHIELDED_VM_DISABLED

Activer les VM protégées pour les instances Compute Engine

SKIP_DEFAULT_NETWORK_CREATION_ORG_POLICY

Limiter la création de réseaux par défaut pour les instances Compute Engine

SQL_CMEK_DISABLED

Activer CMEK pour les bases de données Cloud SQL

SQL_CONTAINED_DATABASE_AUTHENTICATION

Désactiver le flag d'authentification de la base de données autonome pour SQL Server

SQL_CROSS_DB_OWNERSHIP_CHAINING

Désactiver l'indicateur de chaînage de propriété entre les bases de données pour SQL Server

SQL_EXTERNAL_SCRIPTS_ENABLED

Désactiver l'option "Scripts externes activés" pour SQL Server

SQL_INSTANCE_NOT_MONITORED

Configurer des métriques et des alertes de journal pour les modifications de configuration Cloud SQL

SQL_LOCAL_INFILE

Désactiver le flag local_infile pour MySQL

SQL_LOG_CHECKPOINTS_DISABLED

Activer le flag de points de contrôle des journaux pour PostgreSQL

SQL_LOG_CONNECTIONS_DISABLED

Activer le flag "Log Connections" pour PostgreSQL

SQL_LOG_DISCONNECTIONS_DISABLED

Activer le flag "Log Disconnections" pour PostgreSQL

SQL_LOG_DURATION_DISABLED

Activer le flag de durée du journal pour l'instance PostgreSQL

SQL_LOG_ERROR_VERBOSITY

Activer le flag de verbosité des erreurs de journal pour PostgreSQL

SQL_LOG_EXECUTOR_STATS_ENABLED

Désactiver le flag de statistiques de l'exécuteur de journaux pour PostgreSQL

SQL_LOG_HOSTNAME_ENABLED

Désactiver le flag de nom d'hôte de journaux pour PostgreSQL

SQL_LOG_LOCK_WAITS_DISABLED

Activer le flag "Log Locks Wait" pour l'instance PostgreSQL

SQL_LOG_MIN_DURATION_STATEMENT_ENABLED

Désactiver le flag d'instruction de durée minimale des journaux pour PostgreSQL

SQL_LOG_MIN_ERROR_STATEMENT_SEVERITY

Activer le flag "log_min_error_statement" pour PostgreSQL

SQL_LOG_MIN_ERROR_STATEMENT_SEVERITY

Non disponible

SQL_LOG_MIN_MESSAGE

Activer le flag "log_min_messages" pour PostgreSQL

SQL_LOG_PARSER_STATS_ENABLED

Désactiver le flag de statistiques de l'analyseur de journaux pour PostgreSQL

SQL_LOG_PLANNER_STATS_ENABLED

Désactiver le flag de statistiques du planificateur de journaux pour PostgreSQL

SQL_LOG_STATEMENT

Activer le flag "log_statement" pour PostgreSQL

SQL_LOG_TEMP_FILES

Activer le flag "Log Temp Files" pour l'instance PostgreSQL

SQL_NO_ROOT_PASSWORD

Non disponible

SQL_PUBLIC_IP

Bloquer les adresses IP publiques pour les instances Cloud SQL

SQL_REMOTE_ACCESS_ENABLED

Désactiver le flag d'accès à distance pour SQL Server

SQL_SCANNER

Activer le chiffrement SSL sur les instances AlloyDB

SQL_SKIP_SHOW_DATABASE_DISABLED

Activer le flag "skip_show_database" pour MySQL

SQL_TRACE_FLAG_3625

Activer l'indicateur de trace de base de données 3625 pour SQL Server

SQL_USER_CONNECTIONS_CONFIGURED

Ne pas utiliser le flag "user connections" pour SQL Server

SQL_USER_OPTIONS_CONFIGURED

Ne pas utiliser le flag d'options utilisateur pour SQL Server

SQL_WEAK_ROOT_PASSWORD

Non disponible

SSL_NOT_ENFORCED

Appliquer SSL pour toutes les connexions entrantes à la base de données

TOO_MANY_KMS_USERS

Limiter à trois le nombre d'utilisateurs de clés cryptographiques KMS

UNIFORM_BUCKET_LEVEL_ACCESS_ORG_POLICY

Activer l'accès uniforme au niveau du bucket sur les buckets Cloud Storage

USER_MANAGED_SERVICE_ACCOUNT_KEY

Restreindre les clés de compte de service gérées par l'utilisateur

VPC_FLOW_LOGS_SETTINGS_NOT_RECOMMENDED

Non disponible

WEAK_SSL_POLICY

Restreindre les stratégies SSL non sécurisées pour les instances Compute Engine

WEB_UI_ENABLED

Ne pas utiliser l'interface utilisateur Web de Kubernetes

WORKLOAD_IDENTITY_DISABLED

Activer la fédération d'identité de charge de travail pour GKE sur les clusters

Étapes suivantes