Panoramica
Questa guida descrive come impostare un criterio dell'organizzazione che includa il vincolo delle località delle risorse.
Puoi limitare la posizione fisica di una nuova risorsa con il vincolo per le località delle risorse del servizio di criteri dell'organizzazione. Puoi utilizzare la proprietà location di una risorsa per identificare dove viene implementata e gestita dal servizio. Per le risorse contenenti dati di alcuni servizi Google Cloud, questa proprietà riflette anche la posizione in cui vengono 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 verrà applicata solo alle risorse appena create. Le risorse create prima di impostare il vincolo delle posizioni delle risorse continueranno a esistere ed eseguiranno la loro funzione.
Un criterio che include questo vincolo non verrà applicato alla creazione di risorse secondarie per determinati servizi, come Cloud Storage e Dataproc.
Limitazioni
Il vincolo del 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 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 interrompere l'infrastruttura di pubblicazione esistente, devi testare qualsiasi nuova norma su progetti e cartelle non di produzione, quindi applicarla gradualmente all'interno della tua organizzazione.
Per gli impegni relativi allo spazio di 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 dettagli sul comportamento di ciascun servizio, consulta la pagina Servizi supportati dalle 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 saperne di più su regioni e zone, consulta la Panoramica di regioni e zone.
Le località
Multi-region
sono supportate da risorse fisiche in più di unregion
e in genere vengono utilizzate solo dalle risorse basate sullo spazio di archiviazione. Ecco alcuni esempi:us
,asia
,europe
eglobal
.Le località
Region
sono isolate geograficamente l'una dall'altra. 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 consente di scegliere una o più località geografiche senza dover specificare le località Cloud attuali o future.
Il prefisso in:
di 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 il prefisso, il prefisso in:
verrà aggiunto automaticamente in base a queste regole:
- Se inserisci una località che utilizza il prefisso
in:
e contiene un gruppo non valido, la modifica delle norme non andrà a buon fine. - Se inserisci una località che è una regione, ad esempio
us-east1
, verrà anteposto il prefissoin:
, in questo casoin:us-east1-locations
. - Se inserisci un gruppo di valori per una regione o per più regioni, ad esempio
us-locations
, verrà anteposto il prefissoin:
, in questo casoin:us-locations
. - Se inserisci una zona o più regioni, ad esempio
us-east1-b
ous
, i valori non verranno modificati.
Impostazione del criterio dell'organizzazione
Il vincolo delle località delle risorse è un tipo di
vincolo di elenco.
Puoi aggiungere e rimuovere località dagli elenchi allowed_values
o denied_values
di un vincolo delle località delle risorse. Per impedire ai criteri dell'organizzazione di limitare in modo imprevisto il comportamento del servizio man mano che vengono aggiunte nuove località all'elenco disponibile, utilizza un gruppo di valori o un elenco di allowed_values
che rappresenti l'intero confine geografico che vuoi definire.
Per impostare un criterio dell'organizzazione che includa un vincolo delle località delle risorse:
Console
Nella console Google Cloud, vai alla pagina Norme dell'organizzazione.
Dal selettore di progetti, seleziona l'organizzazione, la cartella o il progetto per cui vuoi impostare il criterio dell'organizzazione.
Seleziona il vincolo Google Cloud Platform - Resource Location Restriction per aprire la pagina Dettagli dei criteri.
Fai clic su Gestisci criterio.
Nella pagina Modifica criterio, seleziona Ignora criterio della risorsa padre.
In Applicazione criterio, 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 o Rifiuta per creare un elenco di località vietate.
Nella casella Valore criterio, inserisci il prefisso
in
e una stringa di posizione 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 criterio.Puoi anche inserire località specifiche di zone, regioni o più regioni come stringhe di località. Per un elenco delle località disponibili, consulta la pagina Località delle risorse: servizi supportati.
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:
name: organizations/ORGANIZATION_ID/policies/gcp.resourceLocations
spec:
rules:
- values:
deniedValues:
- in:us-east1-locations
- in:northamerica-northeast1-locations
Per applicare il criterio dell'organizzazione contenente il vincolo, esegui il seguente comando:
gcloud org-policies set-policy POLICY_PATH
Sostituisci quanto segue:
ORGANIZATION_ID
: il tuo ID organizzazione, ad esempio 01234567890.POLICY_PATH
: il percorso completo del file YAML contenente il criterio dell'organizzazione.
Verrà restituita una risposta con i risultati delle nuove norme 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 di zone, regioni o più regioni come stringhe di località. Per un elenco delle località disponibili, consulta la pagina Località delle risorse: servizi supportati.
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 accesso 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 di zone, regioni o più regioni come stringhe di località. Per un elenco delle località disponibili, consulta la pagina Località delle risorse: servizi supportati.
Per scoprire di più sull'utilizzo dei vincoli nei criteri dell'organizzazione, consulta Utilizzo dei vincoli.
Utilizzo dell'ereditarietà nei criteri dell'organizzazione
Puoi perfezionare il criterio dell'organizzazione in modo da ereditarlo dai nodi principali della risorsa. L'eredità ti consente di avere un controllo granulare sui criteri dell'organizzazione utilizzati in tutta la gerarchia delle risorse.
Per attivare l'ereditarietà in un nodo della risorsa, imposta inheritFromParent = true
nel
file YAML dei criteri 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 della località della risorsa non possono creare nuove risorse in località che violerebbero il vincolo. Se un servizio tenta di creare una risorsa in una posizione che viola la limitazione, 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"
}
Risultati relativi alle vulnerabilità e correzione
Il vincolo della posizione della risorsa limita la creazione delle risorse in fase di runtime. Questa funzionalità aiuta a evitare violazioni della posizione, ma non consente di identificare o correggere le violazioni esistenti. Puoi utilizzare Security Health Analytics, un servizio integrato di Security Command Center, per rilevare violazioni della posizione nella gerarchia delle risorse. Per ulteriori informazioni, consulta Risultati delle vulnerabilità relative ai criteri dell'organizzazione.
Se sono presenti risultati di Security Health Analytics relativi a violazioni della posizione, consulta la sezione Correzione dei risultati di Security Health Analytics per conoscere la procedura da seguire.
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 valore includono molte località correlate e vengono espansi nel tempo da Google senza dover modificare i criteri 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 dei valori, consulta la sezione Utilizzare le limitazioni.
I nomi dei gruppi vengono convalidati durante la chiamata per impostare il criterio dell'organizzazione. L'utilizzo di un nome di gruppo non valido comporterà il fallimento dell'impostazione del criterio.
La seguente tabella contiene l'elenco attuale dei gruppi disponibili:
Gruppo | Dettagli | Membri diretti |
---|---|---|
Johannesburg | Tutte le località all'interno di Johannesburg:in:africa-south1-locations |
Valori:
|
Asia | Tutte le località in Asia:in:asia-locations |
Gruppi:
Valori:
|
Hong Kong | Tutte le località all'interno di Hong Kong:in:asia-east2-locations |
Valori:
|
Indonesia | Tutte le località dell'Indonesia:in:id-locations |
Gruppi:
Valori:
|
Giacarta | Tutte le località all'interno di Giacarta:in:asia-southeast2-locations |
Valori:
|
Israele | Tutte le località all'interno di Israele:in:il-locations |
Gruppi:
Valori:
|
Israele | Tutte le località all'interno di Israele:in:me-west1-locations |
Valori:
|
India | Tutte le località in India:in:in-locations |
Gruppi:
Valori:
|
Mumbai | Tutte le località all'interno di Mumbai:in:asia-south1-locations |
Valori:
|
Delhi | Tutte le località all'interno di Delhi:in:asia-south2-locations |
Valori:
|
Giappone | Tutte le località all'interno del Giappone:in:jp-locations |
Gruppi:
Valori:
|
Tokyo | Tutte le località all'interno di Tokyo:in:asia-northeast1-locations |
Valori:
|
Osaka | Tutte le località all'interno di Osaka:in:asia-northeast2-locations |
Valori:
|
Corea del Sud | Tutte le località all'interno della Corea del Sud:in:kr-locations |
Gruppi:
Valori:
|
Seul | Tutte le località all'interno di Seul:in:asia-northeast3-locations |
Valori:
|
Doha | Tutte le località all'interno di Doha:in:me-central1-locations |
Valori:
|
Arabia Saudita | Tutte le località all'interno dell'Arabia Saudita:in:sa-locations |
Gruppi:
Valori:
|
Dammam | Tutte le località all'interno di Dammam:in:me-central2-locations |
Valori:
|
Singapore | Tutte le località all'interno di Singapore:in:sg-locations |
Gruppi:
Valori:
|
Singapore | Tutte le località all'interno di Singapore:in:asia-southeast1-locations |
Valori:
|
Taiwan | Tutte le località all'interno di Taiwan:in:tw-locations |
Gruppi:
Valori:
|
Taiwan | Tutte le località all'interno di Taiwan:in:asia-east1-locations |
Valori:
|
Australia | Tutte le località all'interno dell'Australia:in:australia-locations |
Gruppi:
Valori:
|
Sydney | Tutte le località all'interno di Sydney:in:australia-southeast1-locations |
Valori:
|
Melbourne | Tutte le località all'interno di 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:
|
Germania | Tutte le sedi in Germania:in:de-locations |
Gruppi:
Valori:
|
Berlino | Tutte le località all'interno di Berlino:in:europe-west10-locations |
Valori:
|
Francoforte | Tutte le sedi all'interno di Francoforte:in:europe-west3-locations |
Valori:
|
Varsavia | Tutte le sedi all'interno di Varsavia:in:europe-central2-locations |
Valori:
|
Finlandia | Tutte le località all'interno della Finlandia:in:europe-north1-locations |
Valori:
|
Madrid | Tutte le località all'interno di Madrid:in:europe-southwest1-locations |
Valori:
|
Belgio | Tutte le località in Belgio:in:europe-west1-locations |
Valori:
|
Paesi Bassi | Tutte le località all'interno dei Paesi Bassi:in:europe-west4-locations |
Valori:
|
Parigi | Tutte le sedi all'interno di Parigi:in:europe-west9-locations |
Valori:
|
Italia | Tutte le località all'interno dell'Italia:in:it-locations |
Gruppi:
Valori:
|
Torino | Tutte le sedi all'interno di Torino:in:europe-west12-locations |
Valori:
|
Milano | Tutte le sedi di Milano:in:europe-west8-locations |
Valori:
|
Europa | Tutte le località all'interno dell'Europa:in:europe-locations |
Gruppi:
Valori:
|
Svizzera | Tutte le località all'interno della Svizzera:in:ch-locations |
Gruppi:
Valori:
|
Zurigo | Tutte le località all'interno di Zurigo:in:europe-west6-locations |
Valori:
|
Regno Unito | Tutte le località del Regno Unito:in:gb-locations |
Gruppi:
Valori:
|
Londra | Tutte le località all'interno di Londra:in:europe-west2-locations |
Valori:
|
Località a basse emissioni di CO2 | Tutte le località con un impatto ridotto sul carbonio:in:low-carbon-locations |
Gruppi:
|
Canada a basse emissioni di carbonio | Tutte le località in Canada con un impatto ridotto sul carbonio:in:canada-low-carbon-locations |
Gruppi:
|
Montréal | Tutte le sedi all'interno di Montréal:in:northamerica-northeast1-locations |
Valori:
|
Toronto | Tutte le sedi all'interno di Toronto:in:northamerica-northeast2-locations |
Valori:
|
Unione Europea a basse emissioni di carbonio | Tutte le località all'interno dell'Unione europea con un'impronta di carbonio ridotta:in:eu-low-carbon-locations |
Gruppi:
|
Europa a basse emissioni di carbonio | Tutte le località in Europa con un impatto a basse emissioni di carbonio:in:europe-low-carbon-locations |
Gruppi:
|
Nord America a basse emissioni di CO2 | Tutte le località in Nord America con un impatto a basse emissioni di carbonio:in:northamerica-low-carbon-locations |
Gruppi:
|
Iowa | Tutte le località all'interno dell'Iowa:in:us-central1-locations |
Valori:
|
Oregon | Tutte le località all'interno dell'Oregon:in:us-west1-locations |
Valori:
|
Sud America a basse emissioni di carbonio | Tutte le località in Sud America con un impatto a basse emissioni di carbonio:in:southamerica-low-carbon-locations |
Gruppi:
|
San Paolo | Tutte le località all'interno di San Paolo:in:southamerica-east1-locations |
Valori:
|
Stati Uniti a basse emissioni di CO2 | Tutte le località degli Stati Uniti con un impatto ridotto sul carbonio:in:us-low-carbon-locations |
Gruppi:
|
Nord America | Tutte le località del Nord America:in:northamerica-locations |
Gruppi:
Valori:
|
Canada | Tutte le località all'interno del Canada.in:canada-locations |
Gruppi:
Valori:
|
Messico | Tutte le località in Messico:in:northamerica-south1-locations |
Valori:
|
Stati Uniti | Tutte le località all'interno degli Stati Uniti:in:us-locations |
Gruppi:
Valori:
|
Oklahoma | Tutte le località all'interno dell'Oklahoma:in:us-central2-locations |
Valori:
|
Carolina del Sud | Tutte le zone della Carolina del Sud:in:us-east1-locations |
Valori:
|
Virginia del Nord | Tutte le località della Virginia del Nord:in:us-east4-locations |
Valori:
|
Columbus | Tutte le sedi all'interno di Columbus:in:us-east5-locations |
Valori:
|
Dallas | Tutte le sedi all'interno di Dallas:in:us-south1-locations |
Valori:
|
Los Angeles | Tutte le sedi all'interno di Los Angeles:in:us-west2-locations |
Valori:
|
Salt Lake City | Tutte le località all'interno di Salt Lake City:in:us-west3-locations |
Valori:
|
Las Vegas | Tutte le sedi all'interno di Las Vegas:in:us-west4-locations |
Valori:
|
Sud America | Tutte le località in Sud America:in:southamerica-locations |
Gruppi:
|
Brasile | Tutte le località all'interno del Brasile:in:br-locations |
Gruppi:
Valori:
|
Cile | Tutte le località in Cile:in:cl-locations |
Gruppi:
Valori:
|
Santiago | Tutte le località all'interno di Santiago:in:southamerica-west1-locations |
Valori:
|
Autenticazione
Organization Policy Service utilizza OAuth 2.0 per l'autenticazione e l'autorizzazione delle API. Per ottenere un token di accesso OAuth 2.0:
Vai alla pagina OAuth 2.0 Playground.
Nell'elenco di ambiti del Passaggio 1, seleziona API Cloud Resource Manager v2 > https://www.googleapis.com/auth/cloud-platform e poi 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 bearer OAuth 2.0 che puoi utilizzare per l'autorizzazione dell'API.