Paiements par le demandeur

Configuration

Cette page présente la fonctionnalité de paiements par le demandeur pour Cloud Storage.

Introduction

Lorsqu'un utilisateur accède à une ressource Cloud Storage telle qu'un bucket ou un objet, des frais sont associés à la création et à l'exécution de la requête.

Généralement, ces frais sont facturés au propriétaire de projet de la ressource. Toutefois, si le demandeur fournit un projet de facturation avec sa requête, le projet du demandeur est facturé à la place. Lorsque la fonctionnalité de paiements par le demandeur est activée sur votre bucket, vous pouvez exiger que les demandeurs incluent un projet de facturation dans leurs requêtes, ce qui affectera les frais à leur projet. Cette fonctionnalité s'avère utile si vous souhaitez, par exemple, mettre un grand nombre de données à la disposition des utilisateurs, mais que vous ne voulez pas que leur accès vous soit facturé.

Restrictions

La restriction suivante s'applique en cas d'utilisation des paiements du demandeur :

  • Vous ne pouvez pas utiliser de buckets pour lesquels les paiements par le demandeur sont activés pour réaliser des importations et des exportations depuis Cloud SQL.
  • Vous ne pouvez pas utiliser de buckets pour lesquels les paiements par le demandeur sont activés pour réaliser des exportations depuis Pub/Sub.

Exigences relatives à l'utilisation et aux accès

Pour activer les paiements par le demandeur sur un bucket, activez le flag de métadonnées sur celui-ci. Une fois le flag activé, seuls les utilisateurs suivants peuvent accéder au bucket ou à son contenu :

  • Les demandeurs qui spécifient un projet de facturation dans leur requête. Le projet inclus dans la requête doit être en règle, et l'utilisateur doit détenir un rôle contenant l'autorisation serviceusage.services.use pour le projet. Le rôle Consommateur Service Usage comprend l'autorisation requise.

  • Les demandeurs qui ne spécifient pas de projet de facturation, mais qui disposent de l'autorisation resourcemanager.projects.createBillingAssignment pour le projet contenant le bucket. Le rôle Gestionnaire de projet de facturation dispose de l'autorisation requise. Les frais d'accès associés à ces requêtes sont imputés au projet contenant le bucket.

Toutes les autres requêtes envoyées au bucket échouent avec l'erreur 400 UserProjectMissing.

En plus de satisfaire ces exigences, le demandeur doit disposer d'autorisations suffisantes pour exécuter l'action demandée. Par exemple, un utilisateur qui spécifie un projet de facturation valide dans sa requête ne peut pas importer d'objets dans le bucket, sauf s'il dispose d'une autorisation explicite le lui permettant, telle que l'autorisation storage.objects.create pour ce bucket ou le projet auquel il appartient.

Pour désactiver les paiements par le demandeur, vous devez spécifier un projet de facturation dans votre requête ou disposer de l'autorisation resourcemanager.projects.createBillingAssignment.

Opérations facturées à la source

Les opérations qui possèdent à la fois un bucket source et un bucket de destination, telles que les copies ou les réécritures, sont imputées au projet contenant le bucket source. Dans la plupart des cas (lorsque vous exécutez des appels directs à l'aide des API JSON et XML, par exemple), vous n'avez besoin de spécifier un projet de facturation que si les paiements par le demandeur sont activés sur le bucket source.

Dans certains cas (lorsque vous exécutez gcloud storage cp avec un flag --no-clobber, par exemple), vous devez spécifier un projet de facturation si la fonctionnalité de paiements par le demandeur est activée sur le bucket source ou sur le bucket de destination (ou les deux). Cette exigence est due au fait que ces opérations appellent ces deux buckets lors de l'exécution de l'action.

Opérations à requêtes multiples

Pour les opérations nécessitant plusieurs requêtes, l'utilisation de projets de facturation dans vos requêtes implique les comportements suivants :

Étapes suivantes