Vincoli dei criteri dell'organizzazione per Cloud Storage

Questa pagina fornisce informazioni supplementari sui vincoli delle policy dell'organizzazione che si applicano a Cloud Storage. Utilizza i vincoli per applicare i comportamenti di bucket e oggetti in un'intera organizzazione o un intero progetto. I vincoli delle policy dell'organizzazione possono essere vincoli booleani o vincoli di elenco.

Tieni presente che l'applicazione o la disattivazione di eventuali vincoli potrebbe richiedere fino a 10 minuti per diventare effettiva.

Vincoli di Cloud Storage

I seguenti vincoli possono essere applicati a una policy dell'organizzazione e riguardano Cloud Storage:

Applica la prevenzione dell'accesso pubblico

Nome vincolo: constraints/storage.publicAccessPrevention Tipo di vincolo: boolean

Quando applichi il vincolo publicAccessPrevention a una risorsa, l'accesso pubblico viene limitato per tutti i bucket e gli oggetti, sia nuovi che esistenti, all'interno della risorsa.

Durata di conservazione dell'eliminazione temporanea

Nome vincolo: constraints/storage.softDeletePolicySeconds Tipo di vincolo: list

Quando applichi il vincolo softDeletePolicySeconds, specifichi una o più durate di conservazione per l'eliminazione temporanea (softDeletePolicy.retentionDuration) come parte del vincolo. Il vincolo convalida che qualsiasi richiesta di creazione di un nuovo bucket o di aggiornamento della durata di conservazione per l'eliminazione temporanea di un bucket esistente deve includere esplicitamente una delle durate di conservazione consentite specificate. Ad esempio, se imposti la durata di conservazione su 864.000 secondi (10 giorni) nell'ambito di questo vincolo, qualsiasi richiesta di creazione o aggiornamento di un bucket all'interno dell'organizzazione deve includere una durata di conservazione per l'eliminazione temporanea di 864000 nel payload della richiesta. Le richieste che omettono questa configurazione non andranno a buon fine.

Questo vincolo convalida solo le richieste di creazione di un nuovo bucket o di aggiornamento di un bucket esistente nell'organizzazione. Non influisce in altro modo sui bucket preesistenti.

Se imposti più vincoli softDeletePolicySeconds a livelli di risorse diversi, vengono applicati in modo gerarchico. Per questo motivo, ti consigliamo di impostare il campo inheritFromParent su true, in modo da garantire che vengano prese in considerazione anche le policy dei livelli superiori.

Durata della policy di conservazione del bucket in secondi

Nome vincolo: constraints/storage.retentionPolicySeconds Tipo di vincolo: list

Quando applichi il vincolo retentionPolicySeconds, specifichi una o più durate come parte del vincolo. Una volta impostate, le policy di conservazione dei bucket devono includere una delle durate specificate. retentionPolicySeconds è obbligatorio quando crei un nuovo bucket e quando aggiungi o aggiorni il periodo di conservazione di un bucket preesistente; tuttavia, non è obbligatorio per i bucket preesistenti.

Se imposti più vincoli retentionPolicySeconds a livelli di risorse diversi, vengono applicati in modo gerarchico. Per questo motivo, ti consigliamo di impostare il campo inheritFromParent su true, in modo da garantire che vengano prese in considerazione anche le policy dei livelli superiori.

Richiedi l'accesso uniforme a livello di bucket

Nome vincolo: constraints/storage.uniformBucketLevelAccess Tipo di vincolo: boolean

Quando applichi il vincolo uniformBucketLevelAccess, i nuovi bucket devono abilitare la funzionalità di accesso uniforme a livello di bucket e i bucket preesistenti con questa funzionalità abilitata non possono disabilitarla. I bucket preesistenti con l'accesso uniforme a livello di bucket disabilitato non sono tenuti ad abilitarlo.

Modalità di audit logging dettagliato

Nome vincolo: constraints/gcp.detailedAuditLoggingMode Tipo di vincolo: boolean

Quando applichi il vincolo detailedAuditLoggingMode, i log di Cloud Audit Logs associati alle operazioni di Cloud Storage contengono informazioni dettagliate su richieste e risposte. Si consiglia di utilizzare questo vincolo in combinazione con il blocco dei bucket e il blocco della conservazione degli oggetti per la conformità a varie norme, come la regola SEC 17a-4(f), la regola CFTC 1.31(c)-(d) e la regola FINRA 4511(c).

