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:example-service-account@example-project.. Pour obtenir la liste des formats des identifiants principaux, consultez la section 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 la gcloud CLI afin 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. Exemple :roles/storage.objectViewer.PRINCIPAL_IDENTIFIERidentifie 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.
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./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 la gcloud CLI afin de générer un jeton d'accès pour l'en-tête
Authorization.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./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. Par exemple,user:example-service-account@example-project.. Pour 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 la gcloud CLI afin 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./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 membre 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./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.
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
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, une