Suivez ces instructions afin de configurer Cloud IDS pour votre application. Pour obtenir des informations conceptuelles sur Cloud IDS, consultez la 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 dispose de plusieurs rôles IAM (Identity and Access Management). Vous pouvez utiliser les exemples de commandes pour accorder à un compte principal les autorisations IAM nécessaires.
Rôle d'administrateur Cloud IDS (
roles/ids.admin
) : les comptes principaux de projet dotés de ce rôle peuvent créer des points de terminaison IDS. Si vous êtes propriétaire d'un projet, vous disposez déjà de cette autorisation et vous n'avez pas besoin d'un rôleids.admin
explicite 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
Rôle de lecteur Cloud IDS (
roles/ids.viewer
) : les lecteurs de projet et les comptes principaux dotés de ce rôle 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 ;
Rôle utilisateur de mise en miroir de paquets Compute (
roles/compute.packetMirroringUser
) : rôle nécessaire pour associer une règle de mise en miroir de paquets au point de terminaison IDS. Si vous disposez du rôlecompute.securityAdmin
oucontainer.serviceAgent
, vous disposez déjà de cette autorisation. Pour en savoir plus sur ce rôle, consultez la documentation de référence sur les rôles de base et prédéfinis IAM.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/compute.packetMirroringUser \ --member=user:USER_NAME ;
Rôle Lecteur de journaux (
roles/logging.viewer
) : rôle supplémentaire requis pour afficher les menaces récentes, fonctionnalité essentielle de Cloud IDS. Pour plus d'informations 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 ;
Vous devez également disposer des autorisations diverses suivantes:
compute.regions.list
compute.zones.list
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 et peut être effectuée à l'aide de la console Google Cloud ou de la Google Cloud CLI. Lorsque vous allouez une plage d'adresses IP, il doit s'agir d'une plage d'adresses IP privées conforme à la norme RFC 1918 (10.0.0.0/8
, 172.16.0.0/12
ou 192.168.0.0/16
), sinon la création de points de terminaison échoue.
Pour configurer l'accès aux services privés:
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
Si vous n'avez pas encore alloué de plage d'adresses IP à votre réseau, vous devez en allouer une aux services Google sur votre réseau VPC. Dans la commande suivante, vous pouvez omettre le champ
addresses
. Google Cloud sélectionne alors une plage d'adresses inutilisée dans votre réseau VPC: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, telle quemy-allocated-range
DESCRIPTION
: description de la plage, par exempleallocated for my-service
VPC_NETWORK
: nom de votre réseau VPC (par exemple,my-vpc-network
)
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.
Si vous disposez déjà d'une connexion privée, exécutez la commande
gcloud services vpc-peerings update
pour la mettre à jour:gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID
Si vous ne disposez pas encore d'une connexion privée, exécutez la commande
gcloud services vpc-peerings connect
. Cette commande lance une opération de longue durée qui 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éesVPC_NETWORK
: nom de votre réseau VPCPROJECT_ID
: ID du projet contenant votre réseau VPC
Pour vérifier si l'opération a réussi, exécutez la commande
gcloud services vpc-peerings operations describe
:gcloud services vpc-peerings operations describe \ --name=OPERATION_NAME
Remplacez
OPERATION_NAME
par le nom d'opération renvoyé à l'étape précédente.
Répétez les étapes 2 et 3 pour chaque réseau VPC que vous souhaitez surveiller.
Facultatif: Activer VPC Service Controls
Une fois l'accès aux services privés activé, vous pouvez éventuellement activer VPC Service Controls sur Cloud IDS.
Si cette option est activée, exécutez la commande services vpc-peerings enable-vpc-service-controls
afin d'activer VPC Service Controls pour toutes vos connexions d'appairage:
gcloud services vpc-peerings enable-vpc-service-controls \ --service=servicenetworking.googleapis.com \ --network=VPC_NETWORK \ --project=PROJECT_ID
Remplacez les éléments suivants :
VPC_NETWORK
: nom de votre réseau VPCPROJECT_ID
: ID du projet qui contient votre réseau VPC
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
Dans la console Google Cloud, accédez à la page Points de terminaison IDS.
Configurez le point de terminaison:
- Cliquez sur Créer un point de terminaison.
- Saisissez un nom dans le champ Nom du point de terminaison.
- Facultatif : saisissez une description dans le champ Description.
- Cliquez sur la liste déroulante Réseau, puis sélectionnez le réseau que Cloud IDS doit inspecter.
- Choisissez la région et la zone de votre réseau ou de votre sous-réseau dans les listes déroulantes Région et Zone.
- Cliquez sur Continuer.
Sélectionnez le profil de service Cloud IDS:
- Cliquez sur Sélectionner un profil de service IDS.
- Sous Niveau de gravité minimale des menaces, sélectionnez le niveau d'alerte approprié.
- Cliquez sur Créer. Le processus de création peut prendre entre 10 et 15 minutes.
Une fois le point de terminaison IDS créé, associez-lui une règle de mise en miroir de paquets:
- Sélectionnez l'onglet Points de terminaison.
- À côté du point de terminaison IDS, cliquez sur Attach (Associer).
- Dans le champ Nom de la règle, saisissez un nom pour la règle de mise en miroir de paquets.
- Cliquez sur Suivant.
- Choisissez le sous-réseau ou les instances à mettre en miroir. Vous pouvez sélectionner plusieurs sous-réseaux et instances.
- Cliquez sur Suivant.
- Déterminez si vous souhaitez mettre en miroir tout le trafic ou le filtrer :
- Si vous souhaitez mettre en miroir tout le trafic, assurez-vous que l'option Mettre en miroir tout le trafic est sélectionnée.
- Si vous souhaitez filtrer le trafic en fonction du protocole, de la plage d'adresses IP, ou du trafic d'entrée ou de sortie, sélectionnez Mettre en miroir le trafic filtré :
- Sélectionnez Autoriser tous les protocoles ou Autoriser des protocoles spécifiques.
- Sélectionnez Autoriser toutes les plages d'adresses IP ou Autoriser des plages d'adresses IP spécifiques.
- 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:
- Cliquez sur l'onglet Menaces IDS.
- Cliquez sur le nom d'une menace pour afficher la page Informations sur la menace correspondante.
- Revenez à l'onglet Menaces.
- Cliquez sur le Menu à droite de votre point de terminaison IDS, puis sélectionnez Afficher les journaux de menaces.
gcloud
Indicateurs facultatifs
Les commandes de cette section peuvent comporter certains ou tous les indicateurs facultatifs suivants:
--no-async
--filter=EXPRESSION
--flatten
, --sort-by
, --filter
, --limit
.
--limit=LIMIT
--flatten
, --sort-by
, --filter
, --limit
.
--page-size=PAGE_SIZE
--filter
et --limit
, selon le service.
--sort-by=[FIELD,…]
--flatten
, --sort-by
, --filter
, --limit
.
--uri
--threat-exceptions
Instructions
Pour créer un point de terminaison IDS, procédez comme suit:
Exécutez la commande
gcloud ids endpoints create
. RemplacezENDPOINT_NAME
,VPC_NETWORK
,ZONE
etSEVERITY
par les informations correspondant à votre application.gcloud ids endpoints create ENDPOINT_NAME \ --network=VPC_NETWORK \ --zone=ZONE \ --severity=SEVERITY \ [--no-async] \ [GCLOUD_WIDE_FLAG...]
L'indicateur de gravité est requis et accepte l'une des valeurs suivantes:
- INFORMATIONS
- LOW (FAIBLE)
- MOYENNE
- ÉLEVÉ
- CRITIQUE
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
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
La mise en miroir de paquets inclut plusieurs indicateurs facultatifs, dont ceux que vous pouvez utiliser pour filtrer le trafic en fonction du protocole, de la plage d'adresses IP, ou du trafic d'entrée ou de sortie. Pour en savoir plus sur ces indicateurs facultatifs, 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 de 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. Il peut contenir le nom du réseau VPC lui-même (comme "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. |
de gravité, | chaîne | Niveau de gravité minimal de l'alerte signalé par le point de terminaison. Les valeurs possibles sont les suivantes:
Ce champ est obligatoire lors de la création du point de terminaison. |
description | chaîne | Description facultative du point de terminaison. |
endpoint_forwarding_rule | chaîne | [Uniquement en sortie] URL de l'adresse réseau du point de terminaison à laquelle le trafic doit être envoyé via la mise en miroir de paquets. |
point de terminaison | chaîne | [Sortie uniquement] 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 celle présentée ci-dessous, en remplaçant les variables le cas échéant. 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 https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME { "network": "NETWORK_NAME", "severity": "SEVERITY_LEVEL", }
Pour supprimer un point de terminaison Cloud IDS, exécutez une requête HTTP DELETE
comme suit, en remplaçant les variables le cas échéant:
DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
Pour obtenir un point de terminaison Cloud IDS, utilisez une requête HTTP GET
comme suit, en remplaçant les variables le cas échéant:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
Pour répertorier tous les points de terminaison Cloud IDS d'une zone, exécutez une requête HTTP GET
comme suit, en remplaçant les variables le cas échéant:
GET https://ids.googleapis.com/v1/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 semblable à celui-ci:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/-/endpoints
Facultatif: configurer des exceptions à la menace
Vous pouvez désactiver les ID de menace bruyants ou inutiles à l'aide de l'option --threat-exceptions
lorsque vous créez ou mettez à jour votre point de terminaison Cloud IDS. L'exemple suivant met à jour un point de terminaison Cloud IDS existant ENDPOINT_NAME pour exempter les ID de menace THREAT_ID1 et THREAT_ID2:
gcloud ids endpoints update ENDPOINT_NAME
--threat-exceptions=THREAT_ID1,THREAT_ID2