Le informazioni registrate includono parametri di ricerca, parametri di percorso e parametri del corpo della richiesta. I log escludono alcune parti di richieste e risposte associate a informazioni sensibili. Ad esempio, i log escludono:

  • Credenziali, come Authorization, X-Goog-Signature o upload-id.
  • Informazioni sulla chiave di crittografia, ad esempio x-goog-encryption-key.
  • Dati di oggetti non elaborati.

Quando utilizzi questo vincolo, tieni presente quanto segue:

  • Le informazioni dettagliate su richieste e risposte non sono garantite; in rari casi, potrebbero essere restituiti log vuoti.
  • Le richieste e le risposte registrate vengono registrate in un formato generico che corrisponde ai nomi dei campi dell'API JSON.

Limita tipi di autenticazione

Nome vincolo: constraints/storage.restrictAuthTypes Tipo di vincolo: list

Quando applichi il vincolo restrictAuthTypes, le richieste di accesso alle risorse Cloud Storage che utilizzano il tipo di autenticazione limitato non vanno a buon fine, indipendentemente dalla validità della richiesta. Puoi utilizzare il vincolo restrictAuthTypes per limitare le chiavi HMAC in modo da soddisfare i requisiti normativi o aumentare la sicurezza dei tuoi dati.

Il vincolo dell'elenco nega esplicitamente tipi di autenticazione specifici, consentendo tutti gli altri. Per farlo, devi elencare i tipi di autenticazione limitati nella chiave deniedValues all'interno di rules del vincolo restrictAuthTypes. Se provi a elencare i tipi di autenticazione limitati nella chiave allowedValues, si verifica un errore.

Puoi limitare i seguenti tipi di autenticazione:

  • SERVICE_ACCOUNT_HMAC_SIGNED_REQUESTS: limita le richieste firmate dalle chiavi HMAC dei service account.

  • in:ALL_HMAC_SIGNED_REQUESTS: limita le richieste firmate da qualsiasi chiave HMAC. Se devi soddisfare i requisiti di sovranità dei dati, ti consigliamo di limitare tutte le richieste firmate HMAC.

  • in:ALL_SIGNED_REQUESTS: limita le richieste firmate da qualsiasi chiave HMAC o RSA.

Quando attivi questo vincolo, si verifica quanto segue:

  • Cloud Storage limita l'accesso per le richieste autenticate con il tipo di autenticazione limitato. Le richieste non vanno a buon fine con l'errore 403 Forbidden.

  • Le entità precedentemente autorizzate a eseguire la richiesta ricevono un messaggio di errore che spiega che il tipo di autenticazione è disabilitato.

  • Se le chiavi HMAC sono limitate:

    • Le chiavi HMAC del tipo limitato non possono più essere create o attivate nella risorsa su cui viene applicato il vincolo. Le richieste di creazione o attivazione delle chiavi HMAC non vanno a buon fine e restituiscono l'errore 403 Forbidden.

    • Le chiavi HMAC esistenti rimangono, ma non sono più utilizzabili. Possono essere disattivati o eliminati, ma non possono essere riattivati.

Quando utilizzi il vincolo restrictAuthTypes, tieni presente le risorse esistenti che dipendono dall'autenticazione HMAC. Ad esempio, se hai eseguito la migrazione da Amazon Simple Storage Service (Amazon S3), la tua applicazione probabilmente utilizza le chiavi HMAC per autenticare le richieste a Cloud Storage. Puoi utilizzare la metrica di Cloud Monitoring storage.googleapis.com/authn/authentication_count per monitorare il numero di volte in cui le chiavi HMAC sono state utilizzate per autenticare le richieste.

Limita le richieste HTTP non criptate

Nome vincolo: constraints/storage.secureHttpTransport Tipo di vincolo: boolean

Quando applichi il vincolo secureHttpTransport, viene negato l'accesso HTTP non criptato alle risorse Cloud Storage.

Vincoli aggiuntivi

I seguenti vincoli delle policy dell'organizzazione si applicano più in generale aCloud de Confiance, ma vengono spesso applicati al servizio Cloud Storage:

Consenti o nega in modo condizionale i vincoli delle policy dell'organizzazione

I tag forniscono un modo per consentire o negare in modo condizionale le policy dell'organizzazione a seconda che un bucket Cloud Storage abbia un tag specifico. Per istruzioni dettagliate, consulta Impostazione di una policy dell'organizzazione con tag.

Passaggi successivi