Use o administrador de projetos do Google Cloud, um usuário com
privilégios resourcemanager.projects.setIamPolicy
, para conceder
permissões ou papéis do gerenciamento de identidade e acesso (IAM) aos usuários
e serviços adequados contas.
A conta de administrador do projeto do Google Cloud só é necessária para conceder permissões a usuários e contas de serviço. Não é necessário iniciar jobs de transferência.
Para mais informações sobre como conceder papéis do IAM, consulte Como conceder, alterar e revogar acesso a recursos.
Se você tiver interesse em criar papéis personalizados para o Serviço de transferência do Cloud Storage, consulte Noções básicas sobre papéis personalizados do IAM.
Contas de administrador
As contas de administrador do Serviço de transferência do Cloud Storage gerenciam agentes de transferência, 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 | Notas |
---|---|---|
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 e monitoramento do agente. | Para ver 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 | Notas |
---|---|---|
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 ver uma lista detalhada das permissões concedidas, consulte Papéis predefinidos do Serviço de transferência do Cloud Storage. |
Conta de serviço
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, cria um pool de agentes, chama
googleServiceAccounts.get
ou acessa a página de criação de jobs no
Console do Google Cloud.
O formato da conta de serviço geralmente é
project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com
.
Para determinar o PROJECT_NUMBER
específico, use a
chamada de API
googleServiceAccounts.get
.
Para permitir que a conta de serviço do Serviço de transferência do Cloud Storage acesse recursos necessários para concluir transferências, atribua os seguintes papéis ou permissões equivalentes à conta de serviço:
Papel / permissão | Efeitos | Notas |
---|---|---|
Criador de objetos do Storage
(roles/storage.objectCreator )
|
Permite que o Storage Transfer Service crie registros de transferência no bucket do Cloud Storage conectado a essa transferência. |
Conceda a todos os buckets do Cloud Storage usados em uma transferência. 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.
Para ver uma lista detalhada das permissões que esses papéis concedem, consulte Papéis predefinidos 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. | |
Serviço de transferência do Cloud Storage
(roles/storagetransfer.serviceAgent )
|
Permite que o Serviço de transferência do Cloud Storage crie e modifique tópicos do Pub/Sub automaticamente para se comunicar entre o Google Cloud com agentes de transferência. |
Aplique o papel no nível do projeto em que o Serviço de transferência do Cloud Storage está sendo executado.
Para ver uma lista detalhada das permissões concedidas por esse papel, consulte Permissões e papéis. |
Leitor de bucket legado do Storage
(roles/storage.legacyBucketReader )
|
Permite que o Storage Transfer Service leia metadados do bucket do Cloud Storage. |
Concede a cada bucket do Cloud Storage usado em uma transferência. Os papéis |
Transferir agentes
Os agentes de transferência do Cloud Storage podem ser executados com a conta do usuário ou com uma conta de serviço.
Para configurar uma conta de serviço ou de usuário de agente de transferência que executa os agentes de transferência, atribua o seguinte papel:
Papel / permissão | Efeitos | Notas |
---|---|---|
Serviço de transferência do Cloud Storage
(roles/storagetransfer.transferAgent )
|
Concede aos agentes de transferência as permissões do Storage Transfer Service e do Pub/Sub necessárias para concluir uma transferência. |
Conceda esse papel à conta de usuário ou de serviço que está sendo usada pelos agentes.
Para uma lista detalhada das permissões que este papel concede, consulte Controle de acesso com o IAM. |
Permissões de origem e destino
Verifique também se a conta do agente tem as permissões corretas para acessar os dados de origem e gravar no destino.
Sistema de arquivos para o Cloud Storage
Se o destino da transferência for um bucket do Cloud Storage, o agente de transferência precisará das seguintes permissões no bucket de destino. Consulte Adicionar um principal a uma política no nível do bucket para ver instruções.
Permissão | Descrição |
---|---|
storage.objects.create |
Permite que a conta de agente grave objetos do Cloud Storage durante a transferência. |
storage.objects.get |
Permite que a conta do agente leia dados e metadados de objetos. |
storage.objects.delete |
Obrigatório se a transferência estiver configurada para substituir ou excluir objetos
no coletor. por exemplo, se
overwriteObjectsAlreadyExistingInSink
ou deleteObjectsUniqueInSink estiverem definidos na configuração
transferOptions da sua transferência. |
Para conceder essas permissões, conceda o papel a seguir:
- Administrador do objeto do Storage (
roles/storage.objectAdmin
)
Ou crie um papel personalizado com as permissões específicas e conceda o papel personalizado.
É necessário ter outras permissões para ativar uploads de várias partes.
Cloud Storage para o sistema de arquivos
Se a origem da transferência for um bucket do Cloud Storage, o agente de transferência precisará das seguintes permissões no bucket de origem.
Permissão | Descrição |
---|---|
storage.objects.get |
Permite que a conta do agente leia dados e metadados de objetos. |
Para conceder essa permissão, conceda o seguinte papel:
- Visualizador do objeto do Storage (
roles/storage.objectViewer
)
Ou crie um papel personalizado com a única permissão e conceda o papel personalizado.
Sistema de arquivos para sistema de arquivos
Se a transferência estiver entre dois sistemas de arquivos, o agente de transferência precisará das seguintes permissões no bucket intermediário.
Permissão | Descrição |
---|---|
storage.objects.create |
Permite que a conta de agente grave objetos do Cloud Storage durante a transferência. |
storage.objects.get |
Permite que a conta do agente leia dados e metadados de objetos. |
storage.objects.delete |
Obrigatório se a transferência estiver configurada para excluir objetos no bucket intermediário após a conclusão da transferência. |
Para conceder essas permissões, conceda o papel a seguir:
- Administrador do objeto do Storage (
roles/storage.objectAdmin
)
Ou crie um papel personalizado com as permissões específicas e conceda o papel personalizado.
É necessário ter outras permissões para ativar uploads de várias partes.
Armazenamento compatível com S3 para o Cloud Storage
A conta do agente de transferência precisa das permissões a seguir no bucket de destino. Consulte Adicionar um principal a uma política no nível do bucket para ver instruções.
Permissão | Descrição |
---|---|
storage.objects.create |
Permite que a conta de agente grave objetos do Cloud Storage durante a transferência. |
storage.objects.get |
Permite que a conta do agente leia dados e metadados de objetos. |
storage.objects.delete |
Obrigatório se a transferência estiver configurada para substituir ou excluir objetos
no coletor. por exemplo, se
overwriteObjectsAlreadyExistingInSink
ou deleteObjectsUniqueInSink estiverem definidos na configuração
transferOptions da sua transferência. |
Para conceder essas permissões, conceda o papel a seguir:
- Administrador do objeto do Storage (
roles/storage.objectAdmin
)
Ou crie um papel personalizado com as permissões específicas e conceda o papel personalizado.
Uploads de várias partes
Para ativar uploads em várias partes do sistema de arquivos para transferências do Cloud Storage ou transferências entre sistemas de arquivos, também conceda as seguintes permissões ao agente.
- Para transferências no Cloud Storage, atribua as permissões ao bucket de destino.
- Para transferências entre sistemas de arquivos, atribua as permissões ao bucket intermediário.
Os uploads de várias partes podem acelerar transferências que incluem arquivos grandes e são suportados apenas em buckets que usam a classe de armazenamento padrão.
Nome da permissão de upload de várias partes | Descrição |
---|---|
storage.multipartUploads.create |
Faça upload de objetos de várias partes. |
storage.multipartUploads.abort |
Cancele sessões de upload de várias partes. |
storage.multipartUploads.listParts |
Liste as partes do objeto enviado em uma sessão de upload de várias partes. |
storage.multipartUploads.list |
Listar as sessões de upload de várias partes em um bucket. |
Para conceder essas permissões, conceda o papel a seguir:
- Administrador do objeto do Storage (
roles/storage.objectAdmin
)
Ou crie um papel personalizado com as permissões específicas e conceda o papel personalizado.