Protezione delle risorse con Controlli di servizio VPC


Per proteggere ulteriormente le risorse Compute Engine, puoi proteggerle utilizzando i Controlli di servizio VPC.

I Controlli di servizio VPC consentono di definire un perimetro di sicurezza per le risorse Compute Engine. Il perimetro di servizio limita l'esportazione e l'importazione delle risorse e dei dati associati all'interno del perimetro definito.

Quando crei un perimetro di servizio, selezioni uno o più progetti che devono essere protetti dal perimetro. Le richieste tra progetti all'interno dello stesso perimetro rimangono inalterate. Tutte le API esistenti continuano a funzionare purché le risorse interessate si trovino all'interno dello stesso perimetro di servizio. Tieni presente che i ruoli e i criteri IAM si applicano ancora all'interno di un perimetro di servizio.

Quando un servizio è protetto da un perimetro, il servizio all'interno del perimetro non può inviare richieste a qualsiasi risorsa al di fuori del perimetro. Ciò include l'esportazione delle risorse dall'interno all'esterno del perimetro. Le richieste di risorse protette dall'esterno di un perimetro sono possibili se soddisfano determinati criteri. Per ulteriori informazioni, consulta la sezione Panoramica nella documentazione sui controlli di servizio VPC.

Quando viene effettuata una richiesta che viola il perimetro di servizio, la richiesta non va a buon fine e viene generato il seguente errore:

"code": 403, "message": "Request is prohibited by organization's policy."

Vantaggi per la sicurezza

I Controlli di servizio VPC offrono i seguenti vantaggi in termini di sicurezza:

  • L'accesso alle operazioni sensibili dell'API Compute Engine, come la modifica delle regole firewall, può essere limitato all'accesso privato dalle reti autorizzate o agli indirizzi IP nella lista consentita.
  • Gli snapshot di disco permanente e le immagini personalizzate di Compute Engine possono essere limitati a un perimetro.
  • I metadati delle istanze Compute Engine fungono da sistema di archiviazione limitato. L'accesso ai metadati dell'istanza tramite l'API Compute Engine è limitato dal criterio del perimetro di servizio, attenuando i rischi di esfiltrazione tramite questo canale.

Inoltre, l'API Compute Engine è ora accessibile tramite l'IP virtuale limitato (VIP). Ciò semplifica la configurazione di Cloud DNS e del routing per i client all'interno del perimetro che devono accedere a questa API.

Limitazioni

  • I firewall gerarchici non sono interessati dai perimetri di servizio.
  • Le operazioni di peering VPC non applicano le limitazioni perimetro di servizio VPC.
  • Il metodo API projects.ListXpnHosts per il VPC condiviso non applica limitazioni del perimetro di servizio ai progetti restituiti.

Autorizzazioni

Assicurati di disporre dei ruoli appropriati per amministrare le configurazioni del perimetro dei Controlli di servizio VPC per la tua organizzazione.

Configurazione di un perimetro di servizio

Segui le istruzioni riportate in Creazione di un perimetro di servizio nella documentazione relativa ai Controlli di servizio VPC per configurare un perimetro di servizio.

Se configuri un perimetro di servizio utilizzando Google Cloud CLI, specifica compute.googleapis.com con il flag --restricted-services per limitare l'API Compute Engine.

Aggiunta di Compute Engine come servizio limitato a un perimetro esistente

Se hai già un perimetro di servizio e vuoi aggiungere Compute Engine al perimetro, segui le istruzioni riportate in Aggiornamento di un perimetro di servizio nella documentazione relativa ai Controlli di servizio VPC.

Creazione di una VM con Controlli di servizio VPC

Dopo aver configurato un perimetro di servizio, non devi apportare modifiche agli strumenti o alle chiamate API esistenti, purché le risorse interessate nelle tue richieste siano incluse nello stesso perimetro di servizio. Ad esempio, il seguente comando crea un'istanza VM con un'immagine di esempio. In questo caso, il comando non riesce se IMAGE_PROJECT si trova al di fuori del perimetro di servizio (e non esiste un bridge del perimetro di servizio tra i progetti).

gcloud compute instances create new-instance \
    --image-family IMAGE_FAMILY --image-project IMAGE_PROJECT \
    --zone us-central1-a --machine-type n1-standard-72

