Configura Cloud IDS

Segui queste istruzioni per configurare Cloud IDS per la tua applicazione. Per informazioni concettuali su Cloud IDS, consulta la panoramica di Cloud IDS.

Prima di iniziare

Prima di configurare Cloud IDS, devi soddisfare i seguenti requisiti.

Configura le autorizzazioni IAM per Cloud IDS

Cloud IDS ha diversi ruoli Identity and Access Management (IAM). Puoi utilizzare i comandi di esempio per concedere a un'entità le autorizzazioni IAM necessarie.

  • Ruolo Cloud IDS Admin (roles/ids.admin). Le entità del progetto con questo ruolo possono creare endpoint IDS. Se sei il proprietario di un progetto, disponi già di questa autorizzazione e non hai bisogno di un ruolo ids.admin esplicito per creare endpoint IDS.

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

    Questo ruolo consente le seguenti operazioni:

    • Crea endpoint
    • Elimina endpoint
    • Ricevi endpoint
    • Elenca endpoint
  • Ruolo Cloud IDS Viewer (roles/ids.viewer). I visualizzatori di progetti e le entità con questo ruolo hanno accesso di sola lettura agli endpoint IDS. Se sei il proprietario, l'editor o il visualizzatore di un progetto, disponi già di questa autorizzazione.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/ids.viewer \
        --member=user:USER_NAME ;
    
  • Ruolo Compute Packet Mirroring User (roles/compute.packetMirroringUser). Un ruolo necessario per collegare una policy di Mirroring pacchetto all'endpoint IDS. Se disponi del ruolo compute.securityAdmin o container.serviceAgent, hai già questa autorizzazione. Per saperne di più su questo ruolo, consulta il riferimento ai ruoli di base e predefiniti di IAM.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/compute.packetMirroringUser \
        --member=user:USER_NAME ;
    
  • Ruolo Logs Viewer (roles/logging.viewer). Un ruolo aggiuntivo necessario per visualizzare le minacce recenti, una funzionalità principale critica di Cloud IDS. Per saperne di più su questo ruolo, consulta la guida al controllo dell'accesso.

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

Inoltre, devi disporre delle seguenti autorizzazioni varie:

  • compute.regions.list
  • compute.zones.list

Configura l'accesso privato ai servizi

Per creare endpoint IDS, devi abilitare l'API Service Networking e configurare il peering di rete per la rete virtual private cloud (VPC). Questa operazione deve essere eseguita una sola volta per progetto del cliente e può essere eseguita utilizzando la consoleGoogle Cloud o Google Cloud CLI. Quando allochi un intervallo di indirizzi IP, deve essere un intervallo di indirizzi IP privati conforme a RFC 1918 (10.0.0.0/8, 172.16.0.0/12 o 192.168.0.0/16), altrimenti la creazione dell'endpoint non va a buon fine.

Per configurare l'accesso privato ai servizi:

  1. Abilita l'API Service Networking utilizzando il seguente comando. Sostituisci PROJECT_ID con l'ID progetto.

     gcloud services enable servicenetworking.googleapis.com \
         --project=PROJECT_ID
    
  2. Se non hai ancora allocato un intervallo di indirizzi IP nella tua rete, devi specificarlo per i servizi Google nella rete VPC. Nel comando seguente, puoi omettere il campo addresses e Google Cloud seleziona un intervallo di indirizzi inutilizzato nella tua rete 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
    

    Sostituisci quanto segue:

    • RESERVED_RANGE_NAME: un nome per l'intervallo allocato, ad esempio my-allocated-range

    • DESCRIPTION: una descrizione dell'intervallo, ad esempio allocated for my-service

    • VPC_NETWORK: il nome della tua rete VPC, ad esempio my-vpc-network

  3. Crea una connessione privata a un producer di servizi. La connessione privata stabilisce una connessione di tipo peering di rete VPC tra la tua rete VPC e la rete del producer di servizi.

    Se hai già una connessione privata esistente, utilizza il comando gcloud services vpc-peerings update per aggiornarla:

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

    Se non hai ancora una connessione privata, utilizza il comando gcloud services vpc-peerings connect. Questo comando avvia un'operazione a lunga esecuzione che restituisce un nome di operazione.

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

    Sostituisci quanto segue:

    • RESERVED_RANGE_NAME: il nome di uno o più intervalli allocati

    • VPC_NETWORK: il nome della tua rete VPC

    • PROJECT_ID: l'ID del progetto che contiene la tua rete VPC

    Per verificare se l'operazione è andata a buon fine, utilizza il comando gcloud services vpc-peerings operations describe:

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

    Sostituisci OPERATION_NAME con il nome dell'operazione restituito nel passaggio precedente.

