Configurer Cloud IDS

Restez organisé à l'aide des collections Enregistrez et classez les contenus selon vos préférences.

Suivez ces instructions pour configurer Cloud IDS pour votre application. Pour obtenir des informations conceptuelles sur Cloud IDS, consultez la page Présentation de Cloud IDS.

Avant de commencer

Avant de configurer Cloud IDS, vous devez remplir les conditions suivantes.

Configurer des autorisations IAM pour Cloud IDS

Cloud IDS possède trois rôles IAM (Identity and Access Management). Vous pouvez utiliser les exemples de commandes ci-dessous pour accorder à un compte principal les autorisations IAM nécessaires.

  • roles/ids.admin : les comptes principaux de projet avec le rôle d'administrateur Cloud IDS (roles/ids.admin) peuvent créer des points de terminaison IDS. Si vous êtes propriétaire ou éditeur de projet, vous disposez déjà de cette autorisation et vous n'avez pas besoin du rôle explicite ids.admin pour créer des points de terminaison IDS.

    gcloud projects add-iam-policy-binding PROJECT_ID --role=roles/ids.admin --member=user:USER_NAME ;
    

    Ce rôle permet d'effectuer les opérations suivantes:

    • Créer un point de terminaison
    • Supprimer un point de terminaison
    • Obtenir un point de terminaison
    • Lister le point de terminaison
  • roles/ids.viewer : les lecteurs de projet et les comptes principaux dotés du rôle de lecteur Cloud IDS (roles/ids.viewer) disposent d'un accès en lecture seule aux points de terminaison IDS. Si vous êtes propriétaire, éditeur ou lecteur de projet, vous disposez déjà de cette autorisation.

    gcloud projects add-iam-policy-binding PROJECT_ID --role=roles/ids.viewer --member=user:USER_NAME ;
    
  • roles/compute.packetMirroringUser: autorisation nécessaire pour attaquer une règle de mise en miroir de paquets vers le point de terminaison IDS. Si vous disposez du rôle compute.securityAdmin ou container.serviceAgent, vous disposez déjà de cette autorisation.

    gcloud projects add-iam-policy-binding PROJECT_ID --role=roles/compute.packetMirroringUser --member=user:USER_NAME ;
    
  • roles/logging.viewer: autorisation supplémentaire requise pour afficher les menaces récentes, qui est une fonctionnalité essentielle de Cloud IDS. Pour en savoir plus sur ce rôle, consultez le guide du contrôle des accès.

    gcloud projects add-iam-policy-binding PROJECT_ID --role=roles/logging.viewer --member=user:USER_NAME ;
    

Configurer l'accès aux services privés

Pour créer des points de terminaison IDS, vous devez activer l'API Service Networking et configurer l'appairage de réseaux pour le réseau cloud privé virtuel (VPC). Cette opération ne doit être effectuée qu'une seule fois par projet client à l'aide de Google Cloud Console ou de Google Cloud CLI.

