I vincoli gestiti sono policy dell'organizzazione predefinite, create su una piattaforma moderna, che forniscono un controllo centralizzato e programmatico sulle risorse Compute Engine. Sono inclusi il supporto integrato per strumenti di implementazione sicuri come Policy Simulator e dry run.
I vincoli gestiti sono identificabili dal prefisso compute.managed.* e fungono da sostituto diretto dei vincoli compute.* legacy.
Vantaggi
- Implementazione e monitoraggio sicuri: implementa le policy con strumenti completi, controllo delle modifiche più rapido e deployment graduale utilizzando le funzionalità di simulazione e prova generale.
- Logging coerente: impone l'uniformità nei log e nei messaggi di errore, semplificando il monitoraggio centralizzato e snellendo gli audit.
Ereditarietà delle policy
Le policy dell'organizzazione che imposti su una risorsa vengono ereditate dai discendenti di quella risorsa nella gerarchia delle risorse. Ad esempio, se applichi un criterio a una cartella, Cloud de Confiance by S3NS il criterio viene applicato a tutti i progetti contenuti nella cartella.
Prezzi
Il servizio Policy dell'organizzazione, incluse le policy predefinite (legacy), gestite e personalizzate, viene offerto senza costi aggiuntivi.
Prima di iniziare
-
Se non l'hai ancora fatto, configura l'autenticazione.
L'autenticazione verifica la tua identità per l'accesso ad API e servizi Cloud de Confiance by S3NS . Per eseguire
codice o esempi da un ambiente di sviluppo locale, puoi autenticarti su
Compute Engine selezionando una delle seguenti opzioni:
Seleziona la scheda relativa a come intendi utilizzare i campioni in questa pagina:
Console
Quando utilizzi la console Cloud de Confiance per accedere ai servizi Cloud de Confiance by S3NS e alle API, non devi configurare l'autenticazione.
gcloud
-
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata. Dopo aver eseguito l'accesso, inizializza Google Cloud CLI eseguendo il comando seguente:
gcloud init
-
- Imposta una regione e una zona predefinite.
REST
Per utilizzare gli esempi di API REST in questa pagina in un ambiente di sviluppo locale, utilizzi le credenziali che fornisci a gcloud CLI.
Installa Google Cloud CLI, quindi accedi a gcloud CLI con la tua identità federata.
Per saperne di più, consulta Autenticati per usare REST nella documentazione sull'autenticazione di Cloud de Confiance .
- Assicurati di conoscere il tuo ID organizzazione.
- Se non l'hai ancora fatto, installa
gcloud CLI e inizializzala eseguendo
gcloud init. - Imposta un progetto predefinito per i test.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per gestire le policy dell'organizzazione con vincoli gestiti, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Amministratore delle policy dell'organizzazione (
roles/orgpolicy.policyAdmin) nella risorsa dell'organizzazione -
Per testare i vincoli:
Compute Instance Admin (v1) (
roles/compute.instanceAdmin.v1) nel progetto
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per gestire le policy dell'organizzazione con vincoli gestiti. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per gestire le policy dell'organizzazione con vincoli gestiti sono necessarie le seguenti autorizzazioni:
-
orgpolicy.constraints.list -
orgpolicy.policies.create -
orgpolicy.policies.delete -
orgpolicy.policies.list -
orgpolicy.policies.update -
orgpolicy.policy.get -
orgpolicy.policy.set -
Per testare i vincoli:
compute.instances.createsul progetto- Per utilizzare un'immagine personalizzata per creare la VM:
compute.images.useReadOnlysull'immagine - Per utilizzare uno snapshot per creare la VM:
compute.snapshots.useReadOnlysullo snapshot - Per utilizzare un template di istanza per creare la VM:
compute.instanceTemplates.useReadOnlysul template di istanza - Per assegnare una rete legacy alla VM:
compute.networks.usesul progetto - Per specificare un indirizzo IP statico per la VM:
compute.addresses.usesul progetto - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete legacy:
compute.networks.useExternalIpsul progetto - Per specificare una subnet per la VM:
compute.subnetworks.usesul progetto o sulla subnet scelta - Per assegnare un indirizzo IP esterno alla VM quando viene utilizzata una rete VPC:
compute.subnetworks.useExternalIpsul progetto o sulla subnet scelta - Per impostare i metadati dell'istanza VM per la VM:
compute.instances.setMetadatasul progetto - Per impostare i tag per la VM:
compute.instances.setTagssulla VM - Per impostare le etichette per la VM:
compute.instances.setLabelssulla VM - Per impostare un service account da utilizzare per la VM:
compute.instances.setServiceAccountsulla VM - Per creare un nuovo disco per la VM:
compute.disks.createsul progetto - Per collegare un disco esistente in modalità di sola lettura o lettura/scrittura:
compute.disks.usesul disco - Per collegare un disco esistente in modalità di sola lettura:
compute.disks.useReadOnlysul disco
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Vincoli gestiti disponibili
Per Compute Engine sono disponibili i seguenti vincoli di policy dell'organizzazione gestiti:
Valutazione gerarchica dei metadati
I vincoli gestiti che si basano su chiavi di metadati predefinite, come OS Login o l'accesso alla porta seriale, supportano la valutazione gerarchica. Quando Compute Engine valuta questi vincoli, controlla i valori dei metadati impostati a livello di istanza VM, progetto o zona.
L'impostazione dei valori dei metadati a livello di progetto o di zona consente di gestire le istanze VM su larga scala. Tuttavia, l'applicazione dei vincoli avviene solo durante le chiamate API di creazione o aggiornamento dell'istanza VM. Pertanto, le modifiche ai metadati del progetto o della zona influiscono sulla conformità ai vincoli di un'istanza VM solo quando l'istanza viene creata o aggiornata.
Vincoli e livelli basati sui metadati
| Vincolo | Chiave dei metadati | Livelli della gerarchia dei metadati |
|---|---|---|
compute.managed.disableSerialPortAccess |
serial-port-enable |
Progetto, zona, istanza |
compute.managed.requireOsLogin |
enable-oslogin |
Progetto, zona, istanza |
compute.managed.disableGuestAttributesAccess |
enable-guest-attributes |
Progetto, zona, istanza |
compute.managed.requireOsConfig |
enable-osconfig |
Progetto, zona, istanza |
compute.managed.disallowGlobalDns |
VmDnsSetting |
Progetto, istanza |
Implementazione sicura: il ciclo di vita dei criteri
Per evitare interruzioni del servizio durante l'implementazione graduale di nuovi vincoli, Google consiglia di implementare i vincoli gestiti seguendo questi passaggi:
Analizzare con Policy Simulator
Prima di applicare una policy, utilizza Policy Simulator per vedere quali risorse esistenti violano la policy. Segui questi passaggi:
Nella console Cloud de Confiance , vai alla pagina Policy dell'organizzazione.
Nella barra dei filtri, cerca il vincolo, quindi fai clic sul nome del vincolo per passare alla pagina Dettagli policy.
Fai clic su Testa modifiche per generare un report di simulazione.
L'applicazione delle modifiche ai metadati gerarchici potrebbe richiedere alcune ore nel report di simulazione per i vincoli sulle impostazioni dei metadati VM.
Esamina il report per riconfigurare le risorse non conformi o richiedere esenzioni.
Convalida con dry run
La modalità dry run registra le violazioni in Cloud Logging, ma non applica le limitazioni.
Per testare un vincolo, utilizza il comando gcloud org-policies set-policy come segue:
Crea un file YAML della policy (ad esempio
dry-run-policy.yaml) con undryRunSpec:name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin dryRunSpec: rules: - enforce: trueSostituisci
PROJECT_IDcon l'ID progetto.Applica la policy:
gcloud org-policies set-policy dry-run-policy.yaml
Applicazione completa
Dopo aver simulato e testato la policy, puoi applicarla a una risorsa. La propagazione delle modifiche alle policy in tutti i sistemiCloud de Confiance by S3NS può richiedere fino a 15 minuti.
Test dell'applicazione dei vincoli
Dopo aver impostato un criterio, puoi verificarne l'applicazione utilizzando
gcloud CLI. Ad esempio, per testare il vincolo
compute.managed.requireOsLogin, segui questi passaggi:
Elenca le policy esistenti per confermare la configurazione:
gcloud org-policies list --project=PROJECT_IDApplica il criterio di applicazione utilizzando un file YAML:
gcloud org-policies set-policy enforce_managed_constraint.yamlVerifica l'applicazione forzata chiamando un'API di mutazione. Il tentativo di creare un'istanza VM con metadati non conformi dovrebbe non riuscire:
gcloud compute instances create VM_NAME \ --machine-type=MACHINE_TYPE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --metadata=enable-oslogin=falseSostituisci quanto segue:
VM_NAME: il nome della nuova istanza VM.MACHINE_TYPE: un tipo di macchina valido, ad esempioe2-micro.IMAGE_FAMILY: una famiglia di immagini valida, ad esempiodebian-11.IMAGE_PROJECT: il progetto della famiglia di immagini, ad esempiodebian-cloud.
Controlla il messaggio di errore. Dovresti visualizzare un rifiuto che indica il vincolo specifico violato:
ERROR: (gcloud.compute.instances.create) Could not fetch resource: - Operation denied by org policy: [constraints/compute.managed.requireOsLogin]
Esenzioni condizionali con i tag
Puoi utilizzare i tag per concedere eccezioni a risorse specifiche in base alle esigenze aziendali. In questo esempio, utilizziamo un tag denominato osLoginOptional per identificare
le risorse esenti dal requisito OS Login. Quando associ questo
tag con un valore di true a una risorsa, la policy dell'organizzazione consente l'esistenza di questa
risorsa specifica senza l'accesso OS Login attivato, anche se la policy
rimane applicata rigorosamente per il resto dell'ambiente.
Per concedere un'eccezione utilizzando i tag:
Crea un tag: utilizza gcloud CLI per creare una chiave tag e un valore tag.
Crea la chiave tag:
gcloud resource-manager tags keys create osLoginOptional \ --parent=organizations/ORGANIZATION_IDCrea il valore del tag:
gcloud resource-manager tags values create true \ --parent=organizations/ORGANIZATION_ID/tagKeys/osLoginOptional
Sostituisci
ORGANIZATION_IDcon l'ID della tua organizzazione.Collega il tag a una risorsa. Per esentare un progetto dal vincolo
compute.managed.requireOsLogin, associa il tagosLoginOptional=trueal progetto utilizzando il comandogcloud resource-manager tags bindings create:gcloud resource-manager tags bindings create \ --tag-value=ORGANIZATION_ID/osLoginOptional/true \ --parent=//cloudresourcemanager.googleapis.com/projects/PROJECT_ID \ --location=globalSostituisci
ORGANIZATION_IDcon l'ID organizzazione ePROJECT_IDcon l'ID del progetto che vuoi esentare.Per scoprire come collegare i tag ad altre risorse, consulta Collega un tag a una risorsa.
Aggiorna la policy: crea o aggiorna il file YAML della policy (ad esempio,
policy.yaml) per includere la regola condizionale.name: projects/PROJECT_ID/policies/compute.managed.requireOsLogin spec: rules: - condition: expression: "resource.matchTag('ORGANIZATION_ID/osLoginOptional', 'true')" enforce: false - enforce: trueSostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.ORGANIZATION_ID: l'ID organizzazione.
Applica la policy: utilizza il seguente comando gcloud CLI per attivare la configurazione:
gcloud org-policies set-policy policy.yaml
Migrazione dai vincoli legacy
Durante la migrazione, tieni presente che i vincoli gestiti migliorano, ma non replicano esattamente, il comportamento dei criteri legacy. I vincoli gestiti offrono una maggiore prevedibilità perché verificano le violazioni solo durante le richieste API che creano o modificano le risorse. Se una richiesta viola un vincolo, la chiamata API non va a buon fine e viene generato un errore chiaro. Ciò differisce dai criteri legacy, che potevano essere applicati in varie fasi di un'operazione o utilizzati come attributi delle risorse, rendendo il comportamento di applicazione meno prevedibile.
Quando passi da un vincolo compute.* legacy a un equivalente compute.managed.* moderno, segui questi passaggi per evitare un inasprimento involontario delle limitazioni:
- Scopri: identifica la nuova alternativa al vincolo gestito.
- Analizza e convalida: utilizza il Simulatore di criteri e il dry run come descritto in precedenza.
- Applica vincolo gestito: applica il nuovo vincolo gestito insieme a quello legacy.
- Elimina le policy legacy:
- Vai a Inventario asset nella Cloud de Confiance console e filtra per
orgpolicy.Policye per il nome del vincolo legacy per identificare tutti i criteri che utilizzano il vincolo legacy. - Elimina tutte le policy che utilizzano il vincolo legacy. L'eliminazione di un criterio ripristina il comportamento predefinito gestito da Google per questo vincolo.
- Vai a Inventario asset nella Cloud de Confiance console e filtra per
Passaggi successivi
- Scopri di più sui concetti e sui vantaggi fondamentali del servizio in Introduzione al servizio Policy dell'organizzazione.
- Per istruzioni dettagliate sulla creazione e la gestione delle policy, consulta la documentazione di Resource Manager.
- Visualizza l'elenco completo dei vincoli disponibili in tutti i servizi Cloud de Confiance by S3NS .
- Scopri come utilizzare Policy Simulator per l'analisi avanzata dell'impatto delle policy dell'organizzazione.