Ripeti i passaggi 2 e 3 per ogni rete VPC che vuoi monitorare.

(Facoltativo) Abilita i Controlli di servizio VPC

Dopo aver abilitato l'accesso privato ai servizi, puoi facoltativamente abilitare i Controlli di servizio VPC su Cloud IDS. Se è possibile, esegui il comando services vpc-peerings enable-vpc-service-controls per abilitare i Controlli di servizio VPC per tutte le connessioni in peering:

gcloud services vpc-peerings enable-vpc-service-controls \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK \
    --project=PROJECT_ID

Sostituisci quanto segue:

  • VPC_NETWORK: il nome della tua rete VPC

  • PROJECT_ID: l'ID del progetto che contiene la tua rete VPC

Scopri le best practice

Ti consigliamo di comprendere bene le best practice prima di configurare Cloud IDS. Per saperne di più, consulta le best practice per Cloud IDS.

Configura gli endpoint Cloud IDS

Le sezioni seguenti spiegano come creare endpoint Cloud IDS, collegarli a una policy di Mirroring pacchetto, visualizzare gli endpoint Cloud IDS, eliminarli e configurare le eccezioni alle minacce.

Crea un endpoint Cloud IDS

Ti consigliamo di creare un endpoint IDS per ogni regione in cui hai eseguito il deployment dei workload. Puoi anche creare più endpoint IDS per regione. Segui questi passaggi per creare un endpoint IDS e assegnargli un profilo di servizio IDS.

Console

Nella console Google Cloud , vai a Endpoint IDS.

Vai a Endpoint IDS

Configura l'endpoint:

  1. Fai clic su Crea endpoint.
  2. Inserisci un nome nel campo Nome endpoint.
  3. (Facoltativo) Inserisci una descrizione nel campo Descrizione.
  4. Fai clic sull'elenco Rete e seleziona la rete che deve essere ispezionata da Cloud IDS.
    1. Scegli la regione e la zona della rete o della subnet dagli elenchi Regione e Zona.
    2. Fai clic su Continua.

Seleziona il profilo di servizio Cloud IDS:

  1. Fai clic su Seleziona profilo di servizio IDS.
  2. In Livello di gravità minimo della minaccia, seleziona il livello di avviso corretto.
  3. Fai clic su Crea. Il processo di creazione può richiedere 10-15 minuti.

gcloud

Flag facoltativi

I comandi in questa sezione potrebbero avere alcuni o tutti i seguenti flag facoltativi:

--no-async
Attende il completamento dell'operazione in corso, anziché terminare immediatamente.
--filter=EXPRESSION
Applica un'espressione di filtro booleano a ogni voce di risorsa da elencare. Se l'espressione restituisce True, la voce viene elencata. Per ulteriori dettagli ed esempi di espressioni di filtro, esegui il comando gcloud topic filters. Questo flag interagisce con altri flag che vengono applicati in questo ordine: --flatten, --sort-by, --filter, --limit.
--limit=LIMIT
Il numero massimo di risorse da elencare. Il valore predefinito è unlimited (illimitato). Questo flag interagisce con altri flag che vengono applicati in questo ordine: --flatten, --sort-by, --filter, --limit.
--page-size=PAGE_SIZE
Output dell'elenco delle risorse dei gruppi Cloud IDS in pagine. Questo flag specifica il numero massimo di risorse per pagina. Il valore predefinito è determinato dal servizio se supporta la paginazione; in caso contrario, è unlimited (nessuna paginazione). La paginazione può essere applicata prima o dopo i flag --filter e --limit, a seconda del servizio.
--sort-by=[FIELD,…]
Un elenco separato da virgole con i nomi delle chiavi dei campi delle risorse in base a cui eseguire l'ordinamento. L'ordine predefinito è crescente. Anteponi una tilde (~) a un campo per ordinare i dati in ordine decrescente in base al campo in questione. Questo flag interagisce con altri flag che vengono applicati in questo ordine: --flatten, --sort-by, --filter, --limit.
--uri
Stampa un elenco di URI delle risorse anziché l'output predefinito.
--threat-exceptions
Un elenco separato da virgole di ID minaccia per cui escludere gli avvisi su questo endpoint. Limite di 99 eccezioni per endpoint.

