Como configurar o acesso a origens de dados e coletores

Nesta página, você verá como configurar o acesso à origem e ao coletor de dados para uma transferência usando o Storage Transfer Service.

O Serviço de transferência do Cloud Storage usa uma conta de serviço gerenciada pelo Google para mover seus dados. Se você criar uma transferência no Console do Google Cloud e tiver permissões para atualizar as políticas do IAM para recursos do Cloud Storage, então as transferências criadas no Console do Google Cloud concederão automaticamente à conta de serviço gerenciada pelo Google e usada pelo Serviço de transferência do Cloud Storage as permissões necessárias para a transferência.

O acesso a origens de dados e transferências que não são do Google Cloud e que foram criadas usando a API Storage Transfer Service requerem configuração adicional.

Pré-requisitos

As permissões da conta de serviço são concedidas no nível do bucket. Você precisa ter a capacidade de conceder essas permissões, como ter o papel de administrador do Storage. Para mais informações, consulte Identity and Access Management.

Se você planeja usar o Pub/Sub para transferências, verifique se você concedeu à conta de serviço o papel do IAM Editor do Pub/Sub (roles/pubsub.publisher) para o tópico do Pub/Sub desejado. Pode levar alguns segundos entre a atribuição do papel e a aplicação dele à sua conta de serviço. Se você conceder essa permissão de maneira programática, aguarde 30 segundos antes de configurar o Serviço de transferência do Cloud Storage.

Se o Cloud Key Management Service estiver ativado nos seus buckets de origem ou destino do Cloud Storage, verifique se as cotas listadas para o Cloud KMS na página "Cotas" do seu projeto são compatíveis com as cotas de leitura e de gravação do Serviço de transferência do Cloud Storage. Caso contrário, solicite um aumento na página "Cotas" do seu projeto.

Para ver mais informações, consulte os seguintes tópicos:

Como configurar o acesso à origem de dados

Cloud Storage

O Serviço de transferência do Cloud Storage usa uma Conta de serviço gerenciada pelo Google para mover dados de um bucket de origem do Cloud Storage, que é criado na primeira vez que você chama googleServiceAccounts.get.

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

Para configurar o Serviço de transferência do Cloud Storage para usar o Cloud Storage como uma fonte de dados, atribua os seguintes papéis, ou permissões equivalentes, para a conta de serviço gerenciada pelo Google retornada pela chamada de API googleServiceAccounts.get:

Papel O que ele faz Observações
Leitor de objetos do Storage (roles/storage.objectViewer) Permite que a conta de serviço leia o conteúdo do bucket e os dados e metadados de objeto.
Leitor de bucket legado do Storage (roles/storage.legacyBucketReader) Permite que a conta de serviço leia o conteúdo e os metadados de um bucket e os metadados de objeto. Se você não pretende excluir objetos de origem do Cloud Storage, atribua o Leitor de bucket legado do Storage (roles/storage.legacyBucketReader) à conta de serviço.
Gravador de bucket legado do Storage (roles/storage.legacyBucketWriter) Permite que a conta de serviço crie, substitua e exclua objetos, liste objetos em um bucket, leia metadados de objeto durante a listagem e leia metadados do bucket, excluindo as políticas do IAM. Se você pretende excluir objetos de origem do Cloud Storage, atribua o papel Gravador de bucket legado do Storage (roles/storage.legacyBucketWriter) à conta de serviço.

Para transferências de dados avançadas, consulte Permissões do IAM para o Serviço de transferência do Cloud Storage.

Amazon S3

Siga estas etapas para configurar o acesso a um bucket do Amazon S3:

  1. Configure o acesso ao bucket do Amazon S3 usando um dos seguintes métodos:

    Credenciais de acesso

    1. Crie um usuário do gerenciamento de identidade e acesso da AWS (IAM) com um nome que você possa reconhecer facilmente, como transfer-user. Verifique se o nome segue as diretrizes de nome de usuário do IAM da AWS. Para mais informações, consulte Limitações de entidades e objetos do IAM.
    2. Dê ao usuário do IAM da AWS a capacidade de:
      • listar o bucket do Amazon S3;
      • ver a localização do bucket;
      • ler os objetos no bucket.
      • Se você planeja excluir objetos da origem após a transferência deles, conceda ao usuário permissões de exclusão de objetos.
    3. Crie pelo menos um par de chaves de acesso/secretas para o job de transferência que você planeja configurar. Também é possível criar um par separado de chaves de acesso/secretas para cada job de transferência.

    Identidade federada

    1. O Serviço de transferência do Cloud Storage usa uma conta de serviço gerenciada pelo Google para mover seus dados de um bucket de origem do bucket de origem do Amazon S3. O formato da conta de serviço geralmente é project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com. Para encontrar o formato da sua conta de serviço e criar a conta de serviço, se ela ainda não existir, use a chamada de API googleServiceAccounts.get. Observe a conta de serviço para as etapas a seguir.
    2. Para permitir que o serviço autentique solicitações de saída com a conta de serviço, adicione o papel Criador do token da conta de serviço à conta de serviço que você anotou anteriormente.
    3. Crie o seguinte papel do IAM do Amazon Resource Name (ARN) com permissões AssumeRoleWithWebIdentity:
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Principal": {
              "Federated": "accounts.google.com"
            },
            "Action": "sts:AssumeRoleWithWebIdentity",
            "Condition": {
              "StringEquals": {
                "accounts.google.com:sub": "Service_account_subject_identifier"
              }
            }
          }
        ]
      }
                        
      Para mais informações sobre ARNs, consulte ARNs do IAM.
    4. Adicione permissões que permitam que o Serviço de transferência do Cloud Storage acesse recursos do Amazon S3. Para fazer isso, anexe a seguinte política ao papel do ARN IAM, que pode ser feito por meio do Console do AWS IAM:
      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Effect": "Allow",
            "Action": [
                "s3:Get*",
                "s3:List*",
                "s3:Delete*"
             ],
            "Resource": "*"
          }
        ]
      }
                        
  2. Restaure todos os objetos arquivados no Amazon Glacier. Os objetos no Amazon S3 que são arquivados no Amazon Glacier não ficam acessíveis até que sejam restaurados. Para mais informações, consulte Como migrar para o Cloud Storage a partir do Amazon Glacier (em inglês).

Armazenamento de blobs do Microsoft Azure

Siga estas etapas para configurar o acesso a um contêiner do Microsoft Azure Storage:

  1. Crie ou use um usuário do Microsoft Azure Storage para acessar a conta de armazenamento do seu contêiner de blobs do Microsoft Azure Storage.
  2. Crie um token SAS no nível do contêiner. Consulte Conceder acesso limitado aos recursos do Azure Storage usando assinaturas de acesso compartilhado.

    O prazo de validade padrão para os tokens SAS é oito horas. Quando você criar o token SAS, defina um prazo de validade razoável para garantir que você possa concluir a transferência.

Lista de URLs

Se a origem de dados for uma lista de URLs, verifique se os objetos listados estão acessíveis publicamente.

Como configurar o acesso ao coletor de dados

O serviço de transferência do Cloud Storage usa uma conta de serviço gerenciada pelo Google para mover seus dados de um bucket de origem do Cloud Storage, que é criado na primeira vez que você chama googleServiceAccounts.get.

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

O coletor de dados da sua transferência é sempre um bucket do Cloud Storage.

Para configurar o Serviço de transferência do Cloud Storage para usar o Cloud Storage como um coletor de dados, atribua os seguintes papéis, ou permissões equivalentes, para a conta de serviço gerenciada pelo Google retornada pela chamada de API googleServiceAccounts.get:

Papel Efeitos
Gravador de bucket legado do Storage (roles/storage.legacyBucketWriter) Ativa a conta de serviço gerenciada pelo Google para criar, substituir e excluir objetos, lista objetos no bucket de destino e lê metadados de bucket.
Leitor de objetos do Storage (roles/storage.objectViewer) Permite que a conta de serviço liste e receba objetos do bucket de destino.

Para ver mais informações sobre as permissões necessárias, consulte Permissões do IAM para o Serviço de transferência do Cloud Storage.

A seguir