Como configurar permissões do Google Cloud e o Cloud Storage passo a passo

Este documento descreve como configurar as permissões do Google Cloud e o Cloud Storage passo a passo, incluindo:

  • Preparar o bucket de destino do Cloud Storage.
  • Preparar uma chave do Cloud Key Management Service para proteger seus dados.
  • Fornecer à equipe do Transfer Appliance os dados de configuração do bucket do Cloud Storage.

Antes de começar

Verifique se você recebeu um e-mail da equipe do Transfer Appliance com o título Permissões e armazenamento de preparação do Google Transfer Appliance. Este e-mail contém:

  • Os nomes das contas de serviço necessárias para a transferência.

  • Um ID de sessão que você vai precisar para configurar o dispositivo.

  • Um formulário que você vai preencher depois de configurar sua conta.

Preparar o bucket de destino do Cloud Storage

Para armazenar seus dados no Cloud Storage, você precisa preparar um bucket. Os buckets são os contêineres básicos que armazenam seus dados no Cloud Storage.

Usaremos duas contas de serviço para mover os dados do Transfer Appliance para o bucket do Cloud Storage de destino que você preparar. As contas de serviço são contas especiais usadas por um aplicativo, não uma pessoa, para fazer o trabalho. Nesse caso, as contas de serviço permitem que o Transfer Appliance use recursos do Cloud Storage em seu nome para copiar dados do dispositivo para o bucket do Cloud Storage. Você concederá a essas contas os papéis necessários para copiar dados do dispositivo para o bucket do Cloud Storage.

Para preparar o bucket de destino do Cloud Storage, siga estas etapas:

  1. Em um e-mail intitulado Bucket de destino de preparação do Google Transfer Appliance, a equipe do Transfer Appliance fornece as seguintes contas de serviço:

    • uma conta de serviço de sessão vinculada a essa transferência específica; Esta é a aparência do exemplo a seguir:

      ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

      Neste exemplo, SESSION_ID é o ID da sessão para esta transferência específica.

    • Um agente de serviço vinculado ao serviço de transferência de dados locais, que usamos para transferir dados do dispositivo para o bucket do Cloud Storage: É semelhante ao seguinte exemplo:

      project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com

      Neste exemplo, TENANT_IDENTIFIER é um número gerado específico para este projeto específico.

    Observe as contas de serviço para as próximas etapas.

    As contas de serviço permitem que o Transfer Appliance manipule recursos do Google Cloud em seu nome, ou seja, copie dados do dispositivo para o Cloud Storage. Você concederá a essas contas os papéis necessários para copiar dados do dispositivo para o bucket do Cloud Storage.

  2. Os buckets do Cloud Storage estão vinculados a projetos do Google Cloud. O bucket selecionado precisa estar no mesmo projeto usado para solicitar o dispositivo.

    Se você não tiver um bucket do Cloud Storage, crie um:

    Console do Google Cloud

    1. Abra a página "Buckets do Cloud Storage" no console do Google Cloud.

      Abra a página "Buckets do Cloud Storage"

    2. Clique em Criar bucket para abrir o formulário de criação do bucket.

    3. Insira as informações do bucket e clique em Continuar para concluir cada etapa:

    4. Clique em Concluído.

    Linha de comando

    Use o comando gcloud storage buckets create:

    gcloud storage buckets create gs://BUCKET_NAME --uniform-bucket-level-access --location=LOCATION --project=PROJECT_ID
    

    Neste exemplo:

    Não defina uma política de retenção no bucket.

  3. Para conceder permissão às contas de serviço do Transfer Appliance para usar seu bucket do Cloud Storage, faça o seguinte:

    Console do Google Cloud

    1. No Console do Google Cloud, acesse a página Buckets do Cloud Storage.

      Acessar buckets

    2. Clique no menu flutuante bucket () associado ao bucket para o qual você está concedendo ao principal um papel.

    3. Selecione Editar permissões do bucket.

    4. Clique no botão + Adicionar principais.

    5. No campo Novos principais, insira as seguintes identidades:

      • A conta de serviço da sessão. Esta é a aparência do exemplo a seguir:

        ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

        Neste exemplo, SESSION_ID é o ID da sessão para essa transferência específica.

      • O agente de serviço de transferência de dados locais. É semelhante ao seguinte exemplo:

        project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com

        Neste exemplo, TENANT_IDENTIFIER é um número gerado específico para esse projeto.

    6. No menu suspenso Selecionar um papel, selecione o papel Administrador do Storage.

      Os papéis selecionados são exibidos no painel com uma breve descrição das permissões que eles concedem.

    7. Clique em Save.

    Linha de comando

    Use o comando gcloud storage buckets add-iam-policy-binding:

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \
    --role=roles/storage.admin
    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
    --member=serviceAccount:project-TENANT_IDENTIFIER@storage-transfer-service.iam.gserviceaccount.com \
    --role=roles/storage.admin
    

    Neste exemplo:

    • BUCKET_NAME: o nome do bucket que você está criando.
    • SESSION_ID: o ID da sessão dessa transferência específica;
    • TENANT_IDENTIFIER: um número gerado específico para esse projeto.

