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:
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.
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
Abra a página "Buckets do Cloud Storage" no console do Google Cloud.
Clique em Criar bucket para abrir o formulário de criação do bucket.
Insira as informações do bucket e clique em Continuar para concluir cada etapa:
Especifique um Nome, sujeito aos requisitos de nomenclatura do bucket.
Selecione uma classe de armazenamento padrão para o bucket. A classe de armazenamento padrão é atribuída por padrão a todos os objetos carregados no bucket. Em seguida, selecione um Local para os dados do bucket.
Selecione um modelo de controle de acesso para determinar como controlar o acesso aos objetos do bucket.
Opcionalmente, é possível adicionar rótulos de bucket e escolher um método de criptografia.
Não defina uma política de retenção no bucket.
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:
BUCKET_NAME
: o nome do bucket que você está criando, sujeito aos requisitos de nomenclatura de bucket.LOCATION
: o local do bucket do Cloud StoragePROJECT_ID
: o ID do projeto em que o bucket será criado;
Não defina uma política de retenção no bucket.
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
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
Clique no menu flutuante bucket () associado ao bucket para o qual você está concedendo ao principal um papel.
Selecione Editar permissões do bucket.
Clique no botão + Adicionar principais.
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.
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.
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.
- No Console do Google Cloud, acesse a página Buckets do Cloud Storage.
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:
Se você não tiver um keyring do Cloud Key Management Service, siga estas etapas para criar um:
Console do Google Cloud
Acesse a página Chaves criptográficas no console do Google Cloud.
Clique em Criar keyring.
No campo Nome do keyring, digite o nome do seu keyring.
Na lista suspensa Local do keyring, selecione um local como
"us-east1"
.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.
Crie uma chave de descriptografia assimétrica da seguinte maneira:
Console do Google Cloud
Acesse a página Chaves criptográficas no console do Google Cloud.
Clique no nome do keyring em que você quer criar a chave.
Clique em Criar chave.
Na seção Qual tipo de chave você quer criar?, selecione Chave gerada.
No campo Nome da chave, insira o nome da sua chave.
Clique na lista suspensa Nível de proteção e selecione Software.
Clique na lista suspensa Finalidade e selecione Descriptografia assimétrica.
Clique na lista suspensa Algoritmo e selecione RSA de 4096 bits - Padding OAEP - Resumo SHA256.
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.
Adicione a conta de serviço da sessão como principal à chave assimétrica da seguinte maneira:
Console do Google Cloud
Acesse a página Chaves criptográficas no console do Google Cloud.
Clique no keyring que contém a chave assimétrica.
Marque a caixa de seleção da chave.
No painel de informações, clique em Adicionar principal.
A opção Adicionar principais é exibida.
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.No campo Selecionar um papel, adicione o papel Visualizador de chaves públicas do Cloud KMS CryptoKey.
Clique em Adicionar outro papel.
No campo Selecionar um papel, adicione o papel Descriptografador de CryptoKey do Cloud KMS.
Clique em Save.
Linha de comando
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;
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;
Veja o caminho da chave assimétrica fazendo o seguinte:
Console do Google Cloud
Acesse a página Chaves criptográficas no console do Google Cloud.
Clique no keyring que contém a chave de descriptografia assimétrica.
Clique no nome da chave de descriptografia assimétrica.
Selecione a versão da chave que você quer e clique em Mais more_vert.
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 keyringKEY
: 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 queVERSION_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
file1.txt
dirA/file2.txt
dirA/dirB/file3.txt
/
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.