Définir et gérer des stratégies IAM sur des dossiers gérés

Cette page explique comment définir des stratégies Identity and Access Management (IAM) sur des dossiers gérés afin d'obtenir un contrôle d'accès précis sur des groupes spécifiques d'objets dans un bucket.

Si vous recherchez d'autres méthodes de contrôle des accès, consultez les ressources suivantes:

Rôles requis

Pour obtenir les autorisations nécessaires pour définir et gérer les stratégies IAM pour les dossiers gérés, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur de dossier Storage (roles/storage.folderAdmin) pour le bucket qui contient les dossiers gérés.

Ce rôle contient les autorisations suivantes, requises pour définir et gérer des stratégies IAM pour les dossiers gérés :

  • storage.managedFolders.getIamPolicy

  • storage.managedFolders.setIamPolicy

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés.

Pour en savoir plus sur l'attribution de rôles pour des buckets, consultez la page Définir et gérer des stratégies IAM sur des buckets.

Définir une stratégie IAM sur un dossier géré

Console

  1. Dans la console Google Cloud , accédez à la page Buckets de Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket contenant le dossier géré sur lequel vous souhaitez définir une stratégie IAM.

  3. Sur la page Informations sur le bucket, cliquez sur l'icône Plus d'options dans le volet Explorateur de dossiers à côté du dossier géré pour lequel vous souhaitez définir une stratégie IAM.

    Si vous souhaitez contrôler l'accès dans un dossier ou un dossier simulé, suivez les étapes décrites dans la section Créer un dossier géré pour activer la gestion sur le dossier ou le dossier simulé.

  4. Cliquez sur Modifier l'accès.

  5. Dans le volet Autorisations pour MANAGED_FOLDER_NAME, cliquez sur Ajouter un compte principal.

  6. Dans le champ Nouveaux comptes principaux, saisissez le compte principal pour lequel vous souhaitez accorder l'accès. Pour en savoir plus sur les comptes principaux que vous pouvez inclure, consultez la section Identifiants principaux.

  7. Dans la section Attribuer des rôles, utilisez la liste déroulante Sélectionner un rôle pour spécifier le niveau d'accès que vous souhaitez accorder au compte principal.

  8. Cliquez sur Enregistrer.

Ligne de commande

  1. Créez un fichier JSON contenant les informations suivantes :

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    Où :

    • IAM_ROLE correspond au rôle IAM que vous attribuez. Exemple : roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER identifie les utilisateurs auxquels vous accordez un accès au dossier géré. Exemple : user:example-service-account@example-project.. Pour obtenir la liste des formats des identifiants principaux, consultez la section Identifiants principaux.

  2. Exécutez la commande gcloud storage managed-folders set-iam-policy :

    gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME POLICY_FILE

    Où :

    • BUCKET_NAME correspond au nom du bucket contenant le dossier géré auquel vous souhaitez appliquer la stratégie IAM. Exemple :my-bucket

    • MANAGED_FOLDER_NAME correspond au nom du dossier géré auquel vous souhaitez appliquer la stratégie IAM. Exemple : my-managed-folder/.

    • POLICY_FILE est le chemin d'accès au fichier JSON que vous avez créé à l'étape 1.

API REST

JSON

  1. Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

  2. Créez un fichier JSON contenant les informations suivantes :

    {
      "bindings":[
        {
          "role": "IAM_ROLE",
          "members":[
            "PRINCIPAL_IDENTIFIER"
          ]
        }
      ]
    }

    Où :

    • IAM_ROLE correspond au rôle IAM que vous attribuez. Exemple : roles/storage.objectViewer.

    • PRINCIPAL_IDENTIFIER identifie les utilisateurs auxquels vous accordez un accès au dossier géré. Exemple : user:example-service-account@example-project.. Pour obtenir la liste des formats des identifiants principaux, consultez la section Identifiants principaux.

  3. Exécutez cURL pour appeler l'API JSON avec une requête PUT setIamPolicy :

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

    Où :

    • POLICY_FILE est le chemin d'accès au fichier de stratégie JSON que vous avez créé à l'étape précédente.

    • BUCKET_NAME correspond au nom du bucket contenant le dossier géré auquel vous souhaitez appliquer la stratégie IAM. Exemple :my-bucket

    • MANAGED_FOLDER_NAME correspond au nom du dossier géré pour lequel vous souhaitez accorder l'accès au compte principal. Exemple :my-managed-folder/

Afficher la stratégie IAM pour un dossier géré

Console

  1. Dans la console Google Cloud , accédez à la page Buckets de Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket contenant le dossier géré pour lequel vous souhaitez afficher les stratégies IAM.

  3. Sur la page Informations sur le bucket, cliquez sur l'icône Plus d'options dans le volet Explorateur de dossiers à côté du dossier géré pour lequel vous souhaitez afficher la stratégie IAM.

  4. Cliquez sur Modifier l'accès.

Le volet Autorisations pour FOLDER_NAME affiche les autorisations sur le dossier géré, y compris le compte principal, le rôle, les rôles hérités et les conditions IAM.

