Questa pagina fornisce una panoramica di Identity and Access Management (IAM) e del suo utilizzo con il controllo dell'accesso a bucket, cartelle gestite e risorse degli oggetti di archiviazione ideale in Cloud Storage.
Per scoprire altri modi per controllare l'accesso in Cloud Storage, consulta Panoramica del controllo dell'accesso.
Per una discussione dettagliata di IAM e delle sue funzionalità in generale, consulta Identity and Access Management.
Panoramica
IAM ti consente di controllare chi ha accesso risorse nel tuo progetto Google Cloud. Le risorse includono i bucket Cloud Storage, le cartelle gestite all'interno dei bucket e gli oggetti memorizzati al loro interno, nonché altre entità di Google Cloud come le istanze Compute Engine.
Le entità sono il "chi" di IAM. Le entità possono essere singoli utenti, gruppi, domini o persino il pubblico nel suo complesso. Ai principali vengono assegnati ruoli, che consentono loro di eseguire azioni in Cloud Storage e in Google Cloud in generale. Ogni ruolo è una raccolta di una o più autorizzazioni. Le autorizzazioni sono le unità di base di IAM: ogni autorizzazione consente di eseguire una determinata azione.
Ad esempio, l'autorizzazione storage.objects.create
ti consente di creare
di oggetti strutturati. Questa autorizzazione è disponibile in ruoli come Creatore oggetti Storage
(roles/storage.objectCreator
), che concede le autorizzazioni utili per
creazione di oggetti in un bucket e Amministratore oggetti Storage
(roles/storage.objectAdmin
), che concede un'ampia gamma di autorizzazioni per
e lavora con gli oggetti.
La raccolta di ruoli IAM impostati su una risorsa è chiamata criterio IAM. L'accesso concesso da questi ruoli si applica sia la risorsa su cui è impostato il criterio e le eventuali risorse contenute al suo interno risorsa. Ad esempio, puoi impostare un criterio IAM su un bucket che conferisca a un utente il controllo amministrativo del bucket e dei relativi oggetti. Puoi anche impostare un criterio IAM sull'intero progetto per concedere a un altro utente di visualizzare gli oggetti in qualsiasi bucket all'interno del progetto.
Se hai una risorsa organizzazione Google Cloud, puoi utilizzare anche Criteri di negazione IAM per negare l'accesso alle risorse. Quando un criterio di negazione è collegato a una risorsa, l'entità del criterio non può utilizza l'autorizzazione specificata per accedere alla risorsa o a qualsiasi risorsa secondaria all'interno indipendentemente dal ruolo assegnato. I criteri di negazione hanno la precedenza su qualsiasi di autorizzazione IAM.
Autorizzazioni
Le autorizzazioni consentono ai principali di eseguire azioni specifiche su bucket,
cartelle o oggetti gestiti in Cloud Storage. Ad esempio,
L'autorizzazione storage.buckets.list
consente a un'entità di elencare i bucket in
progetto. Non concedi direttamente le autorizzazioni alle entità, concedi invece
roles, che hanno una o più autorizzazioni raggruppate al loro interno.
Per un elenco di riferimento delle autorizzazioni IAM applicabili Cloud Storage, consulta Autorizzazioni IAM per Cloud Storage.
Ruoli
I ruoli sono un pacchetto di una o più autorizzazioni. Ad esempio, il ruolo visualizzatore oggetti Storage (roles/storage.objectViewer
) contiene le autorizzazioni storage.objects.get
e storage.objects.list
. Puoi concedere i ruoli a
che consente di eseguire azioni sui bucket,
cartelle e oggetti
nel tuo progetto.
Per un elenco di riferimento dei ruoli IAM applicabili a Cloud Storage, consulta Ruoli IAM per Cloud Storage.
Concessione di ruoli a livello di progetto, bucket o cartella gestita
Puoi concedere ruoli alle entità a livello di progetto, bucket a livello di cartella gestita. Le autorizzazioni concesse da questi ruoli si applicano in modo additivo in tutta la gerarchia delle risorse. Puoi concedere ruoli a diversi livelli la gerarchia delle risorse per una maggiore granularità nel modello di autorizzazioni.
Ad esempio, supponi di voler concedere a un utente l'autorizzazione a leggere oggetti in qualsiasi
bucket all'interno di un progetto, ma creare oggetti solo nel bucket A. A questo scopo,
puoi fornire all'utente il Visualizzatore oggetti Storage (roles/storage.objectViewer
)
ruolo per il progetto, che consente all'utente di leggere qualsiasi oggetto archiviato in
del bucket all'interno del progetto e il Creatore oggetti Storage
(roles/storage.objectCreator
) per il bucket A, che consente all'utente di
creare oggetti solo in quel bucket.
Alcuni ruoli possono essere utilizzati a tutti i livelli della gerarchia delle risorse. Se utilizzato
a livello di progetto, le autorizzazioni
contenute si applicano a tutti i bucket
cartelle e oggetti
nel progetto. Se utilizzata a livello di bucket,
le autorizzazioni si applicano solo a un bucket specifico e alle cartelle e agli oggetti al suo interno
li annotino. Esempi di questi ruoli sono il ruolo Amministratore Storage (roles/storage.admin
),
il ruolo Visualizzatore oggetti Storage (roles/storage.objectViewer
) e
il ruolo Creatore oggetti Storage (roles/storage.objectCreator
).
Alcuni ruoli possono essere applicati a un solo livello. Ad esempio, puoi applicare il ruolo Proprietario di oggetti legacy di archiviazione (roles/storage.legacyObjectOwner
) solo a livello di bucket o di cartella gestita. I ruoli IAM
che ti consentono di controllare i criteri di rifiuto IAM possono essere applicati solo
a livello di organizzazione.
Relazione con gli ACL
Oltre a IAM, i bucket e gli oggetti possono utilizzare un sistema di controllo dell'accesso precedente chiamato elenchi di controllo dell'accesso (ACL) se la funzionalità di accesso uniforme a livello di bucket non è abilitata per il bucket. In genere, evita di usare ACL e abilita l'accesso uniforme a livello di bucket per il tuo bucket. Questa sezione illustra gli aspetti da tenere presenti quando consentono l'utilizzo degli ACL per un bucket e per gli oggetti al suo interno.
I ruoli IAM Legacy Bucket funzionano in tandem con le ACL dei bucket: quando aggiungi o rimuovi un ruolo Legacy Bucket, le ACL associate al bucket riflettono le modifiche. Analogamente, se cambi un ACL specifico di un bucket, al ruolo IAM del bucket legacy corrispondente per il bucket.
Ruolo bucket legacy | ACL equivalente |
---|---|
Storage Legacy Bucket Reader (roles/storage.legacyBucketReader ) |
Lettore bucket |
Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter ) |
Bucket Writer |
Proprietario bucket legacy Storage (roles/storage.legacyBucketOwner ) |
Proprietario bucket |
Tutti gli altri ruoli IAM a livello di bucket, inclusi i ruoli IAM per gli oggetti legacy, funzionano indipendentemente dalle ACL. Analogamente, tutti i ruoli IAM a livello di progetto funzionano indipendentemente dagli ACL. Per
Ad esempio, se fornisci a un utente il Visualizzatore oggetti Storage,
(roles/storage.objectViewer
), gli ACL rimangono invariati.
Poiché gli ACL degli oggetti funzionano indipendentemente dai ruoli IAM, non vengono visualizzati nella gerarchia dei criteri IAM. Quando valuti chi ha l'accesso a uno degli oggetti, assicurati di controllare gli ACL oltre a controllare a livello di progetto e di bucket i criteri IAM.
Confronto tra criteri di negazione IAM e ACL
I criteri di negazione IAM si applicano agli accessi concessi dagli ACL. Per
Ad esempio, se crei un criterio di negazione che nega un'entità
Autorizzazione storage.objects.get
per un progetto, l'entità non può visualizzare gli oggetti
in quel progetto, anche se dispone dell'autorizzazione READER
a singoli utenti
di oggetti strutturati.
Autorizzazione IAM per la modifica degli ACL
Puoi utilizzare IAM per concedere alle entità l'autorizzazione necessaria
e modificare gli ACL degli oggetti. Le seguenti autorizzazioni di storage.buckets
insieme
consenti agli utenti di utilizzare gli ACL dei bucket e gli ACL degli oggetti predefiniti: .get
,
.getIamPolicy
, .setIamPolicy
e .update
.
Analogamente, le seguenti autorizzazioni di storage.objects
insieme consentono agli utenti di
funzionano con gli ACL degli oggetti: .get
, .getIamPolicy
, .setIamPolicy
e .update
.
Ruoli personalizzati
Sebbene IAM abbia molti ruoli predefiniti che coprono casi d'uso comuni, puoi definire ruoli personalizzati che contengono pacchetti di autorizzazioni da te specificato. Per supportare questa operazione, IAM offre ruoli personalizzati.
Tipi di entità
Esistono diversi tipi di entità. Ad esempio, Google
Gli account e i gruppi Google rappresentano due tipi generali, mentre
allAuthenticatedUsers
e allUsers
sono due tipi specializzati. Per un elenco dei tipi di entità in IAM, consulta Identificatori delle entità. Per maggiori informazioni sugli amministratori in generale, consulta Concetti correlati all'identità.
Valori di convenienza
Cloud Storage supporta i valori di praticità, ovvero un insieme speciale di principi che possono essere applicati specificamente ai criteri dei bucket IAM. In genere dovresti evitare di utilizzare valori di convenienza in produzione ambienti, perché richiedono la concessione di ruoli di base, una pratica sconsigliata negli ambienti di produzione.
Un valore di convenienza è un identificatore di due parti costituito da un ruolo di base e un ID progetto:
projectOwner:PROJECT_ID
projectEditor:PROJECT_ID
projectViewer:PROJECT_ID
Un valore di convenienza agisce da ponte tra le entità a cui viene concesso l'input e un ruolo IAM: il ruolo IAM concesso il valore di convenienza è, in effetti, concesso anche a tutte le entità del il ruolo di base per l'ID progetto specificato.
Ad esempio, supponiamo che jane@example.com e john@example.com abbiano il ruolo Visualizzatore
(roles/viewer
) ruolo di base per un progetto denominato my-example-project
e pronuncia
hai un bucket in quel progetto denominato my-bucket
. Se concedi lo spazio di archiviazione
Ruolo Creatore oggetti (roles/storage.objectCreator
) per
my-bucket
al valore di convenienza projectViewer:my-example-project
, poi
sia jane@example.com che john@example.com ottengono le autorizzazioni associate a
il ruolo Creatore oggetti Storage per my-bucket
.
Puoi concedere e revocare l'accesso ai valori di convenienza per i tuoi bucket, ma tieni presente che che Cloud Storage le applichi automaticamente in determinate circostanze. Per saperne di più, consulta il comportamento modificabile per i ruoli di base in Cloud Storage informazioni.
Condizioni
Le condizioni IAM ti consentono di impostare condizioni che controllano come le autorizzazioni vengono concesse o negate agli entità. Cloud Storage supporta i seguenti tipi di attributi di condizione:
resource.name
: concedi o nega l'accesso ai bucket e agli oggetti in base sul nome del bucket o dell'oggetto. Puoi anche utilizzareresource.type
per concedere l'accesso a bucket o oggetti, ma questa operazione è per lo più ridondante rispetto all'utilizzo diresource.name
. La seguente condizione di esempio applica un'impostazione IAM a tutti gli oggetti con lo stesso prefisso:resource.name.startsWith('projects/_/buckets/BUCKET_NAME/objects/OBJECT_PREFIX')
Data/ora: imposta una data di scadenza per l'autorizzazione.
request.time < timestamp('2019-01-01T00:00:00Z')
Queste espressioni condizionali sono istruzioni logiche che utilizzano un sottoinsieme del Common Expression Language (CEL). Specifichi le condizioni nelle associazioni di ruolo del criterio IAM di un bucket.
Tieni presenti queste limitazioni:
- Devi abilitare l'accesso uniforme a livello di bucket su un bucket prima di aggiungere condizioni a livello di bucket. Sebbene le condizioni siano consentite a livello di progetto, devi eseguire la migrazione di tutti i bucket del progetto a un accesso uniforme a livello di bucket per impedire agli ACL di Cloud Storage di eseguire l'override delle condizioni IAM a livello di progetto. Puoi applicare un vincolo di accesso uniforme a livello di bucket per abilitare l'accesso uniforme a livello di bucket per tutti i nuovi bucket del progetto.
- Quando utilizzi l'API JSON per chiamare
getIamPolicy
esetIamPolicy
sui bucket con condizioni, devi impostare la versione del criterio IAM su 3. - Poiché l'autorizzazione
storage.objects.list
viene concessa a livello di bucket, non puoi utilizzare l'attributo condizioneresource.name
per limitare l'oggetto che elenca l'accesso a un sottoinsieme di oggetti nel bucket. - Le condizioni scadute rimangono nel criterio IAM finché non la rimuovi che li rappresentano.
Utilizzo con gli strumenti di Cloud Storage
Sebbene non sia possibile impostare le autorizzazioni IAM tramite l'API XML, gli utenti le autorizzazioni IAM concesse possono comunque utilizzare l'API XML, a un altro strumento per accedere a Cloud Storage.
Per i riferimenti sulle autorizzazioni IAM che consentono agli utenti di eseguire azioni con diversi strumenti Cloud Storage, consulta Riferimenti IAM per Cloud Storage.
Passaggi successivi
- Scopri come utilizzare IAM con Cloud Storage.
- Esamina la tabella di riferimento IAM per Cloud Storage.
- Scopri le best practice per l'utilizzo di IAM.
- Gestisci i criteri IAM per tutto il tuo account Google Cloud Google Cloud.