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.getIamPolicy 1 |
||
buckets get-iam-policy |
storage.buckets.get storage.buckets.getIamPolicy |
||
buckets list |
storage.buckets.list storage.buckets.getIamPolicy 1 |
||
buckets notifications create |
storage.buckets.get storage.buckets.update pubsub.topics.get (pour le projet contenant le sujet Pub/Sub)pubsub.topics.create 3 (pour le projet contenant le sujet Pub/Sub)pubsub.topics.getIamPolicy (pour les notifications de réception de sujets Pub/Sub)pubsub.topics.setIamPolicy 3 (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.createBillingAssignment 2 |
|
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.list 13 |
||
cp |
storage.objects.get storage.buckets.get 12storage.objects.list 4 (pour le bucket de destination)
storage.objects.create storage.objects.delete 5 |
||
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.getIamPolicy 6 |
||
ls (pour la création de listes d'objets) |
storage.objects.get 7storage.objects.list storage.objects.getIamPolicy 8 |
||
ls |
--buckets |
storage.buckets.get storage.buckets.getIamPolicy 6 |
|
mv |
storage.objects.list 4 (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.delete 5 (pour le bucket de destination) |
||
objects compose |
storage.objects.get storage.objects.create storage.objects.delete 9 |
||
objects describe |
storage.objects.get storage.objects.getIamPolicy 8 |
||
objects list |
storage.objects.list storage.objects.getIamPolicy 8 |
||
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.overrideUnlockedRetention 11 |
|
restore |
storage.objects.create storage.objects.delete 9storage.objects.restore |
||
restore |
--async |
storage.objects.create storage.objects.delete 14storage.objects.restore storage.buckets.restore |
|
rm |
storage.buckets.delete storage.objects.delete storage.objects.list |
||
rsync |
storage.objects.get storage.objects.create storage.objects.delete 10storage.objects.list |
||
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
- Attribuez des rôles IAM au niveau du projet et du bucket.
- Consultez la page Rôles IAM contenant des autorisations Cloud Storage.