Como transferir os dados do Amazon S3 para o Cloud Storage usando o VPC Service Controls e o Serviço de transferência do Cloud Storage


Neste tutorial, descrevemos como aumentar a proteção das transferências de dados do Amazon Simple Storage Service (Amazon S3) para o Cloud Storage usando o Serviço de transferência do Cloud Storage com um perímetro de VPC Service Controls. Este tutorial é voltado a proprietários de dados armazenados no Amazon S3 e àqueles que querem processar ou migrar esses dados com segurança para o Google Cloud.

Neste tutorial, pressupomos que você tenha familiaridade com a Amazon Web Services (AWS) e os princípios fundamentais de trabalhar com dados em armazenamentos de objetos. Neste tutorial, aplicamos um método baseado em conta de serviço que controla o acesso usando o Access Context Manager. Para mais níveis de acesso avançado além do método baseado em conta de serviço, consulte Como criar um nível de acesso.

Arquitetura

No diagrama a seguir, descrevemos a arquitetura do VPC Service Controls.

Arquitetura do VPC Service Controls em que a comunicação dos serviços do Google Cloud é negada fora do perímetro controlado.

No diagrama anterior, o VPC Service Controls nega explicitamente a comunicação entre os serviços do Google Cloud a menos que ambos os projetos estejam no perímetro controlado.

Objetivos

  • Configure o acesso da AWS.
  • Crie o perímetro do VPC Service Controls.
  • Criar uma política e um nível de acesso usando o Access Context Manager.
  • Usar o Serviço de transferência do Cloud Storage para mover dados entre o Amazon S3 e o Cloud Storage.
  • Programar o Serviço de transferência do Cloud Storage para recuperar dados em uma programação.

Custos

Neste documento, você usará os seguintes componentes faturáveis do Google Cloud:

Não há outros custos para usar o Serviço de transferência do Cloud Storage. Entretanto, os preços do Cloud Storage e os custos de fornecedores externos se aplicam ao usar o Serviço de transferência do Cloud Storage.

Para gerar uma estimativa de custo baseada na projeção de uso deste tutorial, use a calculadora de preços. Novos usuários do Google Cloud podem estar qualificados para uma avaliação gratuita.

Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Saiba mais em Limpeza.

Além dos recursos do Google Cloud, neste tutorial usamos os seguintes recursos da Amazon Web Services (AWS), que podem ter custos:

Antes de começar

  1. Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
  2. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  3. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  4. Ative as APIs Access Context Manager, Cloud Storage, and Storage Transfer Service.

    Ative as APIs

  5. No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar o seletor de projetos

  6. Verifique se a cobrança está ativada para o seu projeto do Google Cloud.

  7. Ative as APIs Access Context Manager, Cloud Storage, and Storage Transfer Service.

    Ative as APIs

  8. No Console do Google Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Google Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a CLI do Google Cloud já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.

  9. No console do Google Cloud, acesse a página IAM e administrador para atribuir à sua conta os papéis de administrador do Storage e do Access Context Manager.
    Acesse a página "IAM e administrador"
  10. O papel de Administrador do Storage tem as seguintes permissões:

    • firebase.projects.get
    • resourcemanager.projects.get
    • resourcemanager.projects.list
    • storage.buckets.*
    • storage.objects.*

    O papel de Administrador do Access Context Manager tem as seguintes permissões:

    • accesscontextmanager.accessLevels.*
    • accesscontextmanager.accessPolicies.*
    • accesscontextmanager.accessPolicies.setIamPolicy
    • accesscontextmanager.accessPolicies.update
    • accesscontextmanager.accessZones.*
    • accesscontextmanager.policies.*
    • accesscontextmanager.servicePerimeters.*
    • resourcemanager.organizations.get

Como configurar o acesso da AWS

Neste tutorial, você trabalha com os usuários atuais do AWS Identity and Access Management (AWS IAM) para criar uma política AWS IAM que faça interface com o Serviço de transferência do Cloud Storage. Essas políticas e usuários são necessários para autenticar sua conexão com o Google Cloud e ajudar a proteger os dados em trânsito. Neste tutorial, é necessário que você tenha um bucket do Amazon S3 do qual fará a transferência dos dados. É possível usar um bucket existente do Amazon S3 ou criar um novo bucket. Use uma conta de teste ou sandbox da AWS para evitar afetar os recursos de produção na mesma conta.

Criar uma política de AWS IAM para o Serviço de transferência do Cloud Storage e aplicá-la ao bucket

  1. No AWS Management Console, acesse a página IAM.
  2. Clique em Policies e clique em Create Policy.
  3. No editor visual, clique em IAM Policy.
  4. Clique em S3.
  5. Marque as seguintes caixas de seleção Access Level:

    • List
    • Read
    • Write
  6. No painel Resources, clique em Specific.

  7. No painel Bucket, clique em Add ARN.

  8. No campo Bucket Name, insira o nome do bucket de que você está transferindo dados.

  9. Clique em Review Policy e insira um nome, como transfer-user-policy.

  10. Clique em Create policy.

Adicionar usuários do AWS IAM à sua política de AWS IAM

  1. No AWS Management Console, acesse a página IAM.
  2. Clique em Users, depois em Add User.
  3. No campo Nome, use transfer-user.
  4. Para Access Type, clique em Programmatic Access e anexe o transfer-user-policy que você criou para esse usuário.
  5. Depois de criar o usuário, anote seu par de ID de acesso e de chave secreta, porque ele será usado posteriormente no tutorial.
  6. Clique em Save.

Como criar um bucket do Cloud Storage

Antes de ativar o perímetro de VPC Service Controls, você precisa criar um bucket do Cloud Storage.

  1. No console do Google Cloud, acesse o navegador do Cloud Storage.

    Acessar a página "Navegador do Cloud Storage"

  2. Clique em Create bucket.

  3. No campo Name, digite um nome, como project-id-destination-bucket, em que project-id representa seu ID de projeto do Google Cloud.

  4. Para a classe de armazenamento padrão do bucket, clique em Regional storage.

  5. Na lista suspensa Location, clique em uma região em que os dados do bucket são armazenados.

  6. Clique em Create.

Como encontrar o nome da conta de serviço de operações de transferência

O serviço de transferência do Cloud Storage usa uma conta de serviço gerenciada pelo Google para se comunicar com os recursos do Cloud Storage e do Pub/Sub no projeto. Você precisa determinar o nome da sua conta de serviço, porque ela será usada posteriormente neste tutorial. Se você nunca usou o serviço de transferência do Cloud Storage, a opção a seguir cria a conta do serviço de transferência para você. Para mais informações sobre contas de serviço gerenciadas pelo Google, consulte Contas de serviço.

  1. Para determinar o nome da sua conta de serviço, acesse a página API Storage Transfer Service.
  2. No campo String, insira seu ID de projeto do Google Cloud.

    O nome da conta de serviço geralmente está no seguinte formato: project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com

Como criar a política de acesso no Access Context Manager

Uma política de acesso coleta os perímetros de serviço e os níveis de acesso que você cria para a organização. Uma organização pode ter apenas uma política de acesso.

  1. No console do Google Cloud, abra a página Configurações.

    Acessar a página "Configurações"

  2. Anote o ID do projeto do Google Cloud e o nome da organização.

  3. No Cloud Shell, crie uma política:

    gcloud access-context-manager policies create \
        --organization organization-id --title policy-title
    
    • organization-id é o ID da organização que você encontrou anteriormente.
    • policy-title é o título do perímetro. Por exemplo, Example-Company-Access-Policy.

    A resposta é a seguinte:

    Create request issued
    Waiting for operation [accessPolicies/policy-title/create/policy-number] to complete...done.
    Created.
    

    policy-number representa um ID exclusivo atribuído ao título da política.

Como criar o perímetro do VPC Service Controls

Ao criar o perímetro do VPC Service Controls, você começa sem tráfego permitido. Em seguida, você cria um nível de acesso explícito para permitir que a operação de transferência envie dados para o perímetro controlado.

  1. No console do Google Cloud, acesse a página VPC Service Controls.

    Acessar a página "VPC Service Controls"

  2. Clique em Novo perímetro.

  3. No campo Nome, insira um nome para o perímetro, como data-transfer-perimeter.

  4. Deixe Perímetro regular selecionado.

  5. Clique em Adicionar projeto e adicione o projeto criado por meio deste tutorial à lista de projetos a serem protegidos.

  6. Clique em API Cloud Storage.

  7. Deixe Níveis de acesso com o valor padrão.

  8. Clique em Salvar.

Como criar o nível de acesso na política de acesso

Nesta seção, você limita o acesso ao VPC por meio da conta de serviço.

  1. No Cloud Shell, crie um arquivo YAML chamado conditions.yaml que lista os principais aos quais você quer conceder acesso:

     - members:
         - serviceAccount:project-project-number@storage-transfer-service.iam.gserviceaccount.com
         - user:sysadmin@example.com
     

  2. Crie o nível de acesso:

    gcloud access-context-manager levels create name \
        --title title \
        --basic-level-spec ~./conditions.yaml \
        --combine-function=OR \
        --policy=policy-id
    
    • name é o nome exclusivo do nível de acesso. Ele precisa começar com uma letra e incluir apenas letras, números e sublinhados.
    • title é um título exclusivo da política, como trusted-identity-ingest.
    • policy-id é o ID da política de acesso da organização.
    • combine-function, definida como OR. O valor padrão AND exige que todas as condições sejam atendidas antes de um nível de acesso ser concedido. O valor OR concede acesso aos principais mesmo se outras condições como endereço IP ou herdadas de outros níveis de acesso necessários, não sejam atendidas.

    A saída será assim:

    Create request issued for: name
    Waiting for operation [accessPolicies/policy-id/accessLevels/name/create/access-level-number] to complete...done.
    Created level name.
    

    access-level-number representa um ID exclusivo atribuído ao nível de acesso.

Como vincular o nível de acesso ao VPC Service Controls

  1. No console do Google Cloud, acesse VPC Service Controls.

    Acessar a página "VPC Service Controls"

  2. Clique em Editar para VPC Service Controls.

  3. Clique em Nível de acesso e selecione o nível de acesso trusted-identity-ingest.

  4. Clique em Salvar.

Agora as únicas operações permitidas no perímetro controlado são aquelas da conta de serviço que você definiu.

Como iniciar a transferência

  1. No console do Google Cloud, abra a página Transferir.

    Acessar a página "Transferir"

  2. Clique em Criar transferência.

  3. Clique em Bucket do Amazon S3.

  4. No campo Bucket do Amazon S3, insira o nome do bucket do Amazon S3 conforme aparece no AWS Management Console.

  5. Insira o ID da chave de acesso e a Chave secreta associados ao bucket do Amazon S3. Você copiou esses valores no início deste tutorial.

  6. Em Selecionar destino, insira o nome do bucket que você criou no perímetro, como project-id-destination-bucket.

  7. Para Configurar transferência, programe o job de transferência para Executar agora.

  8. Opcional: edite o nome do job de transferência.

  9. Para Descrição, use um nome exclusivo e descritivo para ajudar na identificação do job de transferência posteriormente.

  10. Clique em Criar.

Limpeza

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Exclua o projeto

  1. No Console do Google Cloud, acesse a página Gerenciar recursos.

    Acessar "Gerenciar recursos"

  2. Na lista de projetos, selecione o projeto que você quer excluir e clique em Excluir .
  3. Na caixa de diálogo, digite o ID do projeto e clique em Encerrar para excluí-lo.

A seguir