Questa pagina descrive come impostare i criteri Identity and Access Management (IAM) sulle cartelle gestite, in modo da ottenere un controllo dell'accesso granulare su gruppi specifici di oggetti all'interno di un bucket.
Se stai cercando altri metodi di controllo dell'accesso dell'accesso, consulta le seguenti risorse:
Per scoprire come controllare l'accesso a interi bucket e agli oggetti al loro interno, consulta Impostare e gestire i criteri IAM sui bucket.
Per un modo alternativo di controllare l'accesso ai singoli oggetti nei bucket, consulta Elenchi di controllo dell'accesso.
Per saperne di più sul controllo dell'accesso alle risorse Cloud Storage, consulta la panoramica del controllo dell'accesso.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per impostare e gestire le policy IAM per le cartelle gestite, chiedi all'amministratore di concederti il ruolo IAM Amministratore cartelle di archiviazione (roles/storage.folderAdmin) per il bucket che contiene le cartelle gestite.
Questo ruolo contiene le seguenti autorizzazioni, necessarie per impostare e gestire le policy IAM per le cartelle gestite:
storage.managedFolders.getIamPolicystorage.managedFolders.setIamPolicy
Puoi anche ottenere queste autorizzazioni con ruoli personalizzati.
Per informazioni sulla concessione dei ruoli per i bucket, consulta Impostare e gestire le policy IAM sui bucket.
Impostare un criterio IAM su una cartella gestita
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene la cartella gestita su cui vuoi impostare una policy IAM.
Nella pagina Dettagli bucket, fai clic sull'icona Altre opzioni nel riquadro Browser delle cartelle accanto alla cartella gestita su cui vuoi impostare un criterio IAM.
Se vuoi controllare l'accesso all'interno di una cartella o di una cartella simulata, segui i passaggi descritti in Creare una cartella gestita per attivare la gestione della cartella o della cartella simulata.
Fai clic su Modifica accesso.
Nel riquadro Autorizzazioni per
MANAGED_FOLDER_NAME, fai clic su Aggiungi entità .Nel campo Nuove entità, inserisci l'entità a cui vuoi concedere l'accesso. Per ulteriori informazioni sulle entità che puoi includere, vedi Identificatori delle entità.
Nella sezione Assegna i ruoli, utilizza il menu a discesa Seleziona un ruolo per specificare il livello di accesso che vuoi concedere al principal.
Fai clic su Salva.
Riga di comando
Crea un file JSON contenente le seguenti informazioni:
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
Dove:
IAM_ROLEè il ruolo IAM che stai concedendo. Ad esempio:roles/storage.objectViewer.PRINCIPAL_IDENTIFIERidentifica a chi stai concedendo l'accesso alla cartella gestita. Ad esempio,user:jeffersonloveshiking@gmail.com. Per un elenco dei formati dell'identificatore entità, consulta Identificatori entità.
Utilizza il comando
gcloud storage managed-folders set-iam-policy:gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita a cui vuoi applicare la norma IAM. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita a cui vuoi applicare la policy IAM. Ad esempio,my-managed-folder/.POLICY_FILEè il percorso del file JSON che hai creato nel passaggio 1.
API REST
JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Crea un file JSON contenente le seguenti informazioni:
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
Dove:
IAM_ROLEè il ruolo IAM che stai concedendo. Ad esempioroles/storage.objectViewer.PRINCIPAL_IDENTIFIERidentifica a chi stai concedendo l'accesso alla cartella gestita. Ad esempio,user:jeffersonloveshiking@gmail.com. Per un elenco dei formati dell'identificatore entità, consulta Identificatori entità.
Utilizza
cURLper chiamare l'API JSON con una richiestaPUT setIamPolicy:curl -X PUT --data-binary @POLICY_FILE \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Dove:
POLICY_FILEè il percorso del file JSON della policy che hai creato nel passaggio precedente.BUCKET_NAMEè il nome del bucket che contiene la cartella gestita a cui vuoi applicare la norma IAM. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita a cui vuoi concedere l'accesso all'entità. Ad esempio,my-managed-folder/.
Visualizzare il criterio IAM per una cartella gestita
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene la cartella gestita per cui vuoi visualizzare le norme IAM.
Nella pagina Dettagli bucket, fai clic sull'icona Altre opzioni nel riquadro Browser delle cartelle accanto alla cartella gestita per cui vuoi visualizzare il criterio IAM.
Fai clic su Modifica accesso.
Il riquadro Autorizzazioni per FOLDER_NAME mostra le
autorizzazioni nella cartella gestita, inclusi l'entità,
il ruolo, i ruoli ereditati e le condizioni IAM.
Riga di comando
Utilizza il comando gcloud storage managed-folder get-iam-policy:
gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita di cui vuoi visualizzare il criterio IAM. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita di cui vuoi visualizzare la policy IAM. Ad esempio,my-managed-folder/.
API REST
JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza
cURLper chiamare l'API JSON con una richiestaGET getIamPolicy:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita di cui vuoi visualizzare la policy IAM. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita di cui vuoi visualizzare la policy IAM. Ad esempio,my-managed-folder/.
Rimuovere un'entità da un criterio cartella gestita
Console
- Nella console Google Cloud , vai alla pagina Bucket in Cloud Storage.
Nell'elenco dei bucket, fai clic sul nome del bucket che contiene la cartella gestita per cui vuoi visualizzare le norme IAM.
Nella pagina Dettagli bucket, fai clic sull'icona Altre opzioni nel riquadro Browser delle cartelle accanto alla cartella gestita per cui vuoi rimuovere un'entità.
Fai clic su Modifica accesso.
Nel riquadro Autorizzazioni per
FOLDER_NAME, inserisci il nome dell'entità nel campo Filtro.Fai clic sull'icona Elimina per eliminare l'entità.
Cloud Storage elimina l'entità dalla cartella gestita.
Riga di comando
Utilizza il comando gcloud storage managed-folder remove-iam-policy-binding:
gcloud storage managed-folders remove-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita a cui stai revocando l'accesso. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita di cui vuoi rimuovere il criterio IAM. Ad esempio,my-managed-folder/.PRINCIPAL_IDENTIFIERidentifica la persona a cui stai revocando l'accesso. Ad esempio,user:jeffersonloveshiking@gmail.com. Per un elenco dei formati degli identificatori delle entità, vedi Identificatori delle entità.IAM_ROLEè il ruolo IAM che stai revocando. Ad esempio:roles/storage.objectViewer.
API REST
JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Recupera la policy esistente applicata alla cartella gestita. Per farlo, utilizza
cURLper chiamare l'API JSON con una richiestaGET getIamPolicy:curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita a cui stai revocando l'accesso. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita di cui vuoi rimuovere il criterio IAM. Ad esempio,my-managed-folder/.
Crea un file JSON contenente il criterio recuperato nel passaggio precedente.
Modifica il file JSON per rimuovere l'entità dal criterio.
Utilizza
cURLper chiamare l'API JSON con una richiestaPUT setIamPolicy:curl -X PUT --data-binary @JSON_FILE_NAME \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"
Dove:
JSON_FILE_NAMEè il percorso del file che hai creato nel passaggio 3.BUCKET_NAMEè il nome del bucket che contiene la cartella gestita a cui stai revocando l'accesso. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita di cui vuoi rimuovere il criterio IAM. Ad esempio,my-managed-folder/.
Utilizzare le condizioni IAM nelle cartelle gestite
Le sezioni seguenti mostrano come aggiungere e rimuovere le condizioni IAM nelle cartelle gestite. Per visualizzare le condizioni IAM per le cartelle gestite, consulta Visualizzazione del criterio IAM per una cartella gestita. Per ulteriori informazioni sull'utilizzo delle condizioni IAM con Cloud Storage, consulta Condizioni.
Devi abilitare l'accesso uniforme a livello di bucket sul bucket prima di aggiungere condizioni alle cartelle gestite.
Impostare una nuova condizione in una cartella gestita
Riga di comando
Crea un file JSON o YAML che definisca la condizione, inclusi il
titledella condizione, la logica basata sugli attributiexpressionper la condizione e, facoltativamente, undescriptionper la condizione.Tieni presente che Cloud Storage supporta solo gli attributi data/ora, tipo di risorsa e nome risorsa in
expression.Utilizza il comando
gcloud storage managed-folders add-iam-policy-bindingcon il flag--condition-from-file:
gcloud storage managed-folders add-iam-policy-binding gs://BUCKET_NAME/MANAGED_FOLDER_NAME --member=PRINCIPAL_IDENTIFIER --role=IAM_ROLE --condition-from-file=CONDITION_FILE
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita a cui stai concedendo l'accesso all'entità. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita a cui stai concedendo l'accesso all'entità. Ad esempio,my-managed-folder/.PRINCIPAL_IDENTIFIERidentifica a chi si applica la condizione. Ad esempio,user:jeffersonloveshiking@gmail.com. Per un elenco dei formati degli identificatori delle entità, vedi Identificatori delle entità.IAM_ROLEè il ruolo IAM che stai concedendo all'entità. Ad esempioroles/storage.objectViewer.CONDITION_FILEè il file che hai creato nel passaggio precedente.
In alternativa, puoi includere la condizione direttamente nel comando
con il flag --condition anziché con il flag --condition-from-file.
API REST
JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza una richiesta
GET getIamPolicyper salvare i criteri IAM della cartella gestita in un file JSON temporaneo:curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita su cui vuoi impostare una condizione IAM.MANAGED_FOLDER_NAMEè il nome della cartella gestita su cui vuoi impostare una condizione IAM.
Modifica il file
tmp-policy.jsonin un editor di testo per aggiungere nuove condizioni alle associazioni nel criterio IAM:{ "version": VERSION, "bindings": [ { "role": "IAM_ROLE", "members": [ "PRINCIPAL_IDENTIFIER" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ], "etag": "ETAG" }Dove:
VERSIONè la versione del criterio IAM, che deve essere 3 per le cartelle gestite con le condizioni IAM.IAM_ROLEè il ruolo a cui si applica la condizione. Ad esempio,roles/storage.objectViewer.PRINCIPAL_IDENTIFIERidentifica a chi si applica la condizione. Ad esempio,user:jeffersonloveshiking@gmail.com. Per un elenco dei formati degli identificatori delle entità, consulta Identificatori delle entità.TITLEè il titolo della condizione. Ad esempio,expires in 2019.DESCRIPTIONè una descrizione facoltativa della condizione. Ad esempio,Permission revoked on New Year's.EXPRESSIONè un'espressione logica basata su attributi. Ad esempiorequest.time < timestamp(\"2019-01-01T00:00:00Z\"). Per altri esempi di espressioni, consulta il riferimento all'attributo Condizioni. Cloud Storage supporta solo gli attributi data/ora, tipo di risorsa e nome risorsa.
Non modificare
ETAG.Utilizza una richiesta
PUT setIamPolicyper impostare il criterio IAM modificato sul bucket:curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita su cui vuoi impostare una condizione IAM.MANAGED_FOLDER_NAMEè il nome della cartella gestita su cui vuoi impostare una condizione IAM.
Rimuovere una condizione da una cartella gestita
Riga di comando
Utilizza il comando
gcloud storage managed-folders get-iam-policyper salvare il criterio IAM della cartella gestita in un file JSON temporaneo.gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
Modifica il file
tmp-policy.jsonin un editor di testo per rimuovere le condizioni dal criterio IAM.Utilizza il comando
gcloud storage managed-folders set-iam-policyper impostare la policy IAM modificata nella cartella gestita.gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json
API REST
JSON
Avere gcloud CLI installata e inizializzata, il che ti consente di generare un token di accesso per l'intestazione
Authorization.Utilizza una richiesta
GET getIamPolicyper salvare i criteri IAM della cartella gestita in un file JSON temporaneo:curl \ 'https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam' \ --header 'Authorization: Bearer $(gcloud auth print-access-token)' > tmp-policy.json
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita di cui stai modificando l'accesso. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita a cui stai modificando l'accesso. Ad esempio,my-managed-folder/.
Modifica il file
tmp-policy.jsonin un editor di testo per rimuovere le condizioni dalla policy IAM.Utilizza una richiesta
PUT setIamPolicyper impostare il criterio IAM modificato nella cartella gestita:curl -X PUT --data-binary @tmp-policy.json \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ "https://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"
Dove:
BUCKET_NAMEè il nome del bucket che contiene la cartella gestita di cui stai modificando l'accesso. Ad esempio,my-bucket.MANAGED_FOLDER_NAMEè il nome della cartella gestita a cui stai modificando l'accesso. Ad esempio,my-managed-folder/.
Utilizzare IAM con i progetti
Consulta Gestire l'accesso a progetti, cartelle gestite e organizzazioni per guide sulla concessione e la revoca dei ruoli IAM a livello di progetto e superiore.
Best practice
Devi impostare il ruolo minimo possibile che conceda all'entità
l'accesso richiesto. Ad esempio, se un membro del team deve solo visualizzare
le cartelle gestite in un bucket, concedigli il ruolo Amministratore oggetti Storage
(roles/storage.objectAdmin) anziché il ruolo Amministratore cartelle Storage
(roles/storage.folderAdmin).
Analogamente, se il membro del team ha bisogno del controllo completo delle cartelle gestite
in un bucket, concedigli il ruolo Amministratore cartelle Storage (roles/storage.folderAdmin)
anziché il ruolo Amministratore Storage (roles/storage.admin).
Passaggi successivi
Scopri come condividere pubblicamente i tuoi dati.
Scopri le best practice per l'utilizzo di IAM.
Per risolvere i problemi relativi alle operazioni non riuscite correlate a ruoli e autorizzazioni IAM, consulta la sezione Risoluzione dei problemi.