Preparar a chave do Cloud KMS

O Transfer Appliance protege seus dados no dispositivo, criptografando os dados antes que você envie o dispositivo de volta para nós. Uma chave pública do Cloud Key Management Service (Cloud KMS) é usada para criptografar dados no Transfer Appliance, e uma chave privada é usada. para descriptografar seus dados.

Usaremos a conta de serviço da sessão do artigo Preparar o bucket do Cloud Storage de destino para fazer o upload dos dados do dispositivo para o bucket do Cloud Storage.

Você tem as seguintes opções para gerenciar chaves de criptografia:

  • Chaves de criptografia gerenciadas pelo Google. É possível solicitar a criação e o gerenciamento das chaves do Cloud KMS para você. Se você quiser usar esse método, conclua a configuração do projeto do Google Cloud e continue com as etapas descritas em Receber o dispositivo.

  • Crie e gerencie chaves de criptografia você mesmo. Você cria e gerencia as chaves de criptografia usadas para sua transferência seguindo as instruções abaixo. Prepare uma chave de descriptografia assimétrica do Cloud KMS e adicione a conta de serviço da sessão à chave. A conta de serviço da sessão usa a chave de descriptografia assimétrica para descriptografar e copiar seus dados para o Cloud Storage.

Para preparar as chaves do Cloud KMS, faça o seguinte:

  1. Se você não tiver um keyring do Cloud Key Management Service, siga estas etapas para criar um:

    Console do Google Cloud

    1. Acesse a página Chaves criptográficas no console do Google Cloud.

      Acessar a página "Chaves criptográficas"

    2. Clique em Criar keyring.

    3. No campo Nome do keyring, digite o nome do seu keyring.

    4. Na lista suspensa Local do keyring, selecione um local como "us-east1".

    5. Clique em Criar.

    Linha de comando

    gcloud kms keyrings create KEY_RING --location=LOCATION --project=PROJECT_ID
    

    Neste exemplo:

    • LOCATION: o local do Cloud Key Management Service para o keyring. Por exemplo, global.
    • KEY_RING: o nome do keyring.
    • PROJECT_ID: o ID do projeto do Google Cloud em que seu bucket de armazenamento está localizado.
  2. Crie uma chave de descriptografia assimétrica da seguinte maneira:

    Console do Google Cloud

    1. Acesse a página Chaves criptográficas no console do Google Cloud.

      Acessar a página "Chaves criptográficas"

    2. Clique no nome do keyring em que você quer criar a chave.

    3. Clique em Criar chave.

    4. Na seção Qual tipo de chave você quer criar?, selecione Chave gerada.

    5. No campo Nome da chave, insira o nome da sua chave.

    6. Clique na lista suspensa Nível de proteção e selecione Software.

    7. Clique na lista suspensa Finalidade e selecione Descriptografia assimétrica.

    8. Clique na lista suspensa Algoritmo e selecione RSA de 4096 bits - Padding OAEP - Resumo SHA256.

    9. Clique em Criar.

    Linha de comando

    Execute o seguinte comando para criar uma chave de descriptografia assimétrica:

    gcloud kms keys create KEY --keyring=KEY_RING \
    --location=LOCATION --purpose=asymmetric-encryption \
    --default-algorithm=rsa-decrypt-oaep-4096-sha256 \
    --project=PROJECT_ID
    

    Neste exemplo:

    • KEY: o nome da chave do Cloud Key Management Service. Por exemplo, ta-key.
    • KEY_RING: o nome do keyring.
    • LOCATION: o local do Cloud Key Management Service para o keyring. Por exemplo, global.
    • PROJECT_ID: o ID do projeto do Google Cloud em que seu bucket de armazenamento está localizado.
  3. Adicione a conta de serviço da sessão como principal à chave assimétrica da seguinte maneira:

    Console do Google Cloud

    1. Acesse a página Chaves criptográficas no console do Google Cloud.

      Acessar a página "Chaves criptográficas"

    2. Clique no keyring que contém a chave assimétrica.

    3. Marque a caixa de seleção da chave.

    4. No painel de informações, clique em Adicionar principal.

      A opção Adicionar principais é exibida.

    5. No campo Novos principais, insira a conta de serviço da sessão fornecida pela equipe do Transfer Appliance. Esta é a aparência do exemplo a seguir:

      ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com

      Neste exemplo, SESSION_ID é o ID da sessão para essa transferência específica.

    6. No campo Selecionar um papel, adicione o papel Visualizador de chaves públicas do Cloud KMS CryptoKey.

    7. Clique em Adicionar outro papel.

    8. No campo Selecionar um papel, adicione o papel Descriptografador de CryptoKey do Cloud KMS.

    9. Clique em Save.

    Linha de comando

    1. Execute o seguinte comando para conceder à conta de serviço da sessão o papel roles/cloudkms.cryptoKeyDecrypter:

      gcloud kms keys add-iam-policy-binding KEY \
      --keyring=KEY_RING --location=LOCATION \
      --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \
      --role=roles/cloudkms.cryptoKeyDecrypter
      

      Neste exemplo:

      • KEY: o nome da chave do Cloud Key Management Service. Por exemplo, ta-key.
      • KEY_RING: o nome do keyring.
      • LOCATION: o local do Cloud Key Management Service para o keyring. Por exemplo, global.
      • SESSION_ID: o ID da sessão dessa transferência específica;
    2. Execute o seguinte comando para conceder à conta de serviço da sessão o papel roles/cloudkms.publicKeyViewer:

      gcloud kms keys add-iam-policy-binding KEY \
      --keyring=KEY_RING --location=LOCATION \
      --member=serviceAccount:ta-SESSION_ID@transfer-appliance-zimbru.iam.gserviceaccount.com \
      --role=roles/cloudkms.publicKeyViewer
      

      Neste exemplo:

      • KEY: o nome da chave do Cloud Key Management Service. Por exemplo, ta-key.
      • KEY_RING: o nome do keyring.
      • LOCATION: o local do Cloud Key Management Service para o keyring. Por exemplo, global.
      • SESSION_ID: o ID da sessão dessa transferência específica;
  4. Veja o caminho da chave assimétrica fazendo o seguinte:

    Console do Google Cloud

    1. Acesse a página Chaves criptográficas no console do Google Cloud.

      Acessar a página "Chaves criptográficas"

    2. Clique no keyring que contém a chave de descriptografia assimétrica.

    3. Clique no nome da chave de descriptografia assimétrica.

    4. Selecione a versão da chave que você quer e clique em Mais .

    5. Clique em Copiar nome do recurso.

      Veja um exemplo do formato de chave:

      projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER

      Neste exemplo:

      • PROJECT_ID: o ID do projeto do Google Cloud em que seu bucket de armazenamento está localizado.
      • LOCATION: o local do Cloud Key Management Service para o keyring.
      • KEY_RING: o nome do keyring.
      • KEY: o nome da chave do Cloud Key Management Service.
      • VERSION_NUMBER: o número da versão da chave.

      A equipe do Transfer Appliance requer todo o caminho da chave, incluindo o número da versão, para que possa aplicar a chave correta aos dados.

    Linha de comando

    Execute o seguinte comando para listar o caminho completo da chave assimétrica, incluindo o número da versão:

    gcloud kms keys versions list --keyring=KEY_RING \
    --key=KEY --location=LOCATION \
    --project=PROJECT_ID
    

    Neste exemplo:

    • KEY_RING: o nome do keyring
    • KEY: o nome da chave assimétrica.
    • LOCATION: o local do keyring do Google Cloud.
    • PROJECT_ID: o ID do projeto do Google Cloud em que seu bucket de armazenamento está localizado.

    A resposta de exemplo a seguir é parecida com a saída retornada:

    NAME STATE
    projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY/cryptoKeyVersions/VERSION_NUMBER
    ENABLED
    

    Neste exemplo:

    • PROJECT_ID: o ID do projeto do Google Cloud em que seu bucket de armazenamento está localizado.
    • LOCATION: o local do Cloud Key Management Service para o keyring.
    • KEY_RING: o nome do keyring.
    • KEY: o nome da chave do Cloud Key Management Service.
    • VERSION_NUMBER: o número da versão da chave.

    A equipe do Transfer Appliance requer a string em NAME que termina em /cryptoKeyVersions/VERSION_NUMBER, em que VERSION_NUMBER é o número da versão da chave.

