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:
Pour savoir comment contrôler l'accès à des buckets entiers et aux objets qu'ils contiennent, consultez la page Définir et gérer des stratégies IAM sur des buckets.
Pour découvrir un autre moyen de contrôler l'accès à des objets individuels dans vos buckets, consultez la page Listes de contrôle d'accès.
Pour en savoir plus sur le contrôle de l'accès aux ressources Cloud Storage, consultez la page Présentation du contrôle des accès.
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.getIamPolicystorage.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
- Dans la console Google Cloud , accédez à la page Buckets de Cloud Storage.
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.
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é.
Cliquez sur Modifier l'accès.
Dans le volet Autorisations pour
MANAGED_FOLDER_NAME, cliquez sur Ajouter un compte principal.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.
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.
Cliquez sur Enregistrer.
Ligne de commande
Créez un fichier JSON contenant les informations suivantes :
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
Où :
IAM_ROLEcorrespond au rôle IAM que vous attribuez. Exemple :roles/storage.objectViewer.PRINCIPAL_IDENTIFIERidentifie les utilisateurs auxquels vous accordez un accès au dossier géré. Exemple :user:jeffersonloveshiking@gmail.com. Pour obtenir la liste des formats des identifiants principaux, consultez Identifiants principaux.
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_NAMEcorrespond au nom du bucket contenant le dossier géré auquel vous souhaitez appliquer la stratégie IAM. Exemple :my-bucketMANAGED_FOLDER_NAMEcorrespond au nom du dossier géré auquel vous souhaitez appliquer la stratégie IAM. Exemple :my-managed-folder/.POLICY_FILEest le chemin d'accès au fichier JSON que vous avez créé à l'étape 1.
API REST
JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Créez un fichier JSON contenant les informations suivantes :
{ "bindings":[ { "role": "IAM_ROLE", "members":[ "PRINCIPAL_IDENTIFIER" ] } ] }
Où :
IAM_ROLEcorrespond au rôle IAM que vous attribuez. Par exemple,roles/storage.objectViewer.PRINCIPAL_IDENTIFIERidentifie les utilisateurs auxquels vous accordez un accès au dossier géré. Exemple :user:jeffersonloveshiking@gmail.com. Pour obtenir la liste des formats des identifiants principaux, consultez Identifiants principaux.
Exécutez
cURLpour appeler l'API JSON avec une requêtePUT 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"
Où :
POLICY_FILEest le chemin d'accès au fichier de stratégie JSON que vous avez créé à l'étape précédente.BUCKET_NAMEcorrespond au nom du bucket contenant le dossier géré auquel vous souhaitez appliquer la stratégie IAM. Exemple :my-bucketMANAGED_FOLDER_NAMEcorrespond 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
- Dans la console Google Cloud , accédez à la page Buckets de Cloud Storage.
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.
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.
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_NAMEcorrespond au nom du bucket contenant le dossier géré dont vous souhaitez afficher la stratégie IAM. Par exemple,my-bucket.MANAGED_FOLDER_NAMEcorrespond au nom du dossier géré dont vous souhaitez afficher la stratégie IAM. Exemple :my-managed-folder/.
API REST
JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez
cURLpour appeler l'API JSON avec une requêteGET 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"
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant le dossier géré dont vous souhaitez afficher la stratégie IAM. Exemple :my-bucketMANAGED_FOLDER_NAMEcorrespond 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
- Dans la console Google Cloud , accédez à la page Buckets de Cloud Storage.
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.
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.
Cliquez sur Modifier l'accès.
Dans le volet Autorisations pour
FOLDER_NAME, saisissez le nom du compte principal dans le champ Filtre.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_NAMEcorrespond au nom du bucket contenant le dossier géré auquel vous révoquez l'accès. Exemple :my-bucket.MANAGED_FOLDER_NAMEcorrespond au nom du dossier géré dont vous souhaitez supprimer la stratégie IAM. Exemple :my-managed-folder/.PRINCIPAL_IDENTIFIERidentifie la personne dont vous révoquez l'accès. Exemple :user:jeffersonloveshiking@gmail.comPour obtenir la liste des formats des identifiants principaux, consultez la section Identifiants principaux.IAM_ROLEcorrespond au rôle IAM que vous attribuez. Exemple :roles/storage.objectViewer.
API REST
JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Obtenez la stratégie existante appliquée à votre dossier géré. Pour ce faire, exécutez
cURLpour appeler l'API JSON avec une requêteGET 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"
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant le dossier géré auquel vous révoquez l'accès. Exemple :my-bucket.MANAGED_FOLDER_NAMEcorrespond au nom du dossier géré dont vous souhaitez supprimer la stratégie IAM. Exemple :my-managed-folder/.
Créez un fichier JSON contenant la stratégie récupérée à l'étape précédente.
Modifiez le fichier JSON pour supprimer le compte principal de la stratégie.
Exécutez
cURLpour appeler l'API JSON avec une requêtePUT 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"
Où :
JSON_FILE_NAMEcorrespond au chemin d'accès au fichier que vous avez créé à l'étape 3.BUCKET_NAMEcorrespond au nom du bucket contenant le dossier géré auquel vous révoquez l'accès. Exemple :my-bucket.MANAGED_FOLDER_NAMEcorrespond 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.
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
Créez un fichier JSON ou YAML qui définit la condition, y compris son
title, la logique basée sur des attributsexpressionpour la condition et, éventuellement, unedescriptionpour la condition.Notez que Cloud Storage n'accepte que les attributs date/heure, type de ressource et nom de la ressource dans l'
expression.Exécutez la commande
gcloud storage managed-folders add-iam-policy-bindingavec l'option--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
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant le dossier géré auquel vous accordez l'accès au compte principal. Par exemple,my-bucket.MANAGED_FOLDER_NAMEcorrespond au nom du dossier géré auquel vous accordez l'accès au compte principal. Exemple :my-managed-folder/.PRINCIPAL_IDENTIFIERidentifie la personne à laquelle la condition s'applique. Par exemple,user:jeffersonloveshiking@gmail.com. Pour obtenir la liste des formats des identifiants principaux, consultez la section Identifiants principaux.IAM_ROLEcorrespond au rôle IAM que vous attribuez au compte principal. Exemple :roles/storage.objectViewer.CONDITION_FILEcorrespond au fichier que vous avez créé à l'étape précédente.
Vous pouvez également inclure la condition directement dans la commande avec l'option --condition au lieu de l'option --condition-from-file.
API REST
JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez une requête
GET getIamPolicypour enregistrer la stratégie IAM du dossier géré dans un fichier JSON temporaire :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
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant le dossier géré sur lequel vous souhaitez définir une condition IAM.MANAGED_FOLDER_NAMEcorrespond au nom du dossier géré sur lequel vous souhaitez définir une condition IAM.
Modifiez le fichier
tmp-policy.jsondans un éditeur de texte pour ajouter de nouvelles conditions aux liaisons dans la stratégie IAM :{ "version": VERSION, "bindings": [ { "role": "IAM_ROLE", "members": [ "PRINCIPAL_IDENTIFIER" ], "condition": { "title": "TITLE", "description": "DESCRIPTION", "expression": "EXPRESSION" } } ], "etag": "ETAG" }Où :
VERSIONcorrespond à la version de la stratégie IAM, qui doit être 3 pour les dossiers gérés avec des conditions IAM.IAM_ROLEcorrespond au rôle auquel la condition s'applique. Par exemple,roles/storage.objectViewer.PRINCIPAL_IDENTIFIERidentifie la personne à laquelle la condition s'applique. Exemple :user:jeffersonloveshiking@gmail.comPour obtenir la liste des formats des identifiants principaux, consultez la section Identifiants principaux.TITLEcorrespond au titre de la condition. Exemple :expires in 2019.DESCRIPTIONest une description facultative de la condition. Par exemple,Permission revoked on New Year's.EXPRESSIONest une expression logique basée sur des attributs. Exemple :request.time < timestamp(\"2019-01-01T00:00:00Z\"). Pour plus d'exemples d'expressions, reportez-vous à la documentation de référence sur les attributs de conditions. Cloud Storage n'accepte que les attributs date/heure, type de ressource et nom de ressource.
Ne modifiez pas
ETAG.Utilisez une requête
PUT setIamPolicypour définir la stratégie IAM modifiée dans le 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"
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant le dossier géré sur lequel vous souhaitez définir une condition IAM.MANAGED_FOLDER_NAMEcorrespond au nom du dossier géré sur lequel vous souhaitez définir une condition IAM.
Supprimer une condition d'un dossier géré
Ligne de commande
Utilisez la commande
gcloud storage managed-folders get-iam-policypour enregistrer la stratégie IAM du dossier géré dans un fichier JSON temporaire.gcloud storage managed-folders get-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME > tmp-policy.json
Modifiez le fichier
tmp-policy.jsondans un éditeur de texte pour supprimer des conditions de la stratégie IAM.Utilisez la commande
gcloud storage managed-folders set-iam-policypour définir la stratégie IAM modifiée sur le dossier géré.gcloud storage managed-folders set-iam-policy gs://BUCKET_NAME/MANAGED_FOLDER_NAME tmp-policy.json
API REST
JSON
Vous devez installer et initialiser gcloud CLIafin de générer un jeton d'accès pour l'en-tête
Authorization.Utilisez une requête
GET getIamPolicypour enregistrer la stratégie IAM du dossier géré dans un fichier JSON temporaire :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
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant le dossier géré auquel vous modifiez l'accès. Exemple :my-bucket.MANAGED_FOLDER_NAMEcorrespond au nom du dossier géré auquel vous modifiez l'accès. Exemple :my-managed-folder/.
Modifiez le fichier
tmp-policy.jsondans un éditeur de texte pour supprimer des conditions de la stratégie IAM.Utilisez une requête
PUT setIamPolicypour définir la stratégie IAM modifiée sur le dossier géré :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"
Où :
BUCKET_NAMEcorrespond au nom du bucket contenant le dossier géré auquel vous modifiez l'accès. Exemple :my-bucket.MANAGED_FOLDER_NAMEcorrespond au nom du dossier géré auquel vous modifiez l'accès. Exemple :my-managed-folder/.
Utiliser IAM avec des projets
Consultez la section Gérer l'accès aux projets, aux dossiers gérés et aux organisations pour savoir comment attribuer et révoquer des rôles IAM au niveau du projet et à des niveaux supérieurs.
Bonnes pratiques
Vous devez définir l'autorisation la plus faible possible donnant au compte principal l'accès requis. Par exemple, si un membre de l'équipe n'a besoin que d'afficher les dossiers gérés d'un bucket, accordez-lui le rôle d'administrateur des objets Storage (roles/storage.objectAdmin ) au lieu du rôle "Administrateur de dossier Storage" (roles/storage.folderAdmin).
De même, s'il a besoin d'avoir le contrôle total des dossiers gérés d'un bucket, accordez-lui le rôle Administrateur de dossier Storage (roles/storage.folderAdmin) au lieu du rôle Administrateur de l'espace de stockage (roles/storage.admin).
Étapes suivantes
Découvrez comment partager publiquement vos données.
Consultez des exemples de partage et de collaboration spécifiques.
Découvrez les bonnes pratiques concernant l'utilisation d'IAM.
Pour résoudre les problèmes d'échec liés aux rôles et aux autorisations IAM, consultez la page Dépannage.