Protezione delle risorse con Controlli di servizio VPC

Per proteggere ulteriormente le risorse Compute Engine, puoi utilizzare 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 coinvolte si trovino all'interno dello stesso perimetro di servizio. I ruoli e i criteri IAM continuano a essere applicati all'interno di un perimetro di servizio.

Quando un servizio è protetto da un perimetro, il servizio non può effettuare richieste all'interno del perimetro per qualsiasi risorsa all'esterno 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 relativa ai Controlli di servizio VPC.

Quando viene effettuata una richiesta che viola il perimetro di servizio, la richiesta non riesce e si verifica il seguente errore:

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

Vantaggi in materia di sicurezza

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

  • L'accesso alle operazioni sensibili dell'API Compute Engine, ad esempio la modifica delle regole firewall, può essere limitato all'accesso privato dalle reti autorizzate o agli indirizzi IP autorizzati.
  • Le immagini personalizzate e gli snapshot di disco permanente di Compute Engine possono essere limitati a un perimetro.
  • I metadati dell'istanza di Compute Engine fungono da sistema di archiviazione limitato. L'accesso ai metadati dell'istanza tramite l'API Compute Engine è limitato dai criteri del perimetro di servizio, mitigando i rischi di esfiltrazione utilizzando 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 del perimetro di servizio VPC.
  • Il metodo API projects.ListXpnHosts per il VPC condiviso non applica le limitazioni del perimetro di servizio ai progetti restituiti.

Autorizzazioni

Assicurati di disporre dei ruoli corretti per amministrare le configurazioni dei perimetri dei Controlli di servizio VPC per la tua organizzazione.

Configurazione di un perimetro di servizio

Per configurare un perimetro di servizio, segui le istruzioni riportate nella sezione sulla creazione di un perimetro di servizio nella documentazione dei Controlli di servizio VPC.

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 Aggiornare un perimetro di servizio nella documentazione sui Controlli di servizio VPC.

Creazione di una VM con Controlli di servizio VPC

Dopo aver configurato un perimetro di servizio, non è necessario apportare modifiche agli strumenti o alle chiamate API esistenti, a condizione che le risorse interessate nelle 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 all'esterno 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 per perimetro di servizio. La richiesta non va a buon fine 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 all'esterno del 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 istanze. Questi progetti sono implicitamente inclusi 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 è presente in questo elenco e scegli di non includerlo direttamente nel 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 perimetro di sicurezza.

Copia di immagini con Controlli di servizio VPC

Puoi copiare 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 di immagini 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 rientrino nello stesso perimetro di servizio quando un'operazione riguarda 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, non influisce 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 relative al perimetro di servizio si applicano a un insieme di progetti all'interno di un perimetro, pertanto 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 i modelli di istanza per creare le VM e si applicano tutte le limitazioni 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 questo 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 tuoi progetti si trovino nello stesso perimetro di sicurezza.

Passaggi successivi