Imposta e gestisci i criteri IAM sulle cartelle gestite

In questa pagina viene descritto come impostare i criteri di Identity and Access Management (IAM) per le 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:

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per impostare e gestire i criteri IAM per le cartelle gestite, chiedi all'amministratore di concederti il ruolo IAM Amministratore cartelle Storage (roles/storage.folderAdmin) per il bucket che contiene le cartelle gestite.

Questo ruolo contiene le seguenti autorizzazioni, necessarie per impostare e gestire i criteri IAM per le cartelle gestite:

  • storage.managedfolders.getIamPolicy

  • storage.managedfolders.setIamPolicy

Puoi ottenere queste autorizzazioni anche con i ruoli personalizzati.

Per informazioni sulla concessione dei ruoli per i bucket, consulta Impostare e gestire i criteri IAM sui bucket.

Imposta un criterio IAM su una cartella gestita

Console

  1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket che contiene la cartella gestita per cui vuoi impostare un criterio IAM.

  3. Nella pagina Dettagli bucket, fai clic sull'icona Altre opzioni nel riquadro Browser cartelle accanto alla cartella gestita per la quale vuoi impostare un criterio IAM.

    Se la cartella di cui vuoi controllare l'accesso è una cartella simulata, segui i passaggi descritti in Creare una cartella gestita per convertirla prima in una cartella gestita.

  4. Fai clic su Modifica accesso.

  5. Nel riquadro Autorizzazioni per MANAGED_FOLDER_NAME, fai clic su Aggiungi entità .

  6. Nel campo Nuove entità, inserisci l'entità per cui vuoi concedere l'accesso. Per saperne di più sulle entità che puoi includere, consulta Identificatori delle entità.

  7. Nella sezione Assegna ruoli, utilizza il menu a discesa Seleziona un ruolo per specificare il livello di accesso che vuoi concedere all'entità.

  8. Fai clic su Salva.

Riga di comando

  1. 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_IDENTIFIER identifica a chi concedi l'accesso alle cartelle gestite. Ad esempio, user:[email protected]. Per un elenco dei formati degli identificatori principali, consulta Identificatori principali.

  2. 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 il criterio IAM. Ad esempio, my-bucket.

    • MANAGED_FOLDER_NAME è il nome della cartella gestita a cui vuoi applicare il criterio IAM. Ad esempio, my-managed-folder/.

    • POLICY_FILE è il percorso del file JSON creato al passaggio 1.

API REST

JSON

  1. Assicurati che gcloud CLI sia installato e inizializzatoper generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione Authorization.

  2. 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_IDENTIFIER identifica a chi concedi l'accesso alle cartelle gestite. Ad esempio, user:[email protected]. Per un elenco dei formati degli identificatori principali, consulta Identificatori principali.

  3. Utilizza cURL per chiamare l'API JSON con una richiesta PUT setIamPolicy:

    curl -X PUT --data-binary @POLICY_FILE \
      -H "Authorization: Bearer $(gcloud auth print-access-token)" \
      -H "Content-Type: application/json" \
      "http://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Dove:

    • POLICY_FILE è il percorso del file di criteri JSON creato nel passaggio precedente.

    • BUCKET_NAME è il nome del bucket che contiene la cartella gestita a cui vuoi applicare il criterio 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/.

Visualizza il criterio IAM per una cartella gestita

Console

  1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket che contiene la cartella gestita per cui vuoi visualizzare i criteri IAM.

  3. Nella pagina Dettagli bucket, fai clic sull'icona Altre opzioni nel riquadro Browser cartelle accanto alla cartella gestita per la quale vuoi visualizzare il criterio IAM.

  4. Fai clic su Modifica accesso.

Nel riquadro Autorizzazioni per FOLDER_NAME vengono visualizzate le autorizzazioni per la 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 il criterio IAM. Ad esempio, my-managed-folder/.

API REST

JSON

  1. Assicurati che gcloud CLI sia installato e inizializzatoper generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione Authorization.

  2. Utilizza cURL per chiamare l'API JSON con una richiesta GET getIamPolicy:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "http://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 il criterio IAM. Ad esempio, my-bucket.

    • MANAGED_FOLDER_NAME è il nome della cartella gestita di cui vuoi visualizzare il criterio IAM. Ad esempio, my-managed-folder/.

Rimuovi un'entità da un criterio delle cartelle gestite

Console

  1. Nella console Google Cloud, vai alla pagina Bucket di Cloud Storage.

    Vai a Bucket

  2. Nell'elenco dei bucket, fai clic sul nome del bucket che contiene la cartella gestita per cui vuoi visualizzare i criteri IAM.

  3. Nella pagina Dettagli bucket, fai clic sull'icona Altre opzioni nel riquadro Browser cartelle accanto alla cartella gestita per la quale vuoi rimuovere un'entità.

  4. Fai clic su Modifica accesso.

  5. Nel riquadro Autorizzazioni per FOLDER_NAME, inserisci il nome dell'entità nel campo Filtro.

  6. 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 per 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_IDENTIFIER identifica da chi vuoi revocare l'accesso. Ad esempio, user:[email protected]. Per un elenco dei formati degli identificatori principali, consulta Identificatori principali.

  • IAM_ROLE è il ruolo IAM che stai revocando. Ad esempio: roles/storage.objectViewer.

API REST