Istruzioni

Per creare un nuovo endpoint IDS, utilizza il comando gcloud ids endpoints create.

 gcloud ids endpoints create ENDPOINT_NAME \
     --network=VPC_NETWORK \
     --zone=ZONE \
     --severity=SEVERITY \
     [--no-async] \
     [GCLOUD_WIDE_FLAG...]

Sostituisci quanto segue:

  • ENDPOINT_NAME: il nome o l'ID dell'endpoint.
  • VPC_NETWORK: il nome della tua rete VPC.
  • ZONE: la zona dell'endpoint.
  • SEVERITY: la gravità minima delle minacce da segnalare.

    Il flag della gravità è obbligatorio e può avere uno dei seguenti valori:

    • INFORMATIONAL
    • LOW
    • MEDIUM
    • HIGH
    • CRITICAL

API

Le risorse endpoint Cloud IDS hanno i seguenti campi:

Campo Tipo Descrizione del campo
createTime stringa [Solo output] Timestamp di creazione nel formato di testo RFC 3339.
updateTime stringa [Solo output] Timestamp dell'ultimo aggiornamento nel formato di testo RFC 3339.
name stringa [Solo output] Nome dell'endpoint nel formato projects/{project_id}/locations/{locationId}/endpoints/{endpointId}.
network stringa Nome della rete VPC connessa all'endpoint IDS. Può contenere il nome della rete VPC (ad esempio "src-net") o l'URL completo della rete (ad esempio "projects/{project_id}/global/networks/src-net"). Questo campo è obbligatorio al momento di creare l'endpoint.
severity stringa

Il livello minimo di gravità dell'avviso segnalato dall'endpoint. I valori possibili sono:

  • INFORMATIONAL
  • LOW
  • MEDIUM
  • HIGH
  • CRITICAL

Questo campo è obbligatorio al momento di creare l'endpoint.

description stringa Una descrizione facoltativa dell'endpoint.
endpoint_forwarding_rule stringa [Solo output] URL dell'indirizzo di rete dell'endpoint a cui Mirroring pacchetto deve inviare il traffico.
endpoint stringa [Solo output] Indirizzo IP interno dell'entry point di rete dell'endpoint.

Per creare un endpoint Cloud IDS, utilizza una richiesta POST HTTP come la seguente, sostituendo le variabili in modo appropriato. ENDPOINT_NAME deve contenere da 1 a 63 caratteri, deve contenere solo lettere minuscole, cifre e trattini, deve iniziare con una lettera minuscola e non può terminare con un trattino.

POST https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
{
  "network": "NETWORK_NAME",
  "severity": "SEVERITY_LEVEL",
}

Collega una policy di Mirroring pacchetto a un endpoint Cloud IDS

Per collegare una policy di Mirroring pacchetto all'endpoint IDS, segui questi passaggi.

Console

Dopo aver creato l'endpoint IDS, collega una policy di Mirroring pacchetto all'endpoint IDS:

  1. Nella console Google Cloud , vai a Endpoint IDS.

    Vai a Endpoint IDS

  2. Accanto all'endpoint IDS, fai clic su Collega.

  3. Nel campo Nome policy, inserisci un nome per la policy di Mirroring pacchetto.

  4. Fai clic su Avanti.

  5. Scegli la subnet o le istanze di cui eseguire il mirroring. Puoi selezionare più subnet e istanze.

  6. Fai clic su Avanti.

  7. Scegli se eseguire il mirroring di tutto il traffico o se filtrare il traffico:

    1. Se vuoi eseguire il mirroring di tutto il traffico, assicurati che sia selezionata l'opzione Esegui il mirroring di tutto il traffico.
    2. Se vuoi filtrare il traffico in base al protocollo, all'intervallo di indirizzi IP o al traffico in entrata o in uscita, seleziona Esegui il mirroring del traffico filtrato:
      1. Seleziona Consenti tutti i protocolli o Consenti protocolli specifici.
      2. Seleziona Consenti tutti gli intervalli IP o Consenti intervalli IP specifici.
  8. Fai clic su Invia. L'endpoint è stato creato.

