Autorisations Cloud IAM pour les commandes gsutil

Le tableau ci-dessous répertorie les autorisations Cloud Identity and Access Management (Cloud IAM) requises pour exécuter chaque commande gsutil de Cloud Storage sur une ressource donnée. 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 -r-et -m.

Commande Sous-commande Ressource concernée Autorisations Cloud IAM requises
acl get Buckets storage.buckets.get
storage.buckets.getIamPolicy
acl set ou ch Buckets storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
acl get Objets storage.objects.get
storage.objects.getIamPolicy10
acl set ou ch Objets storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
ubla set Buckets storage.buckets.get
storage.buckets.update
ubla get Buckets storage.buckets.get
cat Objets storage.objects.get
compose Objets storage.objects.get (pour les objets sources)
storage.objects.create (pour le bucket de destination)
storage.objects.delete1 (pour le bucket de destination)
config Aucune
cors get Buckets storage.buckets.get
cors set Buckets storage.buckets.update
cp Objets storage.objects.list2 (pour le bucket de destination)
storage.objects.get (pour les objets sources)
storage.objects.create (pour le bucket de destination)
storage.objects.delete1 (pour le bucket de destination)
storage.objects.getIamPolicy3,10 (pour les objets sources)
storage.objects.setIamPolicy3,10 (pour le bucket de destination)
cp -n Objets storage.objects.list2 (pour le bucket de destination)
storage.objects.get (pour les objets sources et le bucket de destination)
storage.objects.create (pour le bucket de destination)
storage.objects.getIamPolicy3,10 (pour les objets sources)
storage.objects.setIamPolicy3,10 (pour le bucket de destination)
defacl get Buckets storage.buckets.get
storage.buckets.getIamPolicy
defacl set ou ch Buckets storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
defstorageclass get Buckets storage.buckets.get
defstorageclass set Buckets storage.buckets.update
du Objets storage.objects.get
hash Objets storage.objects.get
help Aucune
hmacKeys create Clés HMAC storage.hmacKeys.create
hmacKeys delete Clés HMAC storage.hmacKeys.delete
hmacKeys get Clés HMAC storage.hmacKeys.get
hmacKeys list Clés HMAC storage.hmacKeys.list
hmacKeys update Clés HMAC storage.hmacKeys.update
iam get Buckets storage.buckets.get
storage.buckets.getIamPolicy
iam set ou ch Buckets storage.buckets.get
storage.buckets.getIamPolicy
storage.buckets.setIamPolicy
storage.buckets.update
iam get Objets storage.objects.get
storage.objects.getIamPolicy10
iam set ou ch Objets storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
kms authorize Projets resourceManager.projects.get
iam.serviceAccounts.create4
cloudkms.cryptoKey.setIamPolicy (pour la clé Cloud KMS autorisée)
kms encryption Buckets storage.buckets.get
kms encryption -d Buckets storage.buckets.get
storage.buckets.update
kms encryption -k Buckets, Projets7 storage.buckets.get
storage.buckets.update
resourceManager.projects.get7
cloudkms.cryptoKey.setIamPolicy7
kms serviceaccount Projets resourceManager.projects.get
label get Buckets storage.buckets.get
label set/ch Buckets storage.buckets.update
lifecycle get Buckets storage.buckets.get
lifecycle set/ch Buckets storage.buckets.update
logging get Buckets storage.buckets.get
logging set Buckets storage.buckets.update
ls Projets storage.buckets.list
storage.buckets.get5
storage.buckets.getIamPolicy6
ls Buckets, Objets storage.objects.list
storage.objects.get5
storage.objects.getIamPolicy6,10
ls -b Buckets storage.buckets.get
storage.buckets.getIamPolicy6
mb Buckets storage.buckets.create
mv Objets storage.objects.list2 (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.delete1 (pour le bucket de destination)
storage.objects.getIamPolicy3,10 (pour les objets sources)
storage.objects.setIamPolicy3,10 (pour le bucket de destination)
mv -n Objets storage.objects.list2 (pour le bucket de destination)
storage.objects.get (pour les objets sources et le bucket de destination)
storage.objects.create (pour le bucket de destination)
storage.objects.delete (pour le bucket source)
storage.objects.getIamPolicy3,10 (pour les objets sources)
storage.objects.setIamPolicy3,10 (pour le bucket de destination)
notification create Buckets storage.buckets.update
pubsub.topics.get (pour le projet contenant le sujet Pub/Sub)
pubsub.topics.create 8 (pour le projet contenant le sujet Pub/Sub)
pubsub.topics.getIamPolicy (pour les notifications de réception de sujets Pub/Sub)
pubsub.topics.setIamPolicy 8 (pour les notifications de réception de sujets Pub/Sub)
notification create -s Buckets storage.buckets.update
notification delete Buckets storage.buckets.update
notification list Buckets storage.buckets.get
notification watchbucket Buckets storage.buckets.update
notification stopchannel Buckets storage.buckets.update
perfdiag Buckets storage.buckets.get
storage.objects.create
storage.objects.delete
storage.objects.list
storage.objects.get
rb Buckets storage.buckets.delete
requesterpays get Buckets storage.buckets.get
requesterpays set on Buckets storage.buckets.get
storage.buckets.update
requesterpays set off Buckets storage.buckets.get
storage.buckets.update
resourcemanager.projects.createBillingAssignment9
retention clear, event-default, lock ou set Buckets storage.buckets.update
retention event ou temp Objets storage.objects.get
storage.objects.list
storage.objects.update
retention get Buckets storage.buckets.get
rewrite -k Objets storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
rewrite -s Objets storage.objects.list
storage.objects.get
storage.objects.create
storage.objects.delete
storage.objects.update
rm Buckets storage.buckets.delete
storage.objects.delete
storage.objects.list
rm Objets storage.objects.delete
rsync Objets storage.objects.get (pour les objets sources et le bucket de destination)
storage.objects.create (pour le bucket de destination)
storage.objects.delete1 (pour le bucket de destination)
storage.objects.list (pour les buckets sources et de destination)
storage.objects.getIamPolicy3,10 (pour les objets sources)
storage.objects.setIamPolicy3,10 (pour le bucket de destination)
rsync -d Objets storage.objects.get (pour les objets sources et le bucket de destination)
storage.objects.create (pour le bucket de destination)
storage.objects.delete (pour le bucket de destination)
storage.objects.list (pour les buckets sources et de destination)
storage.objects.getIamPolicy3,10 (pour les objets sources)
storage.objects.setIamPolicy3,10 (pour le bucket de destination)
rsync -n Objets storage.objects.list (pour les buckets sources et de destination)
setmeta Objets storage.objects.get
storage.objects.list
storage.objects.update
signurl Aucun. Toutefois, le compte de service associé à la requête doit comporter storage.objects.get.
stat Objets storage.objects.get
test Aucune
update Aucune
version Aucune
versioning get Buckets storage.buckets.get
versioning set Buckets storage.buckets.update
web get Buckets storage.buckets.get
web set Buckets storage.buckets.update

1 Cette autorisation n'est requise que si l'objet inséré a le même nom qu'un objet présent dans le bucket.

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

3 Cette autorisation n'est requise que si vous utilisez les indicateurs -a ou -p dans la commande.

4 Cette autorisation n'est requise que si aucun compte de service Cloud Storage n'est associé au projet.

5 Cette autorisation n'est requise que si vous utilisez l'indicateur -L ou -l dans la commande.

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

7 Si vous utilisez gsutil kms encryption -k et que le compte de service de votre projet n'est pas autorisé à accéder à la clé Cloud KMS demandée, gsutil exécute gsutil kms authorize afin d'accorder à votre compte de service l'autorisation requise.

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

9 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".

10 Cette autorisation ne s'applique pas aux buckets pour lesquels l'accès uniforme au niveau du bucket est activé.

Indicateur de niveau supérieur -u

Si vous utilisez l'indicateur de niveau supérieur -upour 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 -u 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 les indicateurs récursifs (-r et -R), 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.

Indicateur de niveau supérieur -m

Normalement, si vous utilisez une commande gsutil qui agit sur plusieurs objets ou buckets, la commande échoue à la première erreur. Cependant, lorsque vous utilisez l'indicateur de niveau supérieur -m, gsutil enregistre les erreurs rencontrées et poursuit l'opération.

Par exemple, supposons que vous tentiez d'exécuter une commande acl set sur une série d'objets, mais que vous ne soyez autorisé à le faire que sur certains objets. Si vous n'utilisez pas l'indicateur -m, gsutil applique les LCA jusqu'à parvenir à un objet pour lequel vous n'êtes pas autorisé à appliquer une LCA. À ce stade, gsutil échoue. Si vous utilisez l'indicateur -m, gsutil enregistre les erreurs qui surviennent lors des tentatives d'application d'une LCA à un objet pour lequel vous ne disposez pas de l'autorisation, mais poursuit l'opération.

Étapes suivantes