JSON

  1. Assicurati che gcloud CLI sia installato e inizializzatoper generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione Authorization.

  2. Ottieni l'applicazione del criterio esistente alla cartella gestita. A questo scopo, utilizza cURL per chiamare l'API JSON con una richiesta GET getIamPolicy:

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "http://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 per 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/.

  3. Crea un file JSON contenente il criterio recuperato nel passaggio precedente.

  4. Modifica il file JSON per rimuovere l'entità dal criterio.

  5. Utilizza cURL per chiamare l'API JSON con una richiesta PUT setIamPolicy:

    curl -X PUT --data-binary @JSON_FILE_NAME \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "http://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Dove:

    • JSON_FILE_NAME è il percorso del file creato nel passaggio 3.

    • BUCKET_NAME è il nome del bucket che contiene la cartella gestita per 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/.

Utilizzo delle condizioni IAM sulle 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, vedi Visualizzazione del criterio IAM per una cartella gestita. Per ulteriori informazioni sull'utilizzo delle condizioni IAM con Cloud Storage, consulta la sezione Condizioni.

Devi abilitare l'accesso uniforme a livello di bucket nel bucket prima di aggiungere condizioni alle cartelle gestite.

Impostare una nuova condizione su una cartella gestita

Riga di comando

  1. Crea un file JSON o YAML che definisce la condizione, inclusi title della condizione, la logica basata su attributi expression per la condizione e, facoltativamente, un description per la condizione.

    Tieni presente che Cloud Storage supporta solo gli attributi data/ora, tipo di risorsa e nome risorsa in expression.

  2. Utilizza il comando gcloud storage managed-folders add-iam-policy-binding con 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_IDENTIFIER identifica l'utente a cui si applica la condizione. Ad esempio, user:[email protected]. Per un elenco dei formati degli identificatori principali, consulta Identificatori principali.

  • IAM_ROLE è il ruolo IAM che stai concedendo all'entità. Ad esempio, roles/storage.objectViewer.

  • CONDITION_FILE è il file creato nel passaggio precedente.

In alternativa, puoi includere la condizione direttamente nel comando con il flag --condition anziché il flag --condition-from-file.

API REST

JSON

  1. Assicurati che gcloud CLI sia installato e inizializzatoper generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione Authorization.

  2. Utilizza una richiesta GET getIamPolicy per salvare il criterio IAM della cartella gestita in un file JSON temporaneo:

    curl \
    'http://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 per cui vuoi impostare una condizione IAM.

    • MANAGED_FOLDER_NAME è il nome della cartella gestita per cui vuoi impostare una condizione IAM.

  3. Modifica il file tmp-policy.json in 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 dei criteri IAM, che deve essere pari a 3 per le cartelle gestite con condizioni IAM.

    • IAM_ROLE è il ruolo a cui si applica la condizione. Ad esempio, roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER identifica l'utente a cui si applica la condizione. Ad esempio, user:[email protected]. Per un elenco dei formati degli identificatori principali, consulta Identificatori principali.

    • 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 esempio, request.time < timestamp(\"2019-01-01T00:00:00Z\"). Per ulteriori esempi di espressioni, consulta il riferimento all'attributo Condizioni. Cloud Storage supporta solo gli attributi data/ora, tipo risorsa e nome risorsa.

    Non modificare ETAG.

  4. Utilizza una richiesta PUT setIamPolicy per 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" \
    "http://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFoldersMANAGED_FOLDER_NAME/iam"

    Dove:

    • BUCKET_NAME è il nome del bucket che contiene la cartella gestita per cui vuoi impostare una condizione IAM.

    • MANAGED_FOLDER_NAME è il nome della cartella gestita per cui vuoi impostare una condizione IAM.

Rimuovere una condizione da una cartella gestita

Riga di comando

  1. Utilizza il comando gcloud storage managed-folders get-iam-policy per 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
  2. Modifica il file tmp-policy.json in un editor di testo per rimuovere le condizioni dal criterio IAM.

  3. Utilizza il comando gcloud storage managed-folders set-iam-policy per impostare il criterio IAM modificato sulla cartella gestita.

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json

API REST

JSON

  1. Assicurati che gcloud CLI sia installato e inizializzatoper generare un token di accesso per l'intestazione Authorization.

    In alternativa, puoi creare un token di accesso utilizzando OAuth 2.0 Playground e includerlo nell'intestazione Authorization.

  2. Utilizza una richiesta GET getIamPolicy per salvare il criterio IAM della cartella gestita in un file JSON temporaneo:

    curl \
    'http://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 a 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/.

  3. Modifica il file tmp-policy.json in un editor di testo per rimuovere le condizioni dal criterio IAM.

  4. Utilizza una richiesta PUT setIamPolicy per impostare il criterio IAM modificato sulla cartella gestita:

    curl -X PUT --data-binary @tmp-policy.json \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json" \
    "http://storage.googleapis.com/storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAMEiam"

    Dove:

    • BUCKET_NAME è il nome del bucket che contiene la cartella gestita a 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/.

Utilizza IAM con i progetti

Consulta Gestire l'accesso a progetti, cartelle gestite e organizzazioni per le guide su come concedere e revocare i ruoli IAM a livello di progetto e superiori.

best practice

Devi impostare il ruolo minimo possibile che concede all'entità l'accesso richiesto. Ad esempio, se un membro del team deve visualizzare solo le cartelle gestite in un bucket, assegnagli il ruolo Amministratore oggetti Storage (roles/storage.objectAdmin) anziché Amministratore cartelle Storage (roles/storage.folderAdmin). Allo stesso modo, se il membro del team ha bisogno del controllo completo sulle cartelle gestite in un bucket, assegnagli il ruolo Amministratore cartelle Storage (roles/storage.folderAdmin) anziché Amministratore Storage (roles/storage.admin).

Passaggi successivi