gcloud

  1. Dopo aver creato l'endpoint, collegalo a una policy di Mirroring pacchetto. Innanzitutto, ottieni l'URL dal campo endpoint_forwarding_rule utilizzando il seguente comando:

    gcloud ids endpoints describe ENDPOINT_NAME
    
  2. Crea la policy di Mirroring pacchetto utilizzando il seguente comando:

     gcloud compute packet-mirrorings create POLICY_NAME \
         --region=REGION \
         --collector-ilb=ENDPOINT_FORWARDING_RULE \
         --network=VPC_NETWORK \
         --mirrored-subnets=SUBNET
    
  3. Mirroring pacchetto ha diversi flag facoltativi, inclusi quelli che puoi utilizzare per filtrare il traffico in base al protocollo, all'intervallo di indirizzi IP o al traffico in entrata o in uscita. Per saperne di più su questi flag facoltativi, consulta la documentazione di riferimento su Mirroring pacchetto.

Descrivi un endpoint Cloud IDS

Segui questa procedura per descrivere un endpoint IDS.

Console

  1. Nella console Google Cloud , vai a Endpoint IDS.

    Vai a Endpoint IDS

  2. Nella pagina Endpoint IDS, fai clic sul nome dell'endpoint IDS. Viene visualizzata la pagina Dettagli endpoint.

gcloud

Per descrivere un endpoint IDS, utilizza il comando gcloud ids endpoints describe.

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

Sostituisci quanto segue:

  • ENDPOINT_NAME: il nome o l'ID dell'endpoint.
  • PROJECT_ID: l'ID del progetto
  • ZONE: la zona dell'endpoint.

API

Per ottenere un endpoint Cloud IDS, utilizza una richiesta HTTP GET come la seguente, sostituendo le variabili in modo appropriato:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

Elenca gli endpoint Cloud IDS

Segui questi passaggi per elencare tutti gli endpoint IDS.

Console

  1. Nella console Google Cloud , vai a Endpoint IDS.

    Vai a Endpoint IDS

gcloud

Per elencare gli endpoint IDS, utilizza il comando gcloud ids endpoints list:

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

Sostituisci quanto segue:

  • EXPRESSION: applica un filtro booleano a ogni elemento della risorsa da elencare. Se l'espressione restituisce True, la voce viene elencata.
  • LIMIT: il numero massimo di risorse da elencare.
  • PAGE_SIZE: il numero massimo di risorse per pagina.
  • FIELD: un elenco separato da virgole con i nomi delle chiavi dei campi delle risorse in base a cui eseguire l'ordinamento.

API

Per elencare tutti gli endpoint Cloud IDS in una zona, utilizza una richiesta HTTP GET come la seguente, sostituendo le variabili in modo appropriato:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints

In alternativa, per elencare tutti gli endpoint Cloud IDS in tutte le zone, puoi sostituire ZONE con un trattino, come segue:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/-/endpoints

Elimina un endpoint Cloud IDS

Segui questi passaggi per eliminare un endpoint IDS.

Console

  1. Nella console Google Cloud , vai a Endpoint IDS.

    Vai a Endpoint IDS

  2. Nella pagina Endpoint IDS, fai clic sul nome dell'endpoint IDS. Viene visualizzata la pagina Dettagli endpoint.

  3. Fai clic su Elimina endpoint.

gcloud

Per eliminare un endpoint IDS, utilizza il comando gcloud ids endpoints delete.

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

Sostituisci quanto segue:

  • ENDPOINT_NAME: il nome o l'ID dell'endpoint.
  • PROJECT_ID: l'ID del progetto
  • ZONE: la zona dell'endpoint.

API

Per eliminare un endpoint Cloud IDS, utilizza una richiesta HTTP DELETE come la seguente, sostituendo le variabili in modo appropriato:

DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

(Facoltativo) Configura le eccezioni alle minacce

Puoi disattivare gli ID minaccia irrilevanti o altrimenti non necessari utilizzando il flag --threat-exceptions quando crei o aggiorni l'endpoint Cloud IDS. L'esempio seguente aggiorna un endpoint Cloud IDS esistente ENDPOINT_NAME in modo da escludere gli ID minaccia THREAT_ID1 e THREAT_ID2:

gcloud ids endpoints update ENDPOINT_NAME \
    --threat-exceptions=THREAT_ID1,THREAT_ID2

Visualizza i log delle minacce

Segui questi passaggi per verificare se sono stati generati log delle minacce.

  1. Nella console Google Cloud , vai a Minacce IDS.

    Vai a Minacce IDS

  2. Fai clic sul nome di una minaccia per visualizzare la pagina Dettagli minaccia.

  3. Torna alla scheda Minacce.

  4. Fai clic sul menu a destra dell'endpoint IDS e seleziona Visualizza i log delle minacce.

Passaggi successivi