Autorizações de transferência sem agente

As transferências sem agente incluem transferências no Cloud Storage ou do Amazon S3, Azure Blob Storage ou Data Lake Storage Gen2, ou listas de URLs de objetos públicos. Não requerem agentes de transferência nem conjuntos de agentes.

Quando transfere dados entre fornecedores de nuvem numa transferência sem agente, tem de conceder autorizações a dois responsáveis:

Para saber como conceder funções do IAM, consulte o artigo Conceder, alterar e revogar o acesso a recursos.

O método mais simples de conceder autorizações

Pode usar a CLI gcloud para conceder as autorizações necessárias à conta de utilizador e à conta de serviço gerida pela Google. Estas autorizações permitem ao utilizador criar, editar e eliminar tarefas de transferência, bem como definir ou modificar limites de largura de banda.

Se estas autorizações forem demasiado abrangentes para as políticas da sua organização, consulte as secções posteriores deste documento para ver as autorizações mínimas necessárias para o serviço de transferência de armazenamento.

Para inspecionar as autorizações existentes e imprimir as funções em falta, execute o seguinte comando:

gcloud transfer authorize

Para aplicar automaticamente essas funções, use a flag --add-missing:

gcloud transfer authorize --add-missing

Para conceder autorizações a uma conta de serviço gerida pelo utilizador em vez do utilizador, transmita o ficheiro de chave da conta de serviço:

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

O comando concede as seguintes autorizações.

  • Ao utilizador / conta de serviço gerida pelo utilizador:

    • roles/owner
    • roles/storagetransfer.admin
    • roles/storagetransfer.transferAgent
    • roles/storage.objectAdmin
    • roles/pubsub.editor
  • Para o agente de serviço gerido pela Google:

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

Para ver instruções sobre a instalação da CLI gcloud, consulte o gcloud início rápido.

Autorizações da conta de utilizador

A conta de utilizador precisa de autorização para executar operações do serviço de transferência de armazenamento. Estas autorizações são concedidas através de uma de duas funções: Utilizador da Transferência de armazenamento ou Administrador da Transferência de armazenamento.

Além disso, a conta precisa de autorização para obter o agente do serviço gerido pela Google para verificar as respetivas autorizações.

Para configurar a conta de utilizador ou a conta de serviço gerida pelo utilizador, conceda as seguintes autorizações e funções do IAM.

Função / autorização O que faz Notas
resourcemanager.projects.getIamPolicy Esta autorização é usada para confirmar que a conta de serviço gerida pela Google tem as autorizações necessárias para uma transferência. Para conceder esta autorização, conceda a função predefinida Visualizador de funções (roles/iam.roleViewer) ou crie uma função personalizada com esta única autorização e conceda a função personalizada.
Uma das seguintes funções:
Storage Transfer Admin (roles/storagetransfer.admin) Permite todas as operações do Serviço de transferência de armazenamento, incluindo a eliminação de tarefas de transferência. Para uma lista detalhada das autorizações concedidas, consulte o artigo Funções predefinidas do Serviço de transferência de armazenamento.
Utilizador de transferência de armazenamento (roles/storagetransfer.user) Permite ao utilizador criar, obter, atualizar e listar transferências. Não permite que o utilizador elimine tarefas de transferência. Para uma lista detalhada das autorizações concedidas, consulte o artigo Funções predefinidas do Serviço de transferência de armazenamento.

Autorizações do agente de serviço gerido pela Google

O Serviço de transferência de armazenamento usa um agente de serviço gerido pela Google para mover os seus dados. Esta conta de serviço é criada automaticamente na primeira vez que cria uma tarefa de transferência, chama googleServiceAccounts.get ou visita a página de criação de tarefas na consola Google Cloud .

Normalmente, o formato da conta de serviço é project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Para obter o identificador da sua conta de serviço, use a chamada da API [googleServiceAccounts.get][googleServiceAccounts.get].

Atribuir funções automaticamente

Existem duas formas de atribuir automaticamente as funções corretas ao agente do serviço:

Atribuir funções manualmente

Para permitir que o agente do serviço aceda aos recursos necessários para concluir as transferências, atribua as seguintes funções ou autorizações equivalentes ao agente do serviço.

Função / autorização O que faz Notas
Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter) Permite que o serviço de transferência de armazenamento leia os metadados do contentor, liste os objetos no contentor e escreva objetos no contentor de destino.

Conceda no contentor de destino do Cloud Storage.

As funções do Cloud Storage legacy só podem ser concedidas ao nível do contentor.

Visualizador de objetos de armazenamento (roles/storage.objectViewer)

Permite que o Serviço de transferência de armazenamento copie objetos de uma origem do Cloud Storage.

Também permite que o Serviço de transferência de armazenamento determine se um ficheiro já existe no destino do Cloud Storage e se foi alterado.

Conceda no contentor de origem do Cloud Storage se estiver a transferir a partir do Cloud Storage.

Conceda também no contentor de destino do Cloud Storage se a sua transferência estiver configurada para [substituir objetos](/storage-transfer/docs/reference/rest/v1/TransferOptions#OverwriteWhen) no destino quando forem diferentes ou nunca. Não é necessário se a sua definição de transferência for para substituir sempre.

Se for adequado para a sua situação, pode conceder a função ao nível do projeto ao projeto a partir do qual o Serviço de transferência de armazenamento está a ser executado.

Storage Legacy Bucket Reader (roles/storage.legacyBucketReader) Permite que o Serviço de transferência de armazenamento leia os metadados do contentor do Cloud Storage.

Conceda no contentor de origem do Cloud Storage se estiver a transferir a partir do Cloud Storage.

As funções do Cloud Storage legacy só podem ser concedidas ao nível do contentor.

Consulte o artigo Conceda as autorizações necessárias para ver instruções.

Delegação numa conta de serviço gerida pelo utilizador

Pode delegar as autorizações do agente de serviço numa conta de serviço gerida pelo utilizador. Isto permite-lhe separar as autorizações de contentores para diferentes tarefas de transferência em várias contas de serviço, em vez de as centralizar num único agente de serviço.

Para ver detalhes, consulte o artigo Delegue autorizações de agente do serviço a uma conta de serviço gerida pelo utilizador.

Transferências do Cloud Storage entre projetos

Para transferir objetos entre contentores do Cloud Storage em projetos diferentes, tem de conceder autorização a um único agente de serviço no contentor de origem e no contentor de destino. O agente de serviço pertence ao projeto a partir do qual está a criar a transferência.

O utilizador ou a conta de serviço gerida pelo utilizador só precisa de autorizações no projeto que está a criar a transferência.

Para obter o email do agente de serviço, consulte o artigo Encontre o email do agente de serviço.

No contentor de origem, conceda as seguintes funções ao nível do contentor ao agente do serviço:

  • Storage Legacy Bucket Reader
  • Storage Object Viewer

No contentor de destino, conceda a seguinte função ao nível do contentor ao agente de serviço igual:

  • Storage Legacy Bucket Writer

Para obter instruções sobre como conceder funções ao nível do contentor, consulte as seguintes páginas:

Não é possível conceder funções do Cloud Storage ao nível do projeto.Legacy

Restrições organizacionais

Se a sua organização tiver aplicado restrições de políticas organizacionais, como restrições de domínio (constraints/iam.allowedPolicyMemberDomains) ou desativação da associação de contas de serviço a recursos noutros projetos (constraints/iam.disableCrossProjectServiceAccountUsage), estas restrições têm de ser atualizadas antes de as transferências entre projetos serem bem-sucedidas.

Também pode ter de atualizar as definições do VPC Service Controls para suportar transferências entre projetos. Consulte o artigo Configure o VPC Service Controls para transferências de armazenamento de objetos na nuvem.

Autorizações da AWS e da Microsoft

Também tem de configurar o acesso aos seus ficheiros de origem se estiverem no AWS S3 ou no Microsoft Azure Storage. Os seguintes documentos detalham os passos necessários: