En esta página, se proporciona una descripción general de la característica de pagos del solicitante para Cloud Storage.
Introducción
Cada vez que un usuario accede a un recurso de Cloud Storage, como un bucket o un objeto, hay cargos asociados con la creación y ejecución de la solicitud. Estos cargos incluyen lo siguiente:
Cargos de procesamiento de datos por operaciones, replicación y recuperación de datos.
Cargos de red por la lectura de los datos.
Por lo general, al propietario del proyecto del recurso se le facturan estos cargos de acceso; sin embargo, si el solicitante proporciona un proyecto de facturación con su solicitud, ese proyecto recibirá la facturación en su lugar. Con la función de pagos del solicitante habilitada en tu depósito, puedes hacer que los solicitantes deban incluir un proyecto de facturación en sus solicitudes y, así, enviar las facturas al proyecto del solicitante. Habilitar la función de pagos del solicitante es útil, por ejemplo, si tienes muchos datos que quieres que estén disponibles para los usuarios, pero no deseas que se te cobre por el acceso a esos datos.
Cargos no cubiertos
Los cargos de almacenamiento de datos, incluidos los cargos de eliminación temprana, siempre se aplican al proyecto que contiene el bucket, incluso si los pagos del solicitante están habilitados.
Restricciones
Se aplican las siguientes restricciones cuando se usan los pagos del solicitante:
- No puedes usar un bucket que tenga habilitados los pagos del solicitante para importaciones y exportaciones desde Cloud SQL.
- No puedes usar un bucket que tenga habilitados los pagos del solicitante para exportaciones desde Pub/Sub.
Requisitos de uso y acceso
Para habilitar los pagos del solicitante en un depósito, habilita la marca de metadatos en el depósito. Una vez habilitado, solo los siguientes usuarios pueden acceder al bucket o a sus contenidos:
Solicitantes que incluyen un proyecto de facturación en su solicitud. El proyecto usado en la solicitud debe estar en regla y el usuario debe tener una función en el proyecto que contenga el permiso
serviceusage.services.use
. La función Consumidor de uso de servicio contiene el permiso requerido.Solicitantes que no incluyen un proyecto de facturación, pero tienen el permiso
resourcemanager.projects.createBillingAssignment
para el proyecto que contiene el depósito. La función administrador de proyectos de facturación contiene el permiso requerido. Los cargos de acceso asociados a estas solicitudes se facturan en el proyecto que contiene el bucket.
Todas las demás solicitudes al depósito generan un error 400 UserProjectMissing
.
Además de estos requisitos, el solicitante debe tener el permiso suficiente para realizar la acción solicitada. Por ejemplo, un usuario que proporciona un proyecto de facturación válido en su solicitud no puede subir objetos al depósito, a menos que tenga el permiso explícito para hacerlo, como el permiso storage.objects.create
sobre ese depósito o el proyecto que lo contiene.
Si inhabilitas los pagos del solicitante, debes incluir un proyecto de facturación en la solicitud o tener el permiso resourcemanager.projects.createBillingAssignment
.
Operaciones facturadas en la fuente
Las operaciones que tienen un bucket fuente y un bucket de destino, como una copia o una reescritura, se cobran al proyecto que contiene el bucket fuente. En la mayoría de los casos, como las llamadas directas con las API de JSON y XML, solo tienes que incluir un proyecto de facturación si el depósito fuente tiene habilitada la característica de pagos del solicitante.
En algunos casos, como gcloud storage cp
con una marca --no-clobber
, debes incluir un proyecto de facturación si el depósito de origen o el de destino (o ambos) tienen habilitados los pagos del solicitante. Esto sucede porque esas operaciones realizan llamadas tanto al bucket fuente como al de destino en el transcurso de la acción.
Operaciones de solicitudes múltiples
En el caso de las operaciones que requieren que se completen varias solicitudes, el uso de proyectos de facturación en tus solicitudes tiene los siguientes comportamientos:
En el caso de las cargas reanudables, solo la primera solicitud debe incluir un proyecto de facturación y se aplica a toda la carga. Los proyectos de facturación especificados en solicitudes posteriores se ignoran.
Para las reescrituras con la API de JSON y las cargas multiparte de la API de XML, cada solicitud puede usar un proyecto de facturación diferente y un proyecto de facturación especificado en una solicitud anterior no se aplica a las solicitudes posteriores.
Facturación
Los cargos asociados con la inclusión de un proyecto de facturación en tu solicitud no aparecen por separado en tu facturación. Por ejemplo, supongamos que realizas varias descargas desde un depósito con pagos del solicitante y usas el proyecto my-project
para facturar la solicitud. Si my-project
también contiene un depósito desde el cual realizas descargas, tu factura solo muestra los cargos totales de tus descargas combinadas. No distingue entre las descargas desde tu propio bucket y las que realizas desde el bucket de pagos del solicitante.
Si deseas distinguir entre los cargos de tus propios recursos de Cloud Storage y los de incluir proyectos de facturación en tus solicitudes, debes crear un proyecto que no contenga recursos de Cloud Storage: este proyecto se dedicará a hacer solicitudes a recursos en otros proyectos, como los depósitos con cargos del solicitante.
¿Qué sigue?
- Obtén más información sobre cómo usar los pagos del solicitante.
- Haz que los datos estén disponibles públicamente.