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:
- A conta de utilizador que está a criar ou gerir a transferência.
- Um agente de serviço gerido pela Google que é criado automaticamente na primeira vez que interage com o serviço de transferência de armazenamento. Pode delegar as autorizações do agente de serviço numa conta de serviço gerida pelo utilizador. Consulte o artigo Delegue autorizações do agente de serviço numa conta de serviço gerida pelo utilizador.
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:
Crie a transferência através da Google Cloud consola. A consola aplica automaticamente as autorizações necessárias.
Use
gcloud transfer authorize --add-missing
. Consulte o Método mais simples de conceder autorizações.
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 |
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 |
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: