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.

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.
  • Crie uma política e um nível de acesso usando o Access Context Manager.
  • Use o Serviço de transferência do Cloud Storage para mover dados entre o Amazon S3 e o Cloud Storage.
  • Programe o Serviço de transferência do Cloud Storage para recuperar dados em uma programação.

Custos

Neste tutorial, usamos 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 ser qualificados para uma avaliação gratuita.

Ao concluir este tutorial, exclua os recursos criados para evitar o faturamento contínuo. Para mais informações, consulte Como fazer a 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.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Cloud, na página do seletor de projetos, selecione ou crie um projeto do Cloud.

    Acessar a página do seletor de projetos

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

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

    Ative as APIs

  5. No Console do Cloud, ative o Cloud Shell.

    Ativar o Cloud Shell

    Na parte inferior do Console do Cloud, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente com o SDK do Cloud pré-instalado com a ferramenta de linha de comando gcloud e os valores já definidos para seu projeto atual. A inicialização da sessão pode levar alguns segundos.

  6. No Console do Cloud, acesse a página IAM e administrador para dar à sua conta os papéis de Administrador do Storage e Administrador do Access Context Manager.
    Acessar a página "IAM e administrador"
  7. 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 a seu 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.

Crie 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 Cloud, acesse Navegador do Cloud Storage.

    Acessar a página "Navegador do Cloud Storage"

  2. Clique em Create bucket.

  3. No campo Nome, 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 Local, clique em uma região em que os dados do bucket são armazenados.

  6. Clique em Criar

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

Você precisa determinar o nome da sua conta de serviço, porque ela será usada posteriormente neste tutorial. 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 está no seguinte formato: project-project-id@storage-transfer-service.iam.gserviceaccount.com

Como criar sua 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 sua organização. Uma organização pode ter apenas uma política de acesso.

  1. No Console do Cloud, acesse 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 saída é 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 seu perímetro do VPC Service Controls

Ao criar seu 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 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 um 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 relacione os membros aos quais você quer conceder acesso:

     - members:
         - serviceAccount:project-project-id@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-name
    
    • 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-name é o nome 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 membros 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-name/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 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 Save.

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 Cloud, acesse a página Transferir.

    Acessar a página "Transferir"

  2. Clique em Criar job de 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 em seu 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 que os recursos usados neste tutorial sejam cobrados na conta do Google Cloud Platform, faça o seguinte:

Excluir o projeto

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

    Acessar a página "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