Panoramica
Questa guida descrive come impostare un criterio dell'organizzazione che includa il vincolo per le località delle risorse.
Puoi limitare la località fisica di una nuova risorsa con il vincolo relativo alle località delle risorse del servizio dei criteri dell'organizzazione. Puoi usare la proprietà relativa alla località di una risorsa per capire dove viene eseguito il deployment e la gestione da parte del servizio. Per le risorse contenenti dati di alcuni servizi Google Cloud, questa proprietà riflette anche la località in cui sono archiviati i dati. Questo vincolo consente di definire le località Google Cloud consentite in cui è possibile creare le risorse per i servizi supportati nella gerarchia.
Dopo aver definito le località delle risorse, questo limite si applica solo alle risorse appena create. Le risorse create prima di impostare il vincolo per le località continueranno a esistere e a svolgere la loro funzione.
Un criterio che include questo vincolo non verrà applicato in modo forzato alla creazione di sottorisorse per determinati servizi, come Cloud Storage e Dataproc.
Limitazioni
Il vincolo relativo al servizio dei criteri dell'organizzazione per le località delle risorse controlla la possibilità di creare risorse per le quali è possibile selezionare una località. Questo vincolo non influisce sulla località di creazione delle risorse globali, come gli indirizzi globali di Compute Engine, o delle risorse che non supportano la selezione di una località.
Per evitare di danneggiare l'infrastruttura di pubblicazione esistente, devi testare qualsiasi nuovo criterio su cartelle e progetti non di produzione, quindi applicare il criterio gradualmente all'interno della tua organizzazione.
Per gli impegni relativi all'archiviazione dei dati, consulta i Termini di servizio di Google Cloud e i Termini specifici dei servizi. I criteri dell'organizzazione che contengono il vincolo relativo alle località delle risorse non sono impegni di archiviazione dei dati.
Questo vincolo si applica a un sottoinsieme specifico di prodotti e tipi di risorse. Per un elenco dei servizi supportati e i dettagli sul comportamento di ciascun servizio, consulta la pagina Servizi supportati per le località delle risorse.
Tipi di località
Puoi eseguire il deployment delle risorse Google Cloud in tipi di località che rappresentano categorie di dimensioni diverse.
Il tipo di località più grande è multi-region
, che ne include più di un
region
. Ogni elemento region
viene ulteriormente suddiviso in zones
. Per saperne di più su regioni e zone, consulta la panoramica su regioni e zone.
Le località
Multi-region
sono supportate da risorse fisiche in più di unregion
e sono generalmente utilizzate solo dalle risorse basate sull'archiviazione. Tra gli esempi includonous
,asia
,europe
eglobal
.Region
località sono geograficamente isolate tra loro. Alcuni esempi includonous-west1
(Oregon),asia-northeast1
(Tokyo) eeurope-west1
(Belgio).Le località
Zone
sono il tipo di località più granulare e isolato utilizzato per il deployment delle risorse. Unzone
è un dominio in errore indipendente all'interno di unregion
. Alcuni esempi sonous-east1-a
,us-west1-b
easia-northeast1-a
.
Quando configuri le località, devi utilizzare il prefisso in:
e un
gruppo di valori. L'utilizzo di un gruppo di valori curato da Google Cloud
ti consente di scegliere località geografiche, senza dover specificare le località
di Cloud attuali o future.
Il prefisso in:
a un gruppo di valori specifica che tutti i valori all'interno del gruppo di valori sono considerati parte del criterio. Se inserisci un valore di gruppo o una regione Google Cloud senza il prefisso, il prefisso in:
verrà aggiunto automaticamente, in base a queste regole:
- Se inserisci una posizione che utilizza il prefisso
in:
e contiene un gruppo non valido, la modifica del criterio non andrà a buon fine. - Se inserisci una località che è una regione, come
us-east1
, in questo esempio verrà anteposto il prefissoin:
(in:us-east1-locations
). - Se inserisci un gruppo di valori per una o più regioni come
us-locations
, in questo esempio verrà anteposto il prefissoin:
al valorein:us-locations
. - Se inserisci una zona o più regioni come
us-east1-a
ous
, i valori non verranno modificati.
Impostazione del criterio dell'organizzazione
Il vincolo delle località delle risorse è un tipo di vincolo dell'elenco.
Puoi aggiungere e rimuovere le località dagli elenchi allowed_values
o denied_values
di un vincolo di località delle risorse. Per evitare che i criteri dell'organizzazione limitino inaspettatamente il comportamento dei servizi quando vengono aggiunte nuove località all'elenco disponibile, utilizza un gruppo di valori o un elenco di allowed_values
che rappresenta l'intero confine geografico che vuoi definire.
Per impostare un criterio dell'organizzazione che includa un vincolo per le località delle risorse:
Console
Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.
Dal selettore dei progetti, seleziona l'organizzazione, la cartella o il progetto per cui vuoi impostare il criterio dell'organizzazione.
Seleziona il vincolo Google Cloud Platform - Restrizione sulla località delle risorse per aprire la relativa pagina Dettagli criterio.
Fai clic su Gestisci criterio.
Nella pagina Modifica criterio, seleziona Sostituisci criterio del padre.
In Applicazione dei criteri, seleziona Sostituisci.
Fai clic su Aggiungi regola.
In Valori del criterio, seleziona Personalizzato.
In Tipo di criterio, seleziona Consenti per creare un elenco di località consentite oppure seleziona Rifiuta per creare un elenco di località negate.
Nella casella Valore criterio, inserisci il prefisso
in
e una stringa di località del gruppo di valori, quindi premi Invio.Ad esempio,
in:us-locations
oin:us-west1-locations
. Puoi inserire più stringhe di località facendo clic su Nuovo valore del criterio.Puoi anche inserire località specifiche in una zona, una o più regioni come stringhe di località. Per un elenco delle località disponibili, consulta la pagina Servizi supportati per le località delle risorse.
Per applicare il criterio, fai clic su Imposta criterio.
gcloud
Per creare un criterio dell'organizzazione che applichi il vincolo per le località delle risorse, crea un file YAML del criterio che faccia riferimento al vincolo:
constraint: constraints/gcp.resourceLocations listPolicy: deniedValues: - in:us-east1-locations - in:northamerica-northeast1-locations
Per applicare il criterio dell'organizzazione contenente il vincolo, esegui questo comando:
gcloud org-policies set-policy \ --organization 'ORGANIZATION_ID' \ POLICY_PATH
Sostituisci quanto segue:
- ORGANIZATION_ID: l'ID organizzazione, ad esempio 01234567890.
- POLICY_PATH: il percorso completo al file YAML contenente il criterio dell'organizzazione.
Verrà restituita una risposta con i risultati del nuovo criterio dell'organizzazione:
name: organizations/01234567890/policies/gcp.resourceLocations
spec:
rules:
- values:
allowedValues:
- in:us-east1-locations
- in:northamerica-northeast1-locations
Puoi anche inserire località specifiche in una zona, una o più regioni come stringhe di località. Per un elenco delle località disponibili, consulta la pagina Servizi supportati per le località delle risorse.
API
Puoi utilizzare l'API Resource Manager per impostare un criterio dell'organizzazione su una risorsa. Per l'autenticazione e l'autorizzazione, avrai bisogno di un token di connessione OAuth 2.0.
Per impostare un criterio dell'organizzazione utilizzando il vincolo delle località delle risorse:
curl -X POST -H "Content-Type: application/json" -H "Authorization: \ Bearer ${bearer_token}" -d '{policy: {etag: "BwVtXec438Y=", constraint: \ "constraints/gcp.resourceLocations", list_policy: {denied_values: \ ["in:europe-locations", "in:southamerica-locations"] }}}' \ https://cloudresourcemanager.googleapis.com/v1/organizations/123456789:setOrgPolicy
Verrà restituita una risposta con i risultati del nuovo criterio dell'organizzazione:
name: organizations/01234567890/policies/gcp.resourceLocations
spec:
rules:
- values:
deniedValues:
- in:europe-locations
- in:southamerica-locations
Puoi anche inserire località specifiche in una zona, una o più regioni come stringhe di località. Per un elenco delle località disponibili, consulta la pagina Servizi supportati per le località delle risorse.
Per scoprire di più sull'utilizzo dei vincoli nei criteri dell'organizzazione, consulta Utilizzo dei vincoli.
Utilizzo dell'ereditarietà nel criterio dell'organizzazione
Puoi perfezionare il criterio dell'organizzazione in modo da ereditare il criterio dell'organizzazione dai nodi padre della risorsa. L'ereditarietà offre un controllo granulare sui criteri dell'organizzazione utilizzati in tutta la gerarchia delle risorse.
Per abilitare l'ereditarietà su un nodo delle risorse, imposta inheritFromParent = true
nel file .yaml
del criterio dell'organizzazione. Ad esempio:
name: organizations/01234567890/policies/gcp.resourceLocations
spec:
inheritFromParent: true
rules:
- values:
deniedValues:
- in:us-west1
Esempio di messaggio di errore
Ai servizi che supportano il vincolo di località delle risorse non è consentito creare nuove risorse in località che violerebbero il vincolo. Se un servizio tenta di creare una risorsa in una località che viola il vincolo, il tentativo non andrà a buon fine e verrà generato un messaggio di errore.
Questo messaggio di errore avrà il seguente formato:
LOCATION_IN_REQUEST violates constraint
constraints/gcp.resourceLocations on the resource RESOURCE_TESTED.
Nell'esempio seguente, una risorsa Compute Engine non riesce a creare una nuova istanza a causa dell'applicazione dei criteri:
Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3.
Voce di log di Google Cloud Observability e Cloud Audit Logs:
{ insertId: "5u759gdngec" logName: "projects/policy-violation-test/logs/cloudaudit.googleapis.com%2Factivity" protoPayload: { @type: "type.googleapis.com/google.cloud.audit.AuditLog" authenticationInfo: {…} authorizationInfo: [6] methodName: "beta.compute.instances.insert" request: {…} requestMetadata: {…} resourceLocation: {…} resourceName: "projects/policy-violation-test/zones/us-east1-b/instances/instance-3" response: { @type: "type.googleapis.com/error" error: { code: 412 errors: [ 0: { domain: "global" location: "If-Match" locationType: "header" message: "Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3." reason: "conditionNotMet" } ] message: "Location ZONE:us-east1-b violates constraint constraints/gcp.resourceLocations on the resource projects/policy-violation-test/zones/us-east1-b/instances/instance-3." } } serviceName: "compute.googleapis.com" status: { code: 3 message: "INVALID_ARGUMENT" } } receiveTimestamp: "2019-06-14T03:04:23.660988360Z" resource: { labels: {…} type: "gce_instance" } severity: "ERROR" timestamp: "2019-06-14T03:04:22.783Z" }
Vulnerabilità rilevate e risoluzione
Il vincolo di località delle risorse limita la creazione delle risorse in fase di runtime. Questa funzionalità aiuta a evitare violazioni delle località, ma non identifica né risolve le violazioni esistenti. Puoi utilizzare Security Health Analytics, un servizio integrato di Security Command Center, per rilevare le violazioni delle località nella gerarchia delle risorse. Per maggiori informazioni, consulta Risultati di vulnerabilità dei criteri dell'organizzazione.
Se ci sono risultati relativi a violazioni della località da parte di Security Health Analytics, consulta Correzione dei risultati di Security Health Analytics per conoscere la procedura per porre rimedio a questi risultati.
Gruppi di valori
I gruppi di valori sono raccolte di gruppi e località selezionati da Google per fornire un modo semplice per definire le località delle risorse. I gruppi di valori includono molte località correlate e vengono ampliati nel tempo da Google senza dover modificare i criteri dell'organizzazione per adeguarli alle nuove località.
Per utilizzare i gruppi di valori nel criterio dell'organizzazione, aggiungi il prefisso in:
alle voci. Per saperne di più sull'utilizzo dei prefissi dei valori, consulta Utilizzo dei vincoli. I nomi dei gruppi non vengono convalidati nella chiamata per impostare il criterio dell'organizzazione. Se il nome del gruppo fornito non esiste, non verranno aggiunti nuovi valori al criterio dell'organizzazione effettivo, a meno che non venga creato da Google in un secondo momento.
La tabella seguente contiene l'elenco corrente dei gruppi disponibili:
Gruppo | Dettagli | Membri diretti |
---|---|---|
Johannesburg | Tutte le località a Johannesburg:in:africa-south1-locations |
Valori:
|
Asia | Tutte le località in Asia:in:asia-locations |
Gruppi:
Valori:
|
Taiwan | Tutte le località a Taiwan:in:asia-east1-locations |
Valori:
|
Hong Kong | Tutte le località a Hong Kong:in:asia-east2-locations |
Valori:
|
Tokyo | Tutte le località a Tokyo:in:asia-northeast1-locations |
Valori:
|
Osaka | Tutte le località a Osaka:in:asia-northeast2-locations |
Valori:
|
Seul | Tutte le località a Seul:in:asia-northeast3-locations |
Valori:
|
Mumbai | Tutte le località a Mumbai:in:asia-south1-locations |
Valori:
|
Delhi | Tutte le località all'interno di Delhi:in:asia-south2-locations |
Valori:
|
Singapore | Tutte le località a Singapore:in:asia-southeast1-locations |
Valori:
|
Giacarta | Tutte le località a Giacarta:in:asia-southeast2-locations |
Valori:
|
Doha | Tutte le località a Doha:in:me-central1-locations |
Valori:
|
Dammam | Tutte le località in Dammam:in:me-central2-locations |
Valori:
|
Israele | Tutte le località in Israele:in:me-west1-locations |
Valori:
|
Australia | Tutte le località in Australia:in:australia-locations |
Gruppi:
|
Sydney | Tutte le località a Sydney:in:australia-southeast1-locations |
Valori:
|
Melbourne | Tutte le località a Melbourne:in:australia-southeast2-locations |
Valori:
|
AWS | Tutte le località AWS:in:aws-locations |
Valori:
|
Azure | Tutte le località Azure:in:azure-locations |
Valori:
|
Unione Europea | Tutte le località all'interno dell'Unione Europea:in:eu-locations |
Gruppi:
Valori:
|
Varsavia | Tutte le località a Varsavia:in:europe-central2-locations |
Valori:
|
Finlandia | Tutte le località in Finlandia:in:europe-north1-locations |
Valori:
|
Madrid | Tutte le località a Madrid:in:europe-southwest1-locations |
Valori:
|
Belgio | Tutte le località in Belgio:in:europe-west1-locations |
Valori:
|
Berlino | Tutte le località a Berlino:in:europe-west10-locations |
Valori:
|
Torino | Tutte le località a Torino:in:europe-west12-locations |
Valori:
|
Francoforte | Tutte le località a Francoforte:in:europe-west3-locations |
Valori:
|
Paesi Bassi | Tutte le località nei Paesi Bassi:in:europe-west4-locations |
Valori:
|
Milano | Tutte le località a Milano:in:europe-west8-locations |
Valori:
|
Parigi | Tutte le località a Parigi:in:europe-west9-locations |
Valori:
|
Europa | Tutte le località in Europa:in:europe-locations |
Gruppi:
Valori:
|
Londra | Tutte le località a Londra:in:europe-west2-locations |
Valori:
|
Zurigo | Tutte le località a Zurigo:in:europe-west6-locations |
Valori:
|
Giappone | Tutte le località in Giappone:in:jp-locations |
Gruppi:
|
Località a bassa emissione di CO2 | Tutte le località a basso impatto di carbonio:in:low-carbon-locations |
Gruppi:
|
Canada a basse emissioni di CO2 | Tutte le località in Canada con impatto a basso impatto di carbonio:in:canada-low-carbon-locations |
Gruppi:
|
Montréal | Tutte le località a Montréal:in:northamerica-northeast1-locations |
Valori:
|
Toronto | Tutte le località a Toronto:in:northamerica-northeast2-locations |
Valori:
|
Unione europea a basse emissioni di CO2 | Tutte le località dell'Unione Europea con impatto a bassa emissione di anidride carbonica:in:eu-low-carbon-locations |
Gruppi:
|
Europa a basse emissioni di CO2 | Tutte le località in Europa con impatto a bassa emissione di anidride carbonica:in:europe-low-carbon-locations |
Gruppi:
|
Nord America a basse emissioni di CO2 | Tutte le località del Nord America con impatto a basse emissioni di anidride carbonica:in:northamerica-low-carbon-locations |
Gruppi:
|
Iowa | Tutte le località in Iowa:in:us-central1-locations |
Valori:
|
Oregon | Tutte le località in Oregon:in:us-west1-locations |
Valori:
|
Sud America a basse emissioni di CO2 | Tutte le località in Sud America con impatto a bassa emissione di CO2:in:southamerica-low-carbon-locations |
Gruppi:
|
San Paolo | Tutte le località a San Paolo:in:southamerica-east1-locations |
Valori:
|
Stati Uniti a bassa emissione di CO2 | Tutte le località negli Stati Uniti con impatto a basso impatto di carbonio:in:us-low-carbon-locations |
Gruppi:
|
Nord America | Tutte le località in Nord America:in:northamerica-locations |
Gruppi:
Valori:
|
Canada | Tutte le località in Canada.in:canada-locations |
Gruppi:
Valori:
|
Stati Uniti | Tutte le località negli Stati Uniti:in:us-locations |
Gruppi:
Valori:
|
Oklahoma | Tutte le località in Oklahoma:in:us-central2-locations |
Valori:
|
Carolina del Sud | Tutte le zone in Carolina del Sud:in:us-east1-locations |
Valori:
|
Virginia del Nord | Tutte le località in Virginia del Nord:in:us-east4-locations |
Valori:
|
Columbus | Tutte le sedi all'interno di Columbus:in:us-east5-locations |
Valori:
|
Dallas | Tutte le località a Dallas:in:us-south1-locations |
Valori:
|
Los Angeles | Tutte le località a Los Angeles:in:us-west2-locations |
Valori:
|
Salt Lake City | Tutte le località a Salt Lake City:in:us-west3-locations |
Valori:
|
Las Vegas | Tutte le località a Las Vegas:in:us-west4-locations |
Valori:
|
Sud America | Tutte le località in Sud America:in:southamerica-locations |
Gruppi:
|
Santiago | Tutte le località a Santiago:in:southamerica-west1-locations |
Valori:
|
Autenticazione
Il servizio criteri dell'organizzazione utilizza OAuth 2.0 per l'autenticazione e l'autorizzazione dell'API. Per ricevere un token di connessione OAuth 2.0:
Vai alla pagina OAuth 2.0 Playground.
Nell'elenco degli ambiti del Passaggio 1, seleziona API Cloud Resource Manager v2 > https://www.googleapis.com/auth/cloud-platform, quindi fai clic su Autorizza API.
Nella pagina Accedi con Google visualizzata, seleziona il tuo account e accedi.
Per fornire l'accesso a Google OAuth 2.0 Playground, fai clic su Consenti nella richiesta visualizzata.
Nel passaggio 2, fai clic su Scambia codice di autorizzazione per i token.
Nella parte inferiore del riquadro Richiesta / risposta a destra viene visualizzata la stringa del token di accesso:
{ "access_token": "ACCESS_TOKEN", "token_type": "Bearer", "expires_in": 3600 }
Dove ACCESS_TOKEN è la stringa del token di connessione OAuth 2.0 che puoi utilizzare per l'autorizzazione API.