Le tableau ci-dessous répertorie les autorisations Cloud Identity and Access Management (Cloud IAM) requises pour exécuter chaque méthode JSON Cloud Storage sur une ressource donnée. Les autorisations Cloud IAM sont regroupées pour créer des rôles, qui sont attribués aux utilisateurs et aux groupes.
Pour connaître les méthodes supplémentaires qui s'appliquent uniquement aux buckets pour lesquels l'accès uniforme au niveau du bucket est désactivé, consultez le tableau des méthodes de LCA.
Ressource | Méthode | Autorisations IAM requises1 |
---|---|---|
Buckets |
delete |
storage.buckets.delete |
Buckets |
get |
storage.buckets.get storage.buckets.getIamPolicy 2storage.buckets.getIpFilter 13 |
Buckets |
getIamPolicy |
storage.buckets.getIamPolicy |
Buckets |
insert |
storage.buckets.create storage.buckets.enableObjectRetention 3storage.buckets.setIpFilter 14 |
Buckets |
list |
storage.buckets.list storage.buckets.getIamPolicy 2storage.buckets.getIpFilter 13 |
Buckets |
listChannels |
storage.buckets.get |
Buckets |
lockRetentionPolicy |
storage.buckets.update |
Buckets |
patch |
storage.buckets.update storage.buckets.getIamPolicy 4storage.buckets.setIamPolicy 5storage.buckets.setIpFilter 14storage.buckets.getIpFilter 13 |
Buckets |
setIamPolicy |
storage.buckets.setIamPolicy |
Buckets |
testIamPermissions |
Aucun |
Buckets |
update |
storage.buckets.update storage.buckets.getIamPolicy 4storage.buckets.setIamPolicy 5storage.buckets.setIpFilter 14storage.buckets.getIpFilter 13 |
Channels |
stop |
Aucun |
Folders |
get |
storage.folders.get |
Folders |
insert |
storage.folders.create |
Folders |
list |
storage.folders.list |
Folders |
rename |
storage.folders.rename storage.folders.create |
Folders |
delete |
storage.folders.delete |
ManagedFolders |
delete |
storage.managedfolders.delete storage.managedfolders.setIamPolicy 10 |
ManagedFolders |
get |
storage.managedfolders.get |
ManagedFolders |
getIamPolicy |
storage.managedfolders.getIamPolicy |
ManagedFolders |
insert |
storage.managedfolders.create |
ManagedFolders |
list |
storage.managedfolders.list |
ManagedFolders |
update |
storage.managedfolders.update |
ManagedFolders |
setIamPolicy |
storage.managedfolders.setIamPolicy |
Notifications |
delete |
storage.buckets.update |
Notifications |
get |
storage.buckets.get |
Notifications |
insert |
storage.buckets.update |
Notifications |
list |
storage.buckets.get |
Objects |
bulkRestore |
storage.buckets.restore storage.objects.create storage.objects.delete 11storage.objects.restore storage.objects.setIamPolicy 6,12 |
Objects |
compose |
storage.objects.get storage.objects.create storage.objects.delete 7storage.objects.getIamPolicy 2,6storage.objects.setRetention 8 |
Objects |
copy |
storage.objects.get storage.objects.create storage.objects.delete storage.objects.setRetention |
Objects |
delete |
storage.objects.delete |
Objects |
get |
storage.objects.get storage.objects.getIamPolicy 2,6 |
Objects |
insert |
storage.objects.create storage.objects.delete 7storage.objects.setRetention 8 |
Objects |
list |
storage.objects.list storage.objects.getIamPolicy 2,6 |
Objects |
patch |
storage.objects.update storage.objects.setRetention 8storage.objects.overrideUnlockedRetention 9storage.objects.getIamPolicy 4,6storage.objects.setIamPolicy 5,6 |
Objects |
restore |
storage.objects.create storage.objects.delete 7storage.objects.restore storage.objects.getIamPolicy 2,6storage.objects.setIamPolicy 6,12 |
Objects |
rewrite |
storage.objects.get storage.objects.create storage.objects.delete storage.objects.setRetention |
Objects |
update |
storage.objects.update storage.objects.setRetention 8storage.objects.overrideUnlockedRetention 9storage.objects.getIamPolicy 4,6storage.objects.setIamPolicy 5,6 |
Objects |
watchAll |
storage.buckets.update |
Projects.hmacKeys |
create |
storage.hmacKeys.create |
Projects.hmacKeys |
delete |
storage.hmacKeys.delete |
Projects.hmacKeys |
get |
storage.hmacKeys.get |
Projects.hmacKeys |
list |
storage.hmacKeys.list |
Projects.hmacKeys |
update |
storage.hmacKeys.update |
Projects.serviceAccount |
get |
resourceManager.projects.get |
ReportConfigs |
delete |
storageinsights.reportConfigs.delete |
ReportConfigs |
get |
storageinsights.reportConfigs.get |
ReportConfigs |
list |
storageinsights.reportConfigs.list |
ReportConfigs |
insert |
storageinsights.reportConfigs.create |
ReportConfigs |
update |
storageinsights.reportConfigs.update |
ReportDetails |
get |
storageinsights.reportDetails.get |
ReportDetails |
list |
storageinsights.reportDetails.list |
1 Si vous utilisez le paramètre userProject
ou l'en-tête x-goog-user-project
dans votre requête, vous devez disposer de l'autorisation serviceusage.services.use
pour l'ID du projet que vous spécifiez, en plus des autorisations Cloud IAM normales requises pour effectuer la requête.
2 Cette autorisation n'est requise que si vous souhaitez inclure des LCA ou des stratégies IAM dans une projection full
. Si vous ne disposez pas de cette autorisation et que vous demandez une projection full
, vous ne recevrez qu'une projection partielle.
3 Cette autorisation n'est requise que lorsque la requête inclut le paramètre de requête enableObjectRetention
.
3 Cette autorisation n'est requise que si vous souhaitez inclure des LCA dans la réponse.
5 Cette autorisation est requise si vous souhaitez inclure des LCA ou des modifications du paramètre Protection contre l'accès public dans le cadre de la requête.
6 Cette autorisation ne s'applique pas aux buckets pour lesquels l'accès uniforme au niveau du bucket est activé.
7 Cette autorisation n'est requise que si la requête entraîne l'écrasement d'un objet portant le même nom.
8 Cette autorisation est requise lorsque le corps de la requête inclut la propriété retention
ou lors d'une requête UPDATE
pour un objet disposant d'une configuration de conservation existante.
9 Cette autorisation n'est requise que lorsque la requête inclut le paramètre de requête overrideUnlockedRetention=true
.
10 Cette autorisation n'est requise que lorsque la requête inclut le paramètre de requête allowNonEmpty=true
.
11 Cette autorisation n'est requise que lorsque la requête inclut le paramètre de requête allowOverwrite=true
et qu'elle entraîne l'écrasement d'un objet portant le même nom.
12 Cette autorisation n'est requise que lorsque la requête inclut le paramètre de requête copySourceAcl=true
.
13 Cette autorisation n'est requise que si vous souhaitez inclure des règles de filtrage des adresses IP des buckets dans le cadre d'une projection full
. Si vous ne disposez pas de cette autorisation et que vous demandez une projection full
, vous ne recevrez qu'une projection partielle. Si vous souhaitez exclure les règles de filtrage des adresses IP des buckets dans votre réponse, vous pouvez demander une projection noAcl
.
14 Cette autorisation n'est requise que si vous souhaitez créer, lister, supprimer et mettre à jour des règles de filtrage des adresses IP des buckets.
Méthodes associées aux LCA
Le tableau suivant répertorie les autorisations Cloud IAM requises pour exécuter des méthodes JSON qui s'appliquent spécifiquement à la gestion des LCA. Ces méthodes s'appliquent uniquement aux buckets pour lesquels l'accès uniforme au niveau du bucket est désactivé.
Ressource | Méthode | Autorisations IAM requises1 |
---|---|---|
BucketAccessControls |
delete |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
BucketAccessControls |
get |
storage.buckets.get storage.buckets.getIamPolicy |
BucketAccessControls |
insert |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
BucketAccessControls |
list |
storage.buckets.get storage.buckets.getIamPolicy |
BucketAccessControls |
patch |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
BucketAccessControls |
update |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
DefaultObjectAccessControls |
delete |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
DefaultObjectAccessControls |
get |
storage.buckets.get storage.buckets.getIamPolicy |
DefaultObjectAccessControls |
insert |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
DefaultObjectAccessControls |
list |
storage.buckets.get storage.buckets.getIamPolicy |
DefaultObjectAccessControls |
patch |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
DefaultObjectAccessControls |
update |
storage.buckets.get storage.buckets.getIamPolicy storage.buckets.setIamPolicy storage.buckets.update |
ObjectAccessControls |
delete |
storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
ObjectAccessControls |
get |
storage.objects.get storage.objects.getIamPolicy |
ObjectAccessControls |
insert |
storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
ObjectAccessControls |
list |
storage.objects.get storage.objects.getIamPolicy |
ObjectAccessControls |
patch |
storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
ObjectAccessControls |
update |
storage.objects.get storage.objects.getIamPolicy storage.objects.setIamPolicy storage.objects.update |
1 Si vous utilisez le paramètre userProject
ou l'en-tête x-goog-user-project
dans votre requête, vous devez disposer de l'autorisation serviceusage.services.use
pour l'ID du projet que vous spécifiez, en plus des autorisations Cloud IAM normales requises pour effectuer la requête.
Étape suivante
Consultez la page Rôles IAM pour Cloud Storage pour découvrir la liste des rôles et les autorisations qu'ils comprennent.
Attribuez des rôles IAM au niveau du projet et du bucket.