Le tableau suivant recense les autorisations IAM (Identity and Access Management) requises pour exécuter les commandes gcloud storage. Les autorisations IAM sont regroupées pour constituer 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 flags --recursive et --billing-project.
| Commande | Flag | Autorisations IAM requises |
|---|---|---|
batch-operations jobs create |
storagebatchoperations.jobs.create |
|
batch-operations jobs cancel |
storagebatchoperations.jobs.cancel |
|
batch-operations jobs delete |
storagebatchoperations.jobs.delete |
|
batch-operations jobs get |
storagebatchoperations.jobs.get |
|
batch-operations jobs list |
storagebatchoperations.jobs.list |
|
buckets add-iam-policy-binding |
storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
|
buckets anywhere-caches create |
storage.anywhereCaches.create |
|
buckets anywhere-caches describe |
storage.anywhereCaches.get |
|
buckets anywhere-caches list |
storage.anywhereCaches.list |
|
buckets anywhere-caches update |
storage.anywhereCaches.update |
|
buckets anywhere-caches pause |
storage.anywhereCaches.pause |
|
buckets anywhere-caches resume |
storage.anywhereCaches.resume |
|
buckets anywhere-caches disable |
storage.anywhereCaches.disable |
|
buckets create |
storage.buckets.createstorage.buckets.setIpFilter15 |
|
buckets delete |
storage.buckets.delete |
|
buckets describe |
storage.buckets.getstorage.buckets.getIamPolicy1storage.buckets.getIpFilter16 |
|
buckets get-iam-policy |
storage.buckets.getstorage.buckets.getIamPolicy |
|
buckets list |
storage.buckets.liststorage.buckets.getIamPolicy1 |
|
buckets notifications create |
storage.buckets.getstorage.buckets.updatepubsub.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 le projet contenant le sujet Pub/Sub)pubsub.topics.setIamPolicy3 (pour le projet contenant le sujet Pub/Sub) |
|
buckets notifications create |
--skip-topic-setup |
storage.buckets.getstorage.buckets.update |
buckets notifications delete |
storage.buckets.getstorage.buckets.update |
|
buckets notifications describe |
storage.buckets.get |
|
buckets notifications list |
storage.buckets.get |
|
buckets relocate |
storage.buckets.relocate |
|
buckets remove-iam-policy-binding |
storage.buckets.getstorage.buckets.getIamPolicystorage.buckets.setIamPolicystorage.buckets.update |
|
buckets set-iam-policy |
storage.buckets.setIamPolicystorage.buckets.update |
|
buckets update |
storage.buckets.updatestorage.buckets.setIpFilter15 |
|
buckets update |
--no-requester-pays |
storage.buckets.updateresourcemanager.projects.createBillingAssignment2 |
buckets update |
--recovery-point-objective--rpo--[no-]uniform-bucket-level-access |
storage.buckets.getstorage.buckets.update |
buckets update |
--clear-pap--clear-public-access-prevention--[no-]pap--[no-]public-access-prevention |
storage.buckets.getstorage.buckets.updatestorage.buckets.setIamPolicy |
cat |
storage.objects.getstorage.objects.list13 |
|
cp |
storage.objects.getstorage.objects.createstorage.objects.list4 (pour le bucket de destination)storage.objects.delete5storage.buckets.get12 |
|
du |
storage.objects.list |
|
folders create |
storage.folders.create |
|
folders delete |
storage.folders.delete |
|
folders describe |
storage.folders.get |
|
folders list |
storage.folders.list |
|
folders rename |
storage.folders.renamestorage.folders.create |
|
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 |
|
insights dataset-configs create |
storageinsights.datasetConfigs.create |
|
insights dataset-configs create-link |
storageinsights.datasetConfigs.linkDataset |
|
insights dataset-configs delete |
storageinsights.datasetConfigs.delete |
|
insights dataset-configs delete-link |
storageinsights.datasetConfigs.unlinkDataset |
|
insights dataset-configs describe |
storageinsights.datasetConfigs.get |
|
insights dataset-configs list |
storageinsights.datasetConfigs.list |
|
insights dataset-configs update |
storageinsights.datasetConfigs.update |
|
insights inventory-reports create |
storageinsights.reportConfigs.create |
|
insights inventory-reports delete |
storageinsights.reportConfigs.delete |
|
insights inventory-reports details list |
storageinsights.reportDetails.list |
|
insights inventory-reports details describe |
storageinsights.reportDetails.get |
|
insights inventory-reports list |
storageinsights.reportConfigs.list |
|
insights inventory-reports update |
storageinsights.reportConfigs.getstorageinsights.reportConfigs.update |
|
ls (pour la liste des buckets) |
storage.buckets.liststorage.buckets.getIamPolicy6 |
|
ls (pour la création de listes d'objets) |
storage.objects.get7storage.objects.liststorage.objects.getIamPolicy8 |
|
ls |
--buckets |
storage.buckets.getstorage.buckets.getIamPolicy6 |
storage intelligence-config enable |
storage.intelligenceConfigs.update |
|
storage-intelligence disable |
storage.intelligenceConfigs.update |
|
storage-intelligence describe |
storage.intelligenceConfigs.get |
|
storage-intelligence update |
storage.intelligenceConfigs.update |
|
mv |
storage.objects.getstorage.objects.deletestorage.objects.createstorage.objects.list4storage.objects.delete5storage.buckets.get12 |
|
objects compose |
storage.objects.getstorage.objects.createstorage.objects.delete9 |
|
objects describe |
storage.objects.getstorage.objects.getIamPolicy8 |
|
objects list |
storage.objects.liststorage.objects.getIamPolicy8 |
|
objects update |
storage.objects.getstorage.objects.liststorage.objects.update |
|
objects update |
--storage-class--encryption-key--clear-encryption-key |
storage.objects.getstorage.objects.liststorage.objects.createstorage.objects.delete |
objects update |
--retention-mode--retain-until--clear-retention |
storage.objects.getstorage.objects.liststorage.objects.updatestorage.objects.setRetentionstorage.objects.overrideUnlockedRetention11 |
operations cancel |
storage.bucketOperations.cancel |
|
operations describe |
storage.bucketOperations.get |
|
operations list |
storage.bucketOperations.list |
|
restore |
storage.objects.createstorage.objects.delete9storage.objects.restore |
|
restore |
--async |
storage.objects.createstorage.objects.delete14storage.objects.restorestorage.buckets.restore |
rm |
storage.buckets.deletestorage.objects.deletestorage.objects.list |
|
rsync |
storage.objects.liststorage.objects.getstorage.objects.liststorage.objects.getstorage.objects.createstorage.objects.delete10storage.buckets.get12 |
|
rsync |
--dry-run |
storage.objects.list (pour les buckets sources et de destination) |
service-agent |
resourceManager.projects.get |
|
sign-url |
Aucune. Toutefois, le compte de service dont la clé est utilisée au sein de cette commande doit être autorisé à effectuer la requête en cours d'encodage 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 requise que si vous n'incluez pas de projet de facturation dans votre requête. Pour plus d'informations, consultez Exigences relatives à l'utilisation et aux accès sur la page "Paiements du demandeur".
3 Ces autorisations ne sont pas requises si le sujet existe déjà et que 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 le flag --no-clobber, mais que vous 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 le flag --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 le flag --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 qui comporte des données différentes.
11 Cette autorisation n'est requise que si la requête nécessite également l'utilisation du flag --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 la 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 le flag --allow-overwrite et que l'opération crée un objet portant le même nom qu'un objet présent dans le bucket.
15 Cette autorisation n'est requise que si la requête inclut le flag --ip-filter-file pour créer, modifier ou supprimer les règles de filtrage par adresse IP sur un bucket.
16 Cette autorisation n'est requise que si vous souhaitez obtenir la configuration de filtrage par adresse IP du bucket dans la réponse.
Flag de niveau supérieur --billing-project
Si vous utilisez le flag global --billing-project 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. Le flag --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 flags 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 le flag --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
- Attribuez des rôles IAM au niveau du projet et du bucket.
- Consultez la page Rôles IAM contenant des autorisations Cloud Storage.