Se stai creando una VM da un modello di istanza, tutte le risorse a cui viene fatto riferimento nel modello di istanza devono appartenere allo stesso perimetro di servizio in cui esegui il comando o essere connesse tramite un bridge di perimetro di servizio. La richiesta ha esito negativo se il modello di istanza fa riferimento a una risorsa esterna al perimetro di servizio, anche se il modello di istanza si trova all'interno del perimetro.

Per uno scenario di esempio di un client Compute Engine fuori dal perimetro che crea un disco Compute Engine all'esterno del perimetro utilizzando una chiave Cloud KMS all'interno del perimetro, consulta Esempi di richieste API consentite dalla combinazione di regole in entrata e in uscita.

Progetti con immagini pubbliche

Google fornisce e gestisce un insieme di immagini pubbliche per le tue istanze. Questi progetti sono inclusi implicitamente in tutti i perimetri di sicurezza. Per utilizzare queste immagini non è richiesta alcuna azione aggiuntiva.

Di seguito è riportato un elenco di progetti inclusi automaticamente in tutti i perimetri di sicurezza:

  • centos-cloud
  • cos-cloud
  • debian-cloud
  • fedora-cloud
  • fedora-coreos-cloud
  • rhel-cloud
  • rhel-sap-cloud
  • rocky-linux-cloud
  • opensuse-cloud
  • suse-cloud
  • suse-byos-cloud
  • suse-sap-cloud
  • ubuntu-os-cloud
  • ubuntu-os-pro-cloud
  • windows-cloud
  • windows-sql-cloud

Se utilizzi un progetto immagine che non è in questo elenco e scegli di non includerlo direttamente nel tuo perimetro di sicurezza, ti consigliamo di creare prima una copia di tutte le immagini da utilizzare in un progetto separato, quindi di includere il progetto separato nel tuo perimetro di sicurezza.

Copia di immagini con Controlli di servizio VPC

Puoi copiare le immagini da un progetto all'altro se entrambi i progetti appartengono allo stesso perimetro di servizio. In questo esempio, DST_PROJECT e SRC_PROJECT devono appartenere allo stesso perimetro di servizio affinché la richiesta funzioni.

gcloud compute images create --project DST_PROJECT IMAGE_NAME \
   --source-image SOURCE_IMAGE --source-image-project SRC_PROJECT \
    --family IMAGE_FAMILY --storage-location LOCATION

Se scegli di non includere il progetto immagine direttamente nel tuo perimetro di sicurezza, ti consigliamo di creare prima una copia di tutte le immagini da utilizzare in un progetto separato, quindi di includere il progetto separato nel tuo perimetro di sicurezza.

VPC condiviso con Controlli di servizio VPC

Quando utilizzi un VPC condiviso, le limitazioni del perimetro di servizio devono essere applicate a tutti i progetti coinvolti in una determinata operazione. In altre parole, devi assicurarti che il progetto host e i progetti di servizio si trovino all'interno dello stesso perimetro di servizio quando un'operazione coinvolge risorse distribuite tra i progetti host e di servizio.

Peering di rete VPC

Il peering di rete VPC consente le reti VPC di peering tra due organizzazioni separate. Poiché un perimetro di servizio è limitato ai progetti all'interno di un'organizzazione, i perimetri di servizio non influiscono sulle reti VPC di peering.

Firewall gerarchici

I firewall gerarchici sono firewall configurati all'esterno di un progetto (a livello di cartella o di organizzazione). Le restrizioni dei perimetri di servizio si applicano a un insieme di progetti all'interno di un perimetro, quindi non si applicano ai firewall gerarchici.

gruppi di istanze gestite

I gruppi di istanze gestite consentono di gestire un gruppo di istanze VM come una singola entità. I gruppi di istanze gestite utilizzano modelli di istanza per creare VM e si applicano tutte le restrizioni relative a immagini o reti e subnet tra progetti. In altre parole, quando utilizzi immagini di altri progetti, assicurati che i progetti appartengano allo stesso perimetro o copia le immagini necessarie in un altro progetto e includi il progetto nel perimetro di servizio. I progetti di immagini pubbliche gestiti da Google vengono inclusi automaticamente in tutti i perimetri di servizio.

Se vuoi utilizzare gruppi di istanze con VPC condiviso, assicurati che i progetti si trovino nello stesso perimetro di sicurezza.

Passaggi successivi