Ligne de commande

Exécutez la commande gcloud storage managed-folder get-iam-policy :

gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME

Où :

  • BUCKET_NAME correspond au nom du bucket contenant le dossier géré dont vous souhaitez afficher la stratégie IAM. Par exemple, my-bucket.

  • MANAGED_FOLDER_NAME correspond au nom du dossier géré dont vous souhaitez afficher la stratégie IAM. Exemple : my-managed-folder/.

API REST

JSON

  1. Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

  2. Exécutez cURL pour appeler l'API JSON avec une requête GET getIamPolicy :

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage./storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Où :

    • BUCKET_NAME correspond au nom du bucket contenant le dossier géré dont vous souhaitez afficher la stratégie IAM. Exemple :my-bucket

    • MANAGED_FOLDER_NAME correspond au nom du dossier géré dont vous souhaitez afficher la stratégie IAM. Exemple : my-managed-folder/.

Supprimer un compte principal d'une stratégie de dossier géré

Console

  1. Dans la console Google Cloud , accédez à la page Buckets de Cloud Storage.

    Accéder à la page "Buckets"

  2. Dans la liste des buckets, cliquez sur le nom du bucket contenant le dossier géré pour lequel vous souhaitez afficher les stratégies IAM.

  3. Sur la page Informations sur le bucket, cliquez sur l'icône Plus d'options dans le volet Explorateur de dossiers à côté du dossier géré pour lequel vous souhaitez supprimer un compte principal.

  4. Cliquez sur Modifier l'accès.

  5. Dans le volet Autorisations pour FOLDER_NAME, saisissez le nom du compte principal dans le champ Filtre.

  6. Cliquez sur l'icône Supprimer pour supprimer le rapport.

Cloud Storage supprime le compte principal de votre dossier géré.

Ligne de commande

Exécutez la commande 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

Où :

  • BUCKET_NAME correspond au nom du bucket contenant le dossier géré auquel vous révoquez l'accès. Exemple : my-bucket.

  • MANAGED_FOLDER_NAME correspond au nom du dossier géré dont vous souhaitez supprimer la stratégie IAM. Exemple : my-managed-folder/.

  • PRINCIPAL_IDENTIFIER identifie la personne dont vous révoquez l'accès. Par exemple, user:example-service-account@example-project.. Pour obtenir la liste des formats des identifiants principaux, consultez la section Identifiants principaux.

  • IAM_ROLE correspond au rôle IAM que vous attribuez. Exemple : roles/storage.objectViewer.

API REST

JSON

  1. Vous devez installer et initialiser la gcloud CLI afin de générer un jeton d'accès pour l'en-tête Authorization.

  2. Obtenez la stratégie existante appliquée à votre dossier géré. Pour ce faire, exécutez cURL pour appeler l'API JSON avec une requête GET getIamPolicy :

    curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    "https://storage./storage/v1/b/BUCKET_NAME/managedFolders/MANAGED_FOLDER_NAME/iam"

    Où :

    • BUCKET_NAME correspond au nom du bucket contenant le dossier géré auquel vous révoquez l'accès. Exemple : my-bucket.

    • MANAGED_FOLDER_NAME correspond au nom du dossier géré dont vous souhaitez supprimer la stratégie IAM. Exemple : my-managed-folder/.

  3. Créez un fichier JSON contenant la stratégie récupérée à l'étape précédente.

  4. Modifiez le fichier JSON pour supprimer le membre de la stratégie.

  5. Exécutez cURL pour appeler l'API JSON avec une requête PUT setIamPolicy :

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

    Où :

    • JSON_FILE_NAME correspond au chemin d'accès au fichier que vous avez créé à l'étape 3.

    • BUCKET_NAME correspond au nom du bucket contenant le dossier géré auquel vous révoquez l'accès. Exemple : my-bucket.

    • MANAGED_FOLDER_NAME correspond au nom du dossier géré dont vous souhaitez supprimer la stratégie IAM. Exemple :my-managed-folder/

Utiliser des conditions IAM sur des dossiers gérés

Les sections suivantes vous expliquent comment ajouter et supprimer des conditions IAM sur vos dossiers gérés. Pour afficher les conditions IAM de vos dossiers gérés, consultez la section Afficher la stratégie IAM pour un dossier géré. Pour en savoir plus sur l'utilisation des conditions IAM avec Cloud Storage, consultez la section Conditions.

Les dossiers gérés peuvent être spécifiés comme ressource dans les conditions des règles d'autorisation IAM, mais pas dans les conditions des règles de refus IAM. Les conditions de refus ne reconnaissent que les fonctions de tags de ressources, et les tags ne peuvent pas être associés à des dossiers gérés.

Vous devez activer l'accès uniforme au niveau du bucket sur le bucket avant d'ajouter des conditions aux dossiers gérés.

Définir une nouvelle condition dans un dossier géré

Ligne de commande

  1. Créez un fichier JSON ou YAML qui définit la condition, y compris son title, la logique basée sur des attributs expression pour la condition et, éventuellement, une