Permissões de transferência sem agente

As transferências sem agente incluem transferências do Cloud Storage ou do Amazon S3, do armazenamento de blobs do Azure ou do Data Lake Storage Gen2 ou listas de URLs de objetos públicos. Elas não exigem agentes de transferência ou pools de agentes.

Ao transferir dados entre provedores de nuvem em uma transferência sem agente, você precisa conceder permissões a duas entidades:

  • Ao usuário ou a conta de serviço gerenciada pelo usuário que está criando ou gerenciando a transferência.
  • À conta de serviço gerenciada pelo Google que é criada automaticamente na primeira vez que você interage com o Serviço de transferência do Cloud Storage.

Além disso, é preciso configurar o acesso aos arquivos de origem no AWS S3, no Microsoft Azure ou no Cloud Storage.

Saiba como conceder papéis do IAM em Conceder, alterar e revogar o acesso a recursos.

O método mais simples de conceder permissões

A CLI gcloud pode ser usada para conceder as permissões necessárias ao usuário/à conta de serviço gerenciada pelo usuário e à conta de serviço gerenciada pelo Google. Com essas permissões, o usuário pode criar, editar e excluir jobs de transferência e definir ou modificar limites de largura de banda.

Se essas permissões forem muito amplas para as políticas da sua organização, consulte as seções posteriores deste documento para ver as permissões mínimas exigidas pelo Serviço de transferência do Cloud Storage.

Para inspecionar as permissões atuais e imprimir os papéis ausentes, execute o seguinte comando:

gcloud transfer authorize

Para aplicar esses papéis automaticamente, use a sinalização --add-missing:

gcloud transfer authorize --add-missing

Para conceder permissões a uma conta de serviço gerenciada pelo usuário, transmita o arquivo de chave da conta de serviço:

gcloud transfer authorize --add-missing --creds-file=path/to/key.json

Saiba como criar uma conta de serviço em Criar e gerenciar contas de serviço.

O comando concede as permissões a seguir.

  • Para o usuário/a conta de serviço gerenciada pelo usuário:

    • roles/owner
    • roles/storagetransfer.admin
    • roles/storagetransfer.transferAgent
    • roles/storage.objectAdmin
    • roles/pubsub.editor
  • Para a conta de serviço gerenciada pelo Google:

    • roles/storage.admin
    • roles/storagetransfer.serviceAgent

Saiba como instalar a CLI gcloud no Guia de início rápido do gcloud.

Permissões do usuário ou da conta de serviço gerenciada pelo usuário

Veja nesta seção os papéis necessários para as contas que gerenciam e executam transferências. Os requisitos da sua organização vão definir os papéis exatos para cada perfil. Esta seção pressupõe que você vai criar um administrador e um usuário.

Contas de administrador

As contas de administrador do Serviço de transferência do Cloud Storage definem limites de uso da largura de banda e excluem jobs de transferência.

Para configurar uma conta de administrador, atribua as seguintes permissões e papéis do IAM:

Papel / permissão Efeitos Observações
resourcemanager.projects.getIamPolicy Essa permissão é usada para confirmar que a conta de serviço gerenciada pelo Google tem as permissões necessárias para uma transferência. Para conceder essa permissão, conceda o papel predefinido Visualizador de papéis (roles/iam.roleViewer) ou crie um papel personalizado com esta permissão única e conceda o papel personalizado.
Administrador de transferências do Storage (roles/storagetransfer.admin) Permite ações administrativas no projeto de transferência, como configuração do projeto. Para uma lista detalhada das permissões concedidas, consulte Papéis predefinidos do Serviço de transferência do Cloud Storage.

Contas de usuário

As contas de usuário do Serviço de transferência do Cloud Storage são usadas para criar e executar transferências. Essas contas normalmente não têm acesso para excluir jobs de transferência.

Uma conta de usuário pode ser um usuário do console do Google Cloud ou uma conta de serviço. Se você estiver usando uma conta de serviço, o método utilizado para transmitir as credenciais para o Serviço de transferência do Cloud Storage vai variar conforme a interface usada.

Para configurar uma conta de usuário, atribua as seguintes permissões e papéis à conta:

Papel / permissão Efeitos Observações
resourcemanager.projects.getIamPolicy Usado para confirmar que a conta de serviço gerenciada pelo Google tem as permissões necessárias do Pub/Sub para uma transferência. Para conceder essa permissão, conceda o papel predefinido Visualizador de papéis (roles/iam.roleViewer) ou crie um papel personalizado com esta permissão única e conceda o papel personalizado.
Usuário de transferência do Storage (roles/storagetransfer.user) Permite que o usuário crie, receba, atualize e liste transferências. Para uma lista detalhada das permissões concedidas, consulte Papéis predefinidos do Serviço de transferência do Cloud Storage.

Permissões da conta de serviço gerenciada pelo Google

O Serviço de transferência do Cloud Storage usa uma conta de serviço gerenciada pelo Google para mover seus dados. Essa conta de serviço é criada automaticamente na primeira vez que você cria um job de transferência, chama googleServiceAccounts.get ou visita a página de criação de job no console do Google Cloud.

O formato da conta de serviço geralmente é project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Para recuperar o identificador da conta de serviço, use a chamada de API googleServiceAccounts.get.

Atribuir papéis automaticamente

Há duas maneiras de atribuir automaticamente os papéis corretos à conta de serviço gerenciada pelo Google:

Atribuir papéis manualmente

Para permitir que a conta de serviço gerenciado pelo Google acesse os recursos necessários para concluir as transferências, atribua os seguintes papéis ou permissões equivalentes à conta de serviço.

Papel / permissão Efeitos Observações
Gravador de bucket legado do Storage (roles/storage.legacyBucketWriter) Ativa o Serviço de transferência do Cloud Storage para ler metadados do bucket, listar objetos no bucket e gravar objetos no bucket de destino. Conceder no bucket de destino do Cloud Storage.
Leitor de objetos do Storage (roles/storage.objectViewer) Permite que o Serviço de transferência do Cloud Storage determine se um arquivo já foi transferido para ou do Cloud Storage. Conceder no bucket de origem do Cloud Storage se estiver transferindo do Cloud Storage. Se apropriado para sua situação, conceda o papel no nível do projeto ao projeto em que o Serviço de transferência do Cloud Storage está sendo executado.
Leitor de bucket legado do Storage (roles/storage.legacyBucketReader) Permite que o Storage Transfer Service leia metadados do bucket do Cloud Storage.

Conceda no bucket de origem do Cloud Storage se estiver transferindo do Cloud Storage.

Os papéis legacy do Cloud Storage só podem ser concedidos no nível do bucket.

Consulte Conceder as permissões necessárias para ver as instruções.

Transferências entre projetos do Cloud Storage

Para transferir objetos entre buckets do Cloud Storage em projetos diferentes, é necessário conceder permissão a uma única conta de serviço gerenciada pelo Google nos buckets de origem e de destino. A conta de serviço gerenciada pelo Google pertence ao projeto de que você está criando a transferência.

O Usuário ou a conta de serviço gerenciada pelo usuário só precisa de permissões no projeto que está criando a transferência.

Para receber o e-mail da conta de serviço gerenciado pelo Google, consulte Encontrar o e-mail do agente de serviço.

No bucket de origem, atribua os seguintes papéis no nível do bucket à conta de serviço gerenciada pelo Google:

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

No bucket de destino, atribua o seguinte papel no nível do bucket à mesma conta de serviço gerenciada pelo Google:

  • Storage Legacy Bucket Writer

Para instruções sobre como atribuir papéis no nível do bucket, consulte as seguintes páginas:

Restrições organizacionais

Caso sua organização tenha aplicado as restrições dapolítica da organização como restrições de domínio (constraints/iam.allowedPolicyMemberDomains ) ou desativação da conexão de contas de serviço a recursos em outros projetos (constraints/iam.disableCrossProjectServiceAccountUsage ), essas restrições precisam ser atualizadas antes que as transferências entre projetos sejam bem-sucedidas.

Também pode ser necessário atualizar as configurações do controle de serviço da VPC para oferecer suporte a transferências entre projetos. Consultee Configurar o VPC Service Controls para transferências de armazenamento de objetos na nuvem.

Permissões da AWS e da Microsoft

Você também precisará configurar o acesso aos arquivos de origem se eles estiverem no AWS S3 ou no Microsoft Azure Storage. Os documentos a seguir detalham as etapas necessárias: