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 ainsi que des indicateurs -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 Objet storage.objects.get
storage.objects.getIamPolicy10
acl set ou ch Objet storage.objects.get
storage.objects.getIamPolicy10
storage.objects.setIamPolicy10
storage.objects.update
bucketpolicyonly set Bucket storage.buckets.setIamPolicy2
bucketpolicyonly 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 Objet 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 Bucket 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
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 Objet storage.objects.get
storage.objects.getIamPolicy10
iam set ou ch Objet 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 Bucket 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 Objet 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 Bucket storage.buckets.update
pubsub.topics.get (pour le projet contenant le sujet Pub/Sub)
pubsub.topics.create8 (pour le projet contenant le sujet Pub/Sub)
pubsub.topics.getIamPolicy (pour les notifications de sujets Pub/Sub)
pubsub.topics.setIamPolicy8 (pour les notifications 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 Objet 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 Objet storage.objects.list (pour les buckets sources et de destination)
setmeta Objets storage.objects.get
storage.objects.list
storage.objects.update
signurl Aucune ; cependant, le compte de service associé à la requête doit disposer de l'autorisation 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

1Cette autorisation n'est requise que lorsque l'objet inséré porte le même nom qu'un objet déjà présent dans le bucket.

2Cette 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 lorsque vous utilisez l'indicateur -a ou -p dans la commande.

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

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

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

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

8Cette 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 requise 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 la fonctionnalité Stratégie du bucket seulement est activée.

Indicateur de niveau supérieur -u

Si vous utilisez l'indicateur de niveau supérieur -u pour spécifier un projet qui doit être facturé pour votre requête, vous devez disposer de 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 pour lequel l'option Paiements du demandeur est 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 de l'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 de l'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. Toutefois, 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 disposiez des autorisations requises que pour certains d'entre eux. Si vous n'utilisez pas l'indicateur -m, gsutil applique avec succès les LCA jusqu'à ce qu'il atteigne un objet pour lequel vous ne disposez pas de l'autorisation requise pour effectuer cette opération. À ce stade, gsutil échoue. Si vous utilisez l'indicateur -m, gsutil enregistre les erreurs qui surviennent lorsqu'il tente d'appliquer une LCA à un objet pour lequel vous ne disposez pas de l'autorisation nécessaire, mais poursuit néanmoins l'opération.

Étape suivante

Cette page vous a-t-elle été utile ? Évaluez-la :

Envoyer des commentaires concernant…

Besoin d'aide ? Consultez notre page d'assistance.