Autorisations IAM pour les commandes gcloud storage

Le tableau suivant répertorie les autorisations IAM (Identity and Access Management) requises pour exécuter les commandes gcloud storage. Les autorisations IAM sont regroupées pour créer des rôles, qui sont attribués aux comptes principaux.

Reportez-vous aux sections situées sous le tableau pour plus d'informations sur l'utilisation des caractères génériques et des options --recursive et --billing-project.

Commande Option Autorisations IAM requises
buckets add-iam-policy-binding storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
buckets create storage.buckets.create
buckets delete storage.buckets.delete
buckets describe storage.buckets.get
storage.buckets.getIamPolicy1
buckets get-iam-policy storage.buckets.get
storage.buckets.getIamPolicy
buckets list storage.buckets.list
storage.buckets.getIamPolicy1
buckets notifications create storage.buckets.get
storage.buckets.update
pubsub.topics.get (pour le projet contenant le sujet Pub/Sub)
pubsub.topics.create3 (pour le projet contenant le sujet Pub/Sub)
pubsub.topics.getIamPolicy (pour les notifications de réception de sujets Pub/Sub)
pubsub.topics.setIamPolicy3 (pour les notifications de réception de sujets Pub/Sub)
buckets notifications create --skip-topic-setup storage.buckets.get
storage.buckets.update
buckets notifications delete storage.buckets.get
storage.buckets.update
buckets notifications describe storage.buckets.get
buckets notifications list storage.buckets.get
buckets remove-iam-policy-binding storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
buckets set-iam-policy storage.buckets.setIamPolicy
storage.buckets.update
buckets update storage.buckets.update
buckets update --no-requester-pays storage.buckets.update
resourcemanager.projects.createBillingAssignment2
buckets update --recovery-point-objective
--rpo
--[no-]uniform-bucket-level-access
--[no-]uniform-bucket-level-access storage.buckets.get
storage.buckets.update
buckets update --clear-pap
--clear-public-access-prevention
--[no-]pap
--[no-]public-access-prevention
storage.buckets.get
storage.buckets.update
storage.buckets.setIamPolicy
cat storage.objects.get
storage.objects.list13
cp storage.objects.get (pour les objets sources)
storage.buckets.get12 (pour le bucket de destination)
storage.objects.list4 (pour le bucket de destination)
storage.objects.create (pour le bucket de destination)
storage.objects.delete5 (pour le bucket de destination)
du storage.objects.list
hash storage.objects.get
hmac create storage.hmacKeys.create
hmac delete storage.hmacKeys.delete
hmac describe storage.hmacKeys.get
hmac list storage.hmacKeys.list
hmac update storage.hmacKeys.update
ls (pour la liste des buckets) storage.buckets.list
storage.buckets.getIamPolicy6
ls (pour la création de listes d'objets) storage.objects.get7
storage.objects.list
storage.objects.getIamPolicy8
ls --buckets storage.buckets.get
storage.buckets.getIamPolicy6
mv storage.objects.list4 (pour le bucket de destination)
storage.objects.get (pour les objets sources)
storage.objects.create (pour le bucket de destination)
storage.objects.delete (pour le bucket source)
storage.objects.delete5 (pour le bucket de destination)
objects compose storage.objects.get
storage.objects.create
storage.objects.delete9
objects describe storage.objects.get
storage.objects.getIamPolicy8
objects list storage.objects.list
storage.objects.getIamPolicy8
objects update storage.objects.get
storage.objects.list
storage.objects.update
objects update --storage-class
--encryption-key
--clear-encryption-key
storage.objects.get
storage.objects.list
storage.objects.create
storage.objects.delete
objects update --retention-mode
--retain-until
--clear-retention
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.setRetention
storage.objects.overrideUnlockedRetention11
restore storage.objects.create
storage.objects.delete9
storage.objects.restore
restore --async storage.objects.create
storage.objects.delete14
storage.objects.restore
storage.buckets.restore
rm storage.buckets.delete
storage.objects.delete
storage.objects.list
rsync storage.objects.get (pour les objets sources et le bucket de destination)
storage.objects.create (pour le bucket de destination)
storage.objects.delete10 (pour le bucket de destination)
storage.objects.list (pour les buckets source et de destination)
rsync --dry-run storage.objects.list (pour les buckets sources et de destination)
service-agent resourceManager.projects.get
sign-url Aucun ; toutefois, le compte de service dont la clé est utilisée dans le cadre de cette commande doit être autorisé à effectuer l'encodage de la requête dans l'URL signée.

1 Cette autorisation n'est requise que si vous souhaitez que les stratégies IAM soient incluses dans les détails.

2 Cette autorisation n'est nécessaire que si vous n'incluez pas de projet de facturation dans votre requête. Pour plus d'informations, consultez la section Exigences relatives à l'utilisation et aux accès sur la page "Paiements du demandeur".

3 Cette autorisation n'est pas requise si le sujet existe déjà et si le compte de service approprié y a accès.

4 Cette autorisation n'est requise que lorsque la destination dans la commande contient un chemin d'accès à un objet.

5 Cette autorisation n'est requise que si vous utilisez des importations composites parallèles ou si vous n'utilisez pas l'option --no-clobber, mais insérez un objet qui porte le même nom qu'un objet déjà présent dans le bucket.

6 Cette autorisation n'est requise que si vous souhaitez que les stratégies IAM soient incluses dans les détails.

7 Cette autorisation n'est requise que si vous utilisez l'option --fetch-encrypted-object-hashes.

8 Cette autorisation n'est requise que si vous souhaitez que les stratégies IAM soient incluses dans les détails. Elle ne s'applique pas aux buckets pour lesquels l'accès uniforme au niveau du bucket est activé.

9 Cette autorisation n'est requise que si l'opération crée un objet portant le même nom qu'un objet présent dans le bucket.

10 Cette autorisation n'est requise que si vous utilisez l'option --delete-unmatched-destination-objects ou si vous insérez un objet portant le même nom qu'un objet qui existe déjà dans le bucket mais ayant des données différentes.

11 Cette autorisation n'est requise que si la requête nécessite également l'utilisation de l'option --override-unlocked-retention.

12 Cette autorisation est requise pour effectuer des importations composites parallèles si la propriété storage/parallel_composite_upload_compatibility_check de gcloud CLI est définie sur True.

13 Cette autorisation n'est requise que si vous souhaitez utiliser des expressions régulières pour récupérer des objets.

14 Cette autorisation n'est requise que si la requête inclut l'option --allow-overwrite et que l'opération crée un objet portant le même nom qu'un objet présent dans le bucket.

Indicateur de niveau supérieur --billing-project

Si vous utilisez l'option globale --billing-project pour spécifier un projet qui doit être facturé pour votre requête, vous devez obtenir l'autorisation serviceusage.services.use pour le projet que vous spécifiez. L'indicateur --billing-project est utilisé, par exemple, lors de l'accès à un bucket avec l'option Paiements du demandeur activée.

Caractères génériques et indicateurs récursifs

Si vous utilisez des caractères génériques d'URI pour sélectionner plusieurs objets dans une commande, vous devez disposer d'une autorisation storage.objects.list pour le bucket contenant les objets. De même, si vous utilisez des caractères génériques d'URI pour sélectionner plusieurs buckets dans une commande, vous devez disposer d'une autorisation storage.buckets.list pour le ou les projets contenant les buckets.

Si vous utilisez l'option --recursive, vous devez disposer de l'autorisation storage.objects.list pour le bucket concerné, en plus des autorisations requises pour la commande spécifique que vous utilisez.

Étapes suivantes