Panoramica
Questa guida descrive come impostare un criterio dell'organizzazione che includa il vincolo delle località delle risorse.
Puoi limitare la località fisica di una nuova risorsa con il vincolo per le località delle risorse del Servizio criteri dell'organizzazione. Puoi usare la proprietà "location" di una risorsa per identificare dove il servizio ne esegue il deployment e la gestisce. 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, questa limitazione si applica solo alle risorse appena create. Le risorse create prima di impostare il vincolo delle località delle risorse continueranno a esistere ed eseguire la loro funzione.
Un criterio che include questo vincolo non verrà applicato in modo forzato durante la creazione di risorse secondarie per determinati servizi, come Cloud Storage e Dataproc.
Limitazioni
Il vincolo del Servizio 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 posizione in cui vengono create le risorse globali, ad esempio gli indirizzi globali di Compute Engine, o le risorse che non supportano la selezione di una località.
Per evitare di danneggiare l'infrastruttura di distribuzione esistente, devi testare eventuali nuovi criteri su cartelle e progetti non di produzione, quindi applicarlo gradualmente all'interno dell'organizzazione.
Per gli impegni per l'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 delle 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 nelle 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 include più di un
region
. Ogni region
è ulteriormente suddiviso in zones
. Per ulteriori informazioni su regioni e zone, consulta Panoramica su regioni e zone.
Le località
Multi-region
sono supportate da risorse fisiche in più di unregion
e sono in genere utilizzate solo da risorse basate su archiviazione. Alcuni esempi sonous
,asia
,europe
eglobal
.Region
località sono geograficamente isolate tra loro. Alcuni esempi sonous-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-b
,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 selezionato da Google Cloud ti consente di scegliere posizioni geografiche, senza dover specificare le località Cloud attuali o future.
Il prefisso in:
a un gruppo di valori specifica che tutti i valori esistenti all'interno
del gruppo di valori sono considerati parte del criterio. Se inserisci un valore di gruppo o una regione Google Cloud senza prefisso, il prefisso in:
verrà aggiunto automaticamente in base a queste regole:
- Se inserisci una località che utilizza il prefisso
in:
e contiene gruppi non validi, la modifica del criterio non andrà a buon fine. - Se inserisci una località che corrisponde a una regione, come
us-east1
, in questo esempio verrà anteposto il prefissoin:
ain:us-east1-locations
. - Se inserisci un gruppo di valori per una o più regioni, come
us-locations
, in questo esempio verrà anteposto il prefissoin:
ain:us-locations
. - Se inserisci una zona o più regioni, come
us-east1-b
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 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 del servizio 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 di località delle risorse:
Console
Nella console Google Cloud, vai alla pagina Criteri dell'organizzazione.
Dal selettore dei progetti, scegli 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 criteri.
Fai clic su Gestisci criterio.
Nella pagina Modifica criterio, seleziona Sostituisci criterio della risorsa padre.
In Applicazione dei criteri, seleziona Sostituisci.
Fai clic su Aggiungi regola.
In Valori 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 la stringa della località del gruppo di valori, quindi premi Invio.Ad esempio,
in:us-locations
oin:us-west1-locations
. Puoi inserire più stringhe relative alla località facendo clic su Nuovo valore del criterio.Puoi anche inserire località specifiche per una zona, una regione o più regioni come stringhe di località. Per un elenco delle località disponibili, consulta la pagina Servizi supportati nelle località delle risorse.
Per applicare il criterio, fai clic su Imposta criterio.
gcloud
Per creare un criterio dell'organizzazione che applichi il vincolo delle 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 della tua organizzazione, ad esempio 01234567890.
- POLICY_PATH: il percorso completo del 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 per una zona, una regione o più regioni come stringhe di località. Per un elenco delle località disponibili, consulta la pagina Servizi supportati nelle località delle risorse.
API
Puoi utilizzare l'API Resource Manager per impostare un criterio dell'organizzazione su una risorsa. Sarà necessario un token di connessione OAuth 2.0 per l'autenticazione e l'autorizzazione.
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 per una zona, una regione o più regioni come stringhe di località. Per un elenco delle località disponibili, consulta la pagina Servizi supportati nelle 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 che erediti 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 risorsa, 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
I servizi che supportano il vincolo di località delle risorse non possono creare nuove risorse in località che violerebbero il vincolo. Se un servizio tenta di creare una risorsa in una località che viola il vincolo, l'operazione non riuscirà e verrà generato un messaggio di errore.
Questo messaggio di errore avrà questo 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 correzione
Il vincolo relativo alla località delle risorse limita la creazione di risorse in fase di runtime. Questa funzionalità consente di evitare violazioni della località, ma non identifica o correggono le violazioni esistenti. Puoi utilizzare Security Health Analytics, un servizio integrato di Security Command Center, per scoprire le violazioni delle località nella gerarchia delle risorse. Per maggiori informazioni, consulta Risultati di vulnerabilità dei criteri dell'organizzazione.
Se esistono risultati di Security Health Analytics relativi a violazioni della località, consulta Correzione dei risultati di Security Health Analytics per risolvere i problemi rilevati.
Gruppi di valori
I gruppi di valori sono raccolte di gruppi e località curate da Google per offrire 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 la necessità di modificare il criterio dell'organizzazione per adattarli alle nuove località.
Per utilizzare i gruppi di valori nei criteri dell'organizzazione, aggiungi il prefisso in:
alle voci. Per ulteriori informazioni sull'utilizzo dei prefissi di valore, consulta Utilizzo dei vincoli.
I nomi dei gruppi vengono convalidati durante la chiamata per impostare il criterio dell'organizzazione. Se utilizzi un
nome di gruppo non valido, l'impostazione dei criteri non riuscirà.
La seguente tabella 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à a 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:
|
India | Tutte le località in India:in:in-locations |
Gruppi:
|
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 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 bassa emissione di CO2 | Tutte le località dell'Unione Europea a basso impatto di carbonio:in:eu-low-carbon-locations |
Gruppi:
|
Europa a bassa emissione di CO2 | Tutte le località in Europa a basso impatto di carbonio:in:europe-low-carbon-locations |
Gruppi:
|
Nord America a basse emissioni di CO2 | Tutte le località del Nord America a basso impatto di carbonio: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 a basso impatto di carbonio: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à degli Stati Uniti 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 Milano: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 delle API. Per ottenere 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 nel messaggio visualizzato.
Nel passaggio 2, fai clic su Exchange Authorization code for tokens (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.