O recurso Pagamentos do solicitante permite compartilhar dados dos buckets do Cloud Storage, exigindo que os usuários que acessam os dados paguem pelos custos associados. O Pagamento pelo Solicitante é útil quando você quer disponibilizar grandes quantidades de dados para os usuários sem ser cobrado pelo acesso a eles.
Para saber como ativar ou desativar os Pagamentos do Solicitante em um bucket, consulte Usar Pagamentos do Solicitante.
Visão geral dos Pagamentos do Solicitante
Sempre que um usuário acessa um recurso do Cloud Storage, como um bucket ou um objeto, há cobranças associadas à criação e à execução da solicitação. Tais cobranças incluem:
Cobranças de processamento de dados para operações, replicação e recuperação de dados.
Taxas de uso de rede para a leitura dos dados;
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.
Cobranças não incluídas
As cobranças de armazenamento de dados, incluindo as cobranças de exclusão antecipada, são sempre aplicadas ao projeto que contém o bucket. , mesmo que o pagamento do solicitante esteja ativado.
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.createBillingAssignmentpara 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.
Faturamento
As taxas associadas à inclusão de um projeto de faturamento na sua solicitação não aparecem separadamente na sua cobrança. Por exemplo, digamos que você faça vários
downloads de um bucket de Pagamentos do solicitante e use o projeto my-project
como o projeto para cobrar pela solicitação. Se my-project também contiver um bucket
do qual você faz downloads, sua fatura mostrará apenas as cobranças totais
dos downloads combinados. Não será feita distinção entre os downloads do seu próprio bucket e do bucket de pagamentos do solicitante.
Se você quiser distinguir entre as cobranças dos seus próprios recursos do Cloud Storage e as cobranças de inclusão de projetos de faturamento nas suas solicitações, crie um projeto que não contenha recursos do Cloud Storage: esse projeto é dedicado a fazer solicitações para recursos em outros projetos, como buckets de pagamentos do solicitante.