Fornecer os dados de configuração do bucket para a equipe do Transfer Appliance

Enviamos um e-mail intitulado Google Transfer Appliance Prepare Permissions and Storage para coletar informações sobre o bucket do Cloud Storage. Usamos as informações fornecidas para configurar a transferência do Transfer Appliance para o Cloud Storage.

No formulário vinculado a esse e-mail, insira as seguintes informações:

  • O ID do projeto do Google Cloud.
  • Escolha sua opção para Criptografia:
    • Chave de criptografia gerenciada pelo Google, se você optou por deixar o Google gerenciar sua chave.
    • Chave de criptografia gerenciada pelo cliente, se você escolheu gerenciar sua própria chave de criptografia. Selecione a chave de criptografia no menu suspenso Selecionar uma chave de criptografia gerenciada pelo cliente.
  • O nome do bucket de destino do Google Cloud Storage usado para essa transferência.
  • Opcional: um prefixo do objeto. Sem essa informação, os objetos são transferidos para o Cloud Storage com o caminho de origem, sem incluir o caminho raiz, antes do nome do arquivo no sistema. Por exemplo, se você tiver os seguintes arquivos:
    • /source_root_path/file1.txt
    • /source_root_path/dirA/file2.txt
    • /source_root_path/dirA/dirB/file3.txt
    Os nomes de objeto no Cloud Storage serão:
    • file1.txt
    • dirA/file2.txt
    • dirA/dirB/file3.txt
    O prefixo do objeto é adicionado ao nome de destino do objeto no Cloud Storage, depois do caractere / do nome do bucket de destino e antes dos nomes de caminhos de onde o objeto foi transferido, sem incluir o caminho raiz da origem. Isso pode ajudar você a distinguir entre objetos transferidos de outros jobs de transferência.

    A tabela a seguir demonstra vários exemplos de prefixos de objetos e os nomes de objetos resultantes no Cloud Storage, se o caminho do objeto de origem for /source_root_path/sub_folder_name/object_name:
    Prefixo Nome do objeto de destino
    Nenhum /destination_bucket/sub_folder_name/object_name
    prefix/ /destination_bucket/prefix/sub_folder_name/object_name

A seguir

Configure as portas de rede IP para que o Transfer Appliance funcione na sua rede.