Pour configurer l'accès aux services privés, procédez comme suit:

  1. Activez l'API Service Networking à l'aide de la commande suivante. Remplacez PROJECT_ID par votre ID de projet :

    gcloud services enable servicenetworking.googleapis.com \
     --project=PROJECT_ID
    
  2. Si vous n'avez pas encore attribué de plage d'adresses IP à votre réseau VPC, vous devez en allouer une pour les services Google de votre réseau VPC. Vous pouvez omettre le champ addresses dans la commande suivante, auquel cas Google Cloud sélectionne une plage d'adresses non utilisée dans votre réseau VPC. Exécutez la commande suivante :

    gcloud compute addresses create RESERVED_RANGE_NAME \
      --global \
      --purpose=VPC_PEERING \
      --addresses=192.168.0.0 \
      --prefix-length=16 \
      --description="DESCRIPTION" \
      --network=VPC_NETWORK
    

    Remplacez les éléments suivants :

    • RESERVED_RANGE_NAME: nom de la plage allouée, tel que my-allocated-range

    • DESCRIPTION: description de la plage, par exemple allocated for my-service

    • VPC_NETWORK: nom de votre réseau VPC, tel que my-vpc-network

  3. Créez une connexion privée à un producteur de services. La connexion privée établit une connexion d'appairage de réseaux VPC entre votre réseau VPC et le réseau du producteur de services. Utilisez la commande suivante. La commande lance une opération de longue durée et renvoie un nom d'opération.

    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --ranges=RESERVED_RANGE_NAME \
      --network=VPC_NETWORK \
      --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • RESERVED_RANGE_NAME: nom d'une ou de plusieurs plages allouées

    • VPC_NETWORK: nom de votre réseau VPC

    • PROJECT_ID : ID du projet contenant votre réseau VPC

    Vous pouvez vérifier si l'opération a abouti à l'aide de la commande suivante. Remplacez OPERATION_NAME par le nom d'opération renvoyé à l'étape précédente:

    gcloud services vpc-peerings operations describe \
        --name=OPERATION_NAME
    

Répétez les étapes 2 et 3 pour chaque réseau VPC que vous souhaitez surveiller.

Créer un point de terminaison Cloud IDS

Nous vous recommandons de créer un point de terminaison IDS pour chaque région dans laquelle vous avez déployé des charges de travail. Vous pouvez également créer plusieurs points de terminaison IDS par région. Procédez comme suit pour créer un point de terminaison IDS et lui attribuer un profil de service IDS.

Console

  1. Dans Google Cloud Console, accédez à la page Sécurité du réseau.

    Accéder à la page "Sécurité du réseau"

  2. Sur la page Cloud IDS, sélectionnez l'onglet Endpoints (Points de terminaison).

Configurez le point de terminaison:

  1. Cliquez sur Créer un point de terminaison.
  2. Saisissez un nom dans le champ Nom du point de terminaison.
  3. Facultatif: saisissez une description dans le champ Description.
  4. Cliquez sur la liste déroulante Réseau, puis sélectionnez le réseau que vous souhaitez que Cloud IDS inspecte.
  5. Choisissez la région et la zone de votre réseau ou sous-réseau dans les listes déroulantes Région et Zone.
  6. Cliquez sur Continuer.

Sélectionnez le profil de service Cloud IDS:

  1. Cliquez sur Sélectionner le profil de service IDS.
  2. Sous Niveau de gravité minimal des menaces, sélectionnez le niveau d'alerte approprié.
  3. Cliquez sur Créer. Le processus de création peut prendre 10 à 15 minutes.

Une fois le point de terminaison IDS créé, associez-lui une règle de mise en miroir de paquets:

  1. Sélectionnez l'onglet Endpoints (Points de terminaison).
  2. À côté du point de terminaison IDS, cliquez sur Associer.
  3. Dans le champ Nom de la règle, saisissez un nom pour la règle de mise en miroir de paquets.
  4. Cliquez sur Suivant.
  5. Choisissez le sous-réseau ou les instances à mettre en miroir. Vous pouvez sélectionner plusieurs sous-réseaux et instances.
  6. Cliquez sur Suivant.
  7. Déterminez si vous souhaitez mettre en miroir tout le trafic ou filtrer le trafic :
    1. Pour mettre en miroir l'ensemble du trafic, assurez-vous que l'option Dupliquer l'ensemble du trafic est sélectionnée.
    2. Si vous souhaitez filtrer le trafic en fonction du protocole, de la plage d'adresses IP, ou du trafic entrant ou sortant, sélectionnez Dupliquer le trafic filtré :
      1. Sélectionnez Autoriser tous les protocoles ou Autoriser des protocoles spécifiques.
      2. Sélectionnez Autoriser toutes les plages d'adresses IP ou Autoriser des plages d'adresses IP spécifiques.
      3. Sélectionnez Autoriser le trafic entrant et sortant, Autoriser le trafic entrant uniquement ou Autoriser le trafic de sortie uniquement.
  8. Cliquez sur Submit (Envoyer). Le point de terminaison est créé.

Vous pouvez maintenant vérifier si des journaux de menaces ont été générés. Les étapes suivantes sont facultatives:

  1. Cliquez sur l'onglet Menaces.
  2. Cliquez sur le nom d'une menace pour afficher la page Détails de la menace correspondante.
  3. Revenez à l'onglet Menaces.
  4. Cliquez sur Menu à droite de votre point de terminaison IDS, puis sélectionnez View threat logs (Afficher les journaux de menaces).

gcloud

Indicateurs facultatifs

Les commandes de cette section peuvent présenter tout ou partie des options facultatives suivantes:

--no-async
Attendez que l'opération en cours soit terminée plutôt que de le renvoyer immédiatement.
--filter=EXPRESSION
Appliquez un booléen "Expression" à chaque élément de ressource à répertorier. Si l'expression prend la valeur "True", cet élément est répertorié. Pour obtenir plus de détails et d'exemples sur les expressions de filtre, exécutez $ gcloud topic filters. Cette option interagit avec les autres options appliquées dans l'ordre suivant : --flatten, --sort-by, --filter, --limit.
--limit=LIMIT
Nombre maximal de ressources à répertorier. La valeur par défaut est illimitée. Cette option interagit avec les autres options appliquées dans cet ordre : --flatten, --sort-by, --filter, --limit.
--page-size=PAGE_SIZE
Cloud IDS génère une liste de ressources en pages. Cette option spécifie le nombre maximal de ressources par page. La valeur par défaut est déterminée par le service s'il accepte la pagination. Sinon, il est illimité (pas de pagination). La pagination peut être appliquée avant ou après --filter et --limit selon le service.
--sort-by=[FIELD,…]
Liste de noms de clés de champs de ressources séparés par une virgule à trier. L'ordre par défaut est croissant. Ajoutez le préfixe "~" à un champ pour l'ordre décroissant de ce champ. Cette option interagit avec les autres options appliquées dans l'ordre suivant : --flatten, --sort-by, --filter, --limit.
--uri
Imprimez une liste d'URI de ressources au lieu du résultat par défaut.

Instructions

Pour créer un point de terminaison IDS, procédez comme suit:

  1. Utilisez la commande gcloud ids endpoints create. Remplacez ENDPOINT_NAME, VPC_NETWORK, ZONE et SEVERITY par des informations correspondant à votre application.

    gcloud ids endpoints create ENDPOINT_NAME \
      --network=VPC_NETWORK \
      --zone=ZONE \
      --severity=SEVERITY \
     [--no-async] \
     [GCLOUD_WIDE_FLAG...]
    
  2. L'option de gravité est obligatoire et accepte l'une des valeurs suivantes:

    • INFORMATION
    • LOW (FAIBLE)
    • MOYENNE
    • HIGH (ÉLEVÉ)
    • CRITICAL (CRITIQUE)
  3. Une fois le point de terminaison créé, associez-lui une règle de mise en miroir de paquets. Commencez par obtenir l'URL à partir du champ endpoint_forwarding_rule à l'aide de la commande suivante:

    gcloud ids endpoints describe ENDPOINT_NAME
    
  4. Créez la règle de mise en miroir de paquets à l'aide de la commande suivante:

    gcloud compute packet-mirrorings create POLICY_NAME \
    --region=REGION --collector-ilb=ENDPOINT_FORWARDING_RULE \
    --network=VPC_NETWORK --mirrored-subnets=SUBNET
    
  5. La mise en miroir de paquets comporte plusieurs options facultatives, y compris celles permettant de filtrer le trafic en fonction du protocole, de la plage d'adresses IP, ou du trafic entrant ou sortant. Pour en savoir plus sur ces options facultatives, consultez la documentation de référence sur la mise en miroir de paquets.

Pour supprimer un point de terminaison IDS, utilisez la commande gcloud ids endpoints delete. Remplacez ENDPOINT_NAME, PROJECT_ID et ZONE par des informations correspondant à votre application:

gcloud ids endpoints delete ENDPOINT_NAME \
   [--project=PROJECT_ID] \
   [--zone=ZONE] \
   [--no-async] \
   [GCLOUD_WIDE_FLAG...]

Pour décrire un point de terminaison IDS, utilisez la commande gcloud ids endpoints describe. Remplacez ENDPOINT_NAME, PROJECT_ID et ZONE par des informations correspondant à votre application:

gcloud ids endpoints describe ENDPOINT_NAME \
   [--project=PROJECT_ID] \
   [--zone=ZONE] \
   [GCLOUD_WIDE_FLAG...]

Pour répertorier les points de terminaison IDS, utilisez la commande gcloud ids endpoints list :

gcloud ids endpoints list /
    [--filter=EXPRESSION] \
    [--limit=LIMIT] \
    [--page-size=PAGE_SIZE] \
    [--sort-by=[FIELD,...]] \
    [--uri] \
    [GCLOUD_WIDE_FLAG...]

API

Les ressources du point de terminaison Cloud IDS comportent les champs suivants:

Champ Type Description du champ
createTime chaîne [Uniquement en sortie] Horodatage de la création au format texte RFC 3339.
updateTime chaîne [Uniquement en sortie] Horodatage de la dernière mise à jour au format texte RFC 3339.
name chaîne [Uniquement en sortie] Nom du point de terminaison au format projects/{project_id}/locations/{locationId}/endpoints/{endpointId}.
réseau chaîne Nom du réseau VPC connecté au point de terminaison IDS. Ce champ peut contenir le nom du réseau VPC (tel que "src-net") ou l'URL complète du réseau (comme "projects/{project_id}/global/networks/src-net"). Ce champ est obligatoire lors de la création du point de terminaison.
gravité chaîne

Niveau minimal de gravité des alertes indiqué par le point de terminaison. Les valeurs possibles sont les suivantes:

  • INFORMATION
  • LOW (FAIBLE)
  • MOYENNE
  • HIGH (ÉLEVÉ)
  • CRITICAL (CRITIQUE)

Ce champ est obligatoire lors de la création du point de terminaison.

description chaîne Description facultative du point de terminaison.
règle_transfert_point_de_point chaîne [Uniquement en sortie] URL de l'adresse réseau du point de terminaison vers laquelle le trafic doit être envoyé par la mise en miroir de paquets.
point de terminaison chaîne [Uniquement en sortie] Adresse IP interne du point d'entrée réseau du point de terminaison.

Pour créer un point de terminaison Cloud IDS, utilisez une requête HTTP POST comme ci-dessous, en remplaçant les variables si nécessaire. Le champ ENDPOINT_NAME doit comporter entre 1 et 63 caractères. Il ne doit contenir que des lettres minuscules, des chiffres et des traits d'union. Il doit commencer par une lettre minuscule et ne peut pas se terminer par un trait d'union.

POST projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
{
    "network": "NETWORK_NAME",
    "severity": "SEVERITY_LEVEL",
}

Pour supprimer un point de terminaison Cloud IDS, utilisez une requête HTTP DELETE semblable à celle ci-dessous, en remplaçant les variables comme suit:

DELETE projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

Pour obtenir un point de terminaison Cloud IDS, utilisez une requête HTTP GET comme ci-dessous, en remplaçant les variables comme suit:

GET projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

Pour répertorier tous les points de terminaison Cloud IDS d'une zone, utilisez une requête HTTP GET comme ci-dessous, en remplaçant les variables comme suit:

GET projects/PROJECT_NAME/locations/ZONE/endpoints

Pour répertorier tous les points de terminaison Cloud IDS de toutes les zones, vous pouvez également remplacer ZONE par un trait d'union comme suit:

GET projects/PROJECT_NAME/locations/-/endpoints

Étapes suivantes