Configurar as autorizações do Google Cloud e o Cloud Storage passo a passo

Este documento descreve a configuração das Google Cloud autorizações e do Cloud Storage passo a passo, incluindo:

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

Antes de começar

Certifique-se de que tem um email da equipa do Transfer Appliance com o assunto Google Transfer Appliance: prepare as autorizações e o armazenamento. Este email contém:

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

  • Um ID da sessão que tem de configurar no seu dispositivo.

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

Prepare o contentor de destino do Cloud Storage

Para armazenar os seus dados no Cloud Storage, tem de preparar um contentor. Os contentores são os contentores básicos que contêm os seus dados no Cloud Storage.

Usamos duas contas de serviço para mover os seus dados do Transfer Appliance para o contentor do Cloud Storage de destino que preparar. As contas de serviço são contas especiais usadas por uma aplicação, e não por uma pessoa, para realizar tarefas. Neste 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 seu contentor do Cloud Storage. Concede a estas contas as funções necessárias para copiar dados do dispositivo para o seu contentor do Cloud Storage.

Para preparar o contentor do Cloud Storage de destino, siga estes passos:

  1. Num email com o assunto Google Transfer Appliance Prepare Destination Bucket, a equipa do Transfer Appliance envia-lhe as seguintes contas de serviço:

    • Uma conta de serviço de sessão associada a esta transferência específica. Tem o seguinte aspeto:

      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 associado ao serviço de transferência para o serviço de dados nas instalações, que usamos para transferir dados do dispositivo para o seu contentor do Cloud Storage. Tem um aspeto semelhante ao seguinte exemplo:

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

      Neste exemplo, TENANT_IDENTIFIER é um número gerado específico deste projeto em particular.

    Tome nota das contas de serviço para os passos seguintes.

    As contas de serviço permitem que o Transfer Appliance manipule Google Cloud recursos em seu nome, nomeadamente para copiar dados do dispositivo para o Cloud Storage. Concede a estas contas as funções necessárias para copiar dados do dispositivo para o seu contentor do Cloud Storage.

  2. Os contentores do Cloud Storage estão associados a projetos do Google Cloud . O contentor que selecionar tem de estar no mesmo projeto que foi usado para encomendar o eletrodoméstico.

    Se não tiver um contentor do Cloud Storage, crie um:

    Google Cloud Consola

    1. Abra a página Baldes do Cloud Storage na Google Cloud consola.

      Abra a página Contentores do Cloud Storage

    2. Clique em Criar grupo para abrir o formulário de criação de grupos.

    3. Introduza as informações do contentor e clique em Continuar para concluir cada passo:

    4. Clique em Concluído.

    Linha de comandos

    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 contentor.

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

    Google Cloud Consola

    1. Na Google Cloud consola, aceda à página Recipientes do Cloud Storage.

      Aceda aos contentores

    2. Clique no menu Adicional do contentor () associado ao contentor ao qual está a conceder uma função ao principal.

    3. Escolha Editar autorizações do contentor.

    4. Clique no botão + Adicionar diretores.

    5. No campo Novos responsáveis, introduza as seguintes identidades:

      • A conta de serviço da sessão. Tem o seguinte aspeto:

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

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

      • O serviço de transferência para o agente de serviço de dados nas instalações. Tem um aspeto semelhante ao seguinte exemplo:

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

        Neste exemplo, TENANT_IDENTIFIER é um número gerado específico deste projeto em particular.

    6. No menu pendente Selecionar uma função, selecione a função Administrador de armazenamento.

      As funções que selecionar aparecem no painel com uma breve descrição das autorizações que concedem.

    7. Clique em Guardar.

    Linha de comandos

    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 contentor que está a criar.
    • SESSION_ID: o ID da sessão desta transferência específica.
    • TENANT_IDENTIFIER: um número gerado específico deste projeto em particular.

Prepare a chave do Cloud KMS

O Transfer Appliance protege os seus dados no dispositivo encriptando-os antes de nos enviar o dispositivo de volta. É usada uma chave pública do Cloud Key Management Service (Cloud KMS) para encriptar os seus dados no Transfer Appliance, e é usada uma chave privada para desencriptar os seus dados.

Usamos a conta de serviço da sessão de Preparar o contentor do Cloud Storage de destino para carregar os dados do dispositivo para o seu contentor do Cloud Storage.

Tem as seguintes opções para gerir chaves de encriptação:

  • Google-owned and Google-managed encryption keys. Pode pedir-nos que criemos e gerimos as chaves do Cloud KMS por si. Se quiser usar este método, a configuração do projeto está concluída e pode continuar com os passos descritos em Receba o seu dispositivo. Google Cloud

  • Crie e faça a gestão das chaves de encriptação. Siga as instruções abaixo para criar e gerir as chaves de encriptação usadas para a sua transferência. Prepara uma chave de desencriptação assimétrica do Cloud KMS e adiciona a conta de serviço da sessão à chave. A conta de serviço da sessão usa a chave de desencriptação assimétrica para desencriptar e copiar os seus dados para o Cloud Storage.

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

  1. Se não tiver um conjunto de chaves do Cloud Key Management Service, faça o seguinte para criar um:

    Google Cloud Consola

    1. Aceda à página Chaves criptográficas na Google Cloud consola.

      Aceda à página Chaves criptográficas

    2. Clique em Criar conjunto de chaves.

    3. No campo Nome do conjunto de chaves, introduza o nome pretendido para o conjunto de chaves.

    4. No menu pendente Localização do porta-chaves, selecione uma localização, como "us-east1".

    5. Clique em Criar.

    Linha de comandos

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

    Neste exemplo:

    • LOCATION: a localização do Cloud Key Management Service para o conjunto de chaves. Por exemplo, global.
    • KEY_RING: o nome do conjunto de chaves.
    • PROJECT_ID: o Google Cloud ID do projeto no qual o seu contentor de armazenamento se encontra.
  2. Crie uma chave de desencriptação assimétrica da seguinte forma:

    Google Cloud Consola

    1. Aceda à página Chaves criptográficas na Google Cloud consola.

      Aceda à página Chaves criptográficas

    2. Clique no nome do conjunto de chaves para o qual quer criar uma chave.

    3. Clique em Criar chave.

    4. Na secção Que tipo de chave quer criar?, escolha Chave gerada.

    5. No campo Nome da chave, introduza o nome da chave.

    6. Clique no menu pendente Nível de proteção e selecione Software.

    7. Clique no menu pendente Finalidade e selecione Desencriptação assimétrica.

    8. Clique no menu pendente Algoritmo e selecione RSA de 4096 bits – Preenchimento OAEP – Resumo SHA256

    9. Clique em Criar.

    Linha de comandos

    Execute o seguinte comando para criar uma chave de desencriptação 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 conjunto de chaves.
    • LOCATION: a localização do Cloud Key Management Service para o conjunto de chaves. Por exemplo, global.
    • PROJECT_ID: o Google Cloud ID do projeto no qual o seu contentor de armazenamento se encontra.
  3. Adicione a conta de serviço da sessão como principal à chave assimétrica da seguinte forma:

    Google Cloud Consola

    1. Aceda à página Chaves criptográficas na Google Cloud consola.

      Aceda à página Chaves criptográficas

    2. Clique no conjunto de chaves que contém a sua chave assimétrica.

    3. Selecione a caixa de verificação da chave assimétrica.

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

      É apresentado o ecrã Adicionar diretores.

    5. No campo Novos membros, introduza o endereço de email da conta de serviço da sessão fornecido pela equipa do Transfer Appliance. Tem o seguinte aspeto:

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

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

    6. No campo Selecionar uma função, adicione a função Visualizador de chaves públicas de CryptoKey do Cloud KMS.

    7. Clique em Adicionar outra função.

    8. No campo Selecionar uma função, adicione a função Cloud KMS CryptoKey Decrypter.

    9. Clique em Guardar.

    Linha de comandos

    1. Execute o seguinte comando para conceder à conta de serviço da sessão a função 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 conjunto de chaves.
      • LOCATION: a localização do Cloud Key Management Service para o conjunto de chaves. Por exemplo, global.
      • SESSION_ID: o ID da sessão desta transferência específica.
    2. Execute o seguinte comando para conceder à conta de serviço da sessão a função 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 conjunto de chaves.
      • LOCATION: a localização do Cloud Key Management Service para o conjunto de chaves. Por exemplo, global.
      • SESSION_ID: o ID da sessão desta transferência específica.
  4. Faça o seguinte para obter o caminho da sua chave assimétrica:

    Google Cloud Consola

    1. Aceda à página Chaves criptográficas na Google Cloud consola.

      Aceda à página Chaves criptográficas

    2. Clique no conjunto de chaves que contém a sua chave de desencriptação assimétrica.

    3. Clique no nome da chave de desencriptação assimétrica.

    4. Selecione a versão da chave pretendida e clique em Mais .

    5. Clique em Copiar nome do recurso.

      Um exemplo do formato da chave é:

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

      Neste exemplo:

      • PROJECT_ID: o Google Cloud ID do projeto no qual o seu contentor de armazenamento se encontra.
      • LOCATION: a localização do Cloud Key Management Service para o conjunto de chaves.
      • KEY_RING: o nome do conjunto de chaves.
      • KEY: o nome da chave do Cloud Key Management Service.
      • VERSION_NUMBER: o número da versão da chave.

      A equipa do Transfer Appliance requer o caminho completo da chave, incluindo o número da versão, para poder aplicar a chave correta aos seus dados.

    Linha de comandos

    Execute o seguinte comando para apresentar o caminho completo da sua 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 seu conjunto de chaves.
    • KEY: o nome da sua chave assimétrica.
    • LOCATION: a Google Cloud localização do conjunto de chaves.
    • PROJECT_ID: O ID do projeto no qual se encontra o seu contentor de armazenamento. Google Cloud

    A seguinte resposta de exemplo assemelha-se ao resultado devolvido:

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

    Neste exemplo:

    • PROJECT_ID: o Google Cloud ID do projeto no qual o seu contentor de armazenamento se encontra.
    • LOCATION: a localização do Cloud Key Management Service para o conjunto de chaves.
    • KEY_RING: o nome do conjunto de chaves.
    • KEY: o nome da chave do Cloud Key Management Service.
    • VERSION_NUMBER: o número da versão da chave.

    A equipa do Transfer Appliance precisa da string abaixo de NAME que termina em /cryptoKeyVersions/VERSION_NUMBER, onde VERSION_NUMBER é o número da versão da sua chave.

Faculte à equipa do Transfer Appliance dados de configuração do contentor

Enviamos um email com o assunto Google Transfer Appliance: prepare as autorizações e o armazenamento para recolher informações sobre o seu contentor do Cloud Storage. Usamos as informações que faculta para configurar a transferência do Transfer Appliance para o Cloud Storage.

No formulário com o link desse email, introduza as seguintes informações:

  • O Google Cloud ID do projeto.
  • Selecione a sua escolha para Encriptação:
    • Google-owned and Google-managed encryption key, se optou por que a Google faça a gestão da sua chave de encriptação.
    • Chave de encriptação gerida pelo cliente, se optou por gerir a sua própria chave de encriptação. Selecione a chave de encriptação pretendida no menu pendente Selecionar uma chave de encriptação gerida pelo cliente.
  • O Google Cloud nome do contentor de destino do Cloud Storage usado para esta transferência.
  • Opcional: um prefixo de objeto. Sem um prefixo de objeto, os objetos são transferidos para o Cloud Storage com o caminho de origem, sem incluir o caminho raiz, antes do nome do ficheiro no sistema de ficheiros. Por exemplo, se tiver os seguintes ficheiros:
    • /source_root_path/file1.txt
    • /source_root_path/dirA/file2.txt
    • /source_root_path/dirA/dirB/file3.txt
    Em seguida, os nomes dos objetos no Cloud Storage são:
    • file1.txt
    • dirA/file2.txt
    • dirA/dirB/file3.txt
    O prefixo do objeto é adicionado ao nome de destino do objeto no Cloud Storage, após o caráter / do nome do contentor de destino e antes de quaisquer nomes de caminhos a partir dos quais o objeto foi transferido, excluindo o caminho raiz da origem. Isto pode ajudar a distinguir entre objetos transferidos de outras tarefas de transferência.

    A tabela seguinte 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

O que se segue?

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