Antes de criar uma transferência baseada em agentes, tem de configurar as autorizações para as seguintes entidades:
O utilizador ou a conta de serviço gerida pelo utilizador que está a ser usada para criar a transferência. Esta é a conta com sessão iniciada na consola ou a conta especificada quando se autentica na
gcloud
CLI. Google Cloud A conta de utilizador pode ser uma conta de utilizador normal ou uma conta de serviço gerida pelo utilizador.A conta de serviço gerida pela Google, também conhecida como agente de serviço, usada pelo Serviço de Transferência de Armazenamento. Geralmente, esta conta é identificada pelo respetivo endereço de email, que usa o formato
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.A conta de agente de transferência que concede Google Cloud autorizações aos agentes de transferência. As contas de agente de transferência usam as credenciais do utilizador que as instala ou as credenciais de uma conta de serviço gerida pelo utilizador para autenticar.
Para mais informações sobre a concessão de funções de IAM, consulte o artigo Conceder, alterar e revogar o acesso a recursos.
O método mais simples de conceder autorizações
A CLI gcloud
pode ser usada para conceder as autorizações necessárias à conta de serviço gerida pelo utilizador / 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, transmita o ficheiro de chave da conta de serviço:
gcloud transfer authorize --add-missing --creds-file=path/to/key.json
Para ver instruções sobre como criar uma conta de serviço, consulte o artigo Criar e gerir contas de serviço.
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 a conta de serviço gerida 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 de utilizador ou de conta de serviço gerida pelo utilizador
Esta secção aborda as funções necessárias para as contas que gerem e executam transferências. Os requisitos da sua organização determinam as funções exatas de cada perfil fictício. Esta secção pressupõe que vai criar um administrador e um utilizador.
Contas de administrador
As contas de administrador do Serviço de transferência de armazenamento gerem agentes de transferência, definem limites de utilização da largura de banda e eliminam tarefas de transferência.
Para configurar uma conta de administrador, atribua 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. |
Storage Transfer Admin
(roles/storagetransfer.admin )
|
Permite ações administrativas no projeto de transferência, como a configuração do projeto e a monitorização de agentes. | Para uma lista detalhada das autorizações concedidas, consulte o artigo Funções predefinidas do Serviço de transferência de armazenamento. |
Contas de utilizador
As contas de utilizador do Serviço de transferência de armazenamento são usadas para criar e executar transferências. Normalmente, estas contas não têm acesso para eliminar tarefas de transferência.
Uma conta de utilizador pode ser um Google Cloud utilizador da consola ou uma conta de serviço. Se estiver a usar uma conta de serviço, o método que usa para transmitir as credenciais ao serviço de transferência de armazenamento varia consoante a interface que usa.
Para configurar uma conta de utilizador, atribua as seguintes autorizações e funções à conta:
Função / autorização | O que faz | Notas |
---|---|---|
resourcemanager.projects.getIamPolicy |
Usada para confirmar que a conta de serviço gerida pela Google tem as autorizações do Pub/Sub 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. |
Utilizador de transferência de armazenamento
(roles/storagetransfer.user )
|
Permite ao utilizador criar, obter, atualizar e listar transferências. | Para uma lista detalhada das autorizações concedidas, consulte o artigo Funções predefinidas do Serviço de transferência de armazenamento. |
Autorizações da conta de serviço gerida pela Google
O Serviço de transferência de armazenamento usa uma conta de serviço gerida 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
consolaGoogle 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
.
Atribuir funções automaticamente
Existem duas formas de atribuir automaticamente as funções corretas à conta de serviço gerida pela Google:
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 a conta de serviço gerida pela Google aceda aos recursos necessários para concluir as transferências, atribua as seguintes funções ou autorizações equivalentes à conta de serviço.
Função / autorização | O que faz | Notas |
---|---|---|
Storage Object Creator
(roles/storage.objectCreator )
|
Permite que o serviço de transferência de armazenamento crie registos de transferência no contentor do Cloud Storage associado a esta transferência. |
Conceda a todos os contentores do Cloud Storage usados numa transferência. 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.
Para uma lista detalhada das autorizações que estas funções concedem, consulte Funções predefinidas do Cloud Storage. |
Visualizador de objetos de armazenamento
(roles/storage.objectViewer )
|
Permite que o Serviço de transferência de armazenamento determine se um ficheiro já foi transferido para ou a partir do Cloud Storage. | |
Agente do serviço de transferência de armazenamento
(roles/storagetransfer.serviceAgent )
|
Permite que o serviço de transferência de armazenamento crie e modifique automaticamente tópicos do Pub/Sub para comunicar a partir de Google Cloud para agentes de transferência. |
Aplique 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.
Para uma lista detalhada das autorizações que esta função concede, consulte Autorizações e funções. |
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 a cada contentor do Cloud Storage usado numa transferência. As funções do Cloud Storage |
Consulte o artigo Conceda as autorizações necessárias para ver instruções.
Transfira autorizações da conta de agente
Os agentes de transferência do Serviço de transferência de armazenamento podem ser executados com a conta do utilizador ou com uma conta de serviço.
Para configurar uma conta de utilizador ou uma conta de serviço de agente de transferência que execute os agentes de transferência, atribua a seguinte função:
Função / autorização | O que faz | Notas |
---|---|---|
Storage Transfer Agent
(roles/storagetransfer.transferAgent )
|
Concede aos agentes de transferência as autorizações do Serviço de transferência de armazenamento e do Pub/Sub necessárias para concluir uma transferência. |
Conceda esta função ao utilizador ou à conta de serviço que está a ser usada pelos agentes.
Para uma lista detalhada das autorizações que esta função concede, consulte o artigo Controlo de acesso com a IAM. |
Autorizações de origem e destino
Também tem de garantir que a conta de agente tem as autorizações corretas para aceder aos dados de origem e escrever no destino.
Sistema de ficheiros, armazenamento compatível com S3 ou HDFS para o Cloud Storage
Se o destino da transferência for um contentor do Cloud Storage, o agente de transferência precisa das seguintes autorizações no contentor de destino. Consulte o artigo Adicione um principal a uma política ao nível do contentor para ver instruções.
Autorização | Descrição |
---|---|
storage.objects.create |
Permite que a conta de agente escreva objetos do Cloud Storage durante a transferência. |
storage.objects.get |
Permite que a conta de agente leia os dados e os metadados de objetos. |
storage.objects.list |
Permite que a conta de agente liste objetos no contentor do Cloud Storage. |
storage.objects.delete |
Obrigatório se a transferência estiver configurada para substituir ou eliminar objetos
no destino; por exemplo, se
overwriteObjectsAlreadyExistingInSink
ou deleteObjectsUniqueInSink estiverem definidos na configuração
transferOptions da transferência. |
Para conceder estas autorizações, atribua a seguinte função:
- Administrador de objetos de armazenamento (
roles/storage.objectAdmin
)
Em alternativa, crie uma função personalizada com as autorizações específicas e conceda a função personalizada.
São necessárias autorizações adicionais para ativar carregamentos multipartes.
Do Cloud Storage para o sistema de ficheiros
Se a origem da transferência for um contentor do Cloud Storage, o agente de transferência precisa da seguinte autorização no contentor de origem.
Autorização | Descrição |
---|---|
storage.objects.create |
Permite que a conta do agente escreva registos de transferência e metadados relacionados com a transferência no contentor de origem do Cloud Storage. |
storage.objects.get |
Permite que a conta de agente leia os dados e os metadados de objetos. |
storage.objects.list |
Permite que a conta de agente liste objetos no contentor do Cloud Storage. |
storage.objects.delete |
Obrigatório se a transferência estiver configurada para eliminar objetos
da origem. Consulte
deleteObjectsFromSourceAfterTransfer . |
Para conceder esta autorização, atribua a seguinte função:
- Visualizador de objetos de armazenamento (
roles/storage.objectViewer
)
Em alternativa, crie uma função personalizada com a autorização única e conceda a função personalizada.
Sistema de ficheiros para sistema de ficheiros
Se a transferência for entre dois sistemas de ficheiros, o agente de transferência precisa das seguintes autorizações no contentor intermédio.
Autorização | Descrição |
---|---|
storage.objects.create |
Permite que a conta de agente escreva objetos do Cloud Storage durante a transferência. |
storage.objects.get |
Permite que a conta de agente leia os dados e os metadados de objetos. |
storage.objects.list |
Permite que a conta de agente liste objetos no contentor do Cloud Storage. |
storage.objects.delete |
Obrigatório se a transferência estiver configurada para eliminar objetos no contentor intermédio após a conclusão da transferência. |
Para conceder estas autorizações, atribua a seguinte função:
- Administrador de objetos de armazenamento (
roles/storage.objectAdmin
)
Em alternativa, crie uma função personalizada com as autorizações específicas e conceda a função personalizada.
São necessárias autorizações adicionais para ativar carregamentos multipartes.
Carregamentos em várias partes
Para ativar os carregamentos multipartes para transferências do sistema de ficheiros para o Cloud Storage ou transferências entre sistemas de ficheiros, conceda também as seguintes autorizações ao agente.
- Para transferências para o Cloud Storage, atribua as autorizações ao contentor de destino.
- Para transferências entre sistemas de ficheiros, atribua as autorizações ao contentor intermédio.
Nome da autorização de carregamento multipartes | Descrição |
---|---|
storage.multipartUploads.create |
Carregue objetos em várias partes. |
storage.multipartUploads.abort |
Abortar sessões de carregamento em várias partes. |
storage.multipartUploads.listParts |
Apresentar as partes do objeto carregadas numa sessão de carregamento em várias partes. |
storage.multipartUploads.list |
Liste as sessões de carregamento multipartes num contentor. |
Para conceder estas autorizações, atribua a seguinte função:
- Administrador de objetos de armazenamento (
roles/storage.objectAdmin
)
Em alternativa, crie uma função personalizada com as autorizações específicas e conceda a função personalizada.