Nesta página, você encontrará uma visão geral do recurso "Pagamentos do solicitante" para o Cloud Storage.
Introdução
Sempre que um usuário acessa um recurso do Cloud Storage, como um bucket ou objeto, há cobranças associadas à criação e à execução da solicitação.
Normalmente, o proprietário do projeto do recurso é cobrado por esses encargos. No entanto, se o solicitante fornecer um projeto de faturamento com a solicitação, o projeto do solicitante será faturado. Com o recurso "Pagamentos do solicitante" ativado no seu bucket, é possível exigir que os solicitantes incluam um projeto de faturamento nas solicitações para que a cobrança seja enviada a eles. Ativar o "Pagamentos do solicitante" é útil, por exemplo, quando você tem muitos dados que quer disponibilizar para os usuários, mas não quer ser cobrado pelo acesso deles a esses dados.
Restrições
Ao usar os pagamentos do solicitante, as seguintes restrições se aplicam:
- Não é possível usar um bucket com os pagamentos do solicitante ativados para realizar importações e exportações a partir do Cloud SQL.
- Não é possível usar um bucket com o recurso "Pagamentos do solicitante" ativado para exportações do Pub/Sub.
Requisitos de uso e acesso
Para ativar os pagamentos do solicitante em um bucket, ative a sinalização de metadados nele. Depois de ativado, somente os seguintes usuários podem acessar o bucket ou o conteúdo dele:
Solicitantes que incluem um projeto de faturamento na solicitação. O projeto usado na solicitação precisa estar em situação regular, e o usuário precisa ter um papel no projeto que contenha a permissão
serviceusage.services.use
. O papel Consumidor do Service Usage contém a permissão necessária.Solicitantes que não incluem um projeto de faturamento, mas têm permissão
resourcemanager.projects.createBillingAssignment
para o projeto que contém o bucket. O papel Gerente de projetos de faturamento contém a permissão necessária. As cobranças de acesso associadas a essas solicitações são cobradas para o projeto que contém o bucket.
Todas as outras solicitações para o bucket falham com um erro 400 UserProjectMissing
.
Além desses requisitos, o solicitante precisa ter permissão suficiente para executar a ação solicitada. Por exemplo, um usuário que
fornece um projeto de faturamento válido na solicitação não pode fazer upload de objetos para o
bucket, a menos que ele também tenha permissão explícita para tal, como ter a
permissão storage.objects.create
para esse bucket ou o projeto que
o contém.
Ao desativar os pagamentos do solicitante, você precisa incluir um projeto de faturamento na
solicitação ou ter a permissão
resourcemanager.projects.createBillingAssignment
.
Operações com faturamento na origem
As operações que têm um bucket de origem e um bucket de destino, como cópia ou regravação, são cobradas no projeto que contém o bucket de origem. Na maioria dos casos, como chamadas diretas usando as APIs JSON e XML, você só precisa incluir um projeto de faturamento se o bucket de origem tiver o recurso de pagamentos do solicitante ativado.
Em alguns casos, como gcloud storage cp
com uma sinalização --no-clobber
, é necessário
incluir um projeto de faturamento se o bucket de origem ou de destino
(ou ambos) tiver o recurso de pagamentos do solicitante ativado. Isso ocorre porque essas operações fazem chamadas para os buckets de origem e de destino no decorrer da execução da ação.
Operações de solicitação múltipla
Para operações que exigem várias solicitações para serem concluídas, o uso de projetos de faturamento nas solicitações tem os seguintes comportamentos:
Para uploads retomáveis, somente a primeira solicitação precisa incluir um projeto de faturamento e ela se aplica a todo o upload. Os projetos de faturamento especificados nas solicitações subsequentes serão ignorados.
Para substituições com a API JSON e uploads de várias partes da API XML, cada solicitação pode usar um projeto de faturamento diferente, e um projeto de faturamento especificado em uma solicitação anterior não se aplica às solicitações subsequentes.