Visão geral
O Cloud Storage é um recurso fundamental do Google Cloud com várias funcionalidades avançadas. Neste laboratório, você vai usar algumas funcionalidades do Cloud Storage que podem ser úteis para seus projetos. É possível interagir com o Cloud Storage usando o console do Google Cloud, a ferramenta de linha de comando gsutil ou as bibliotecas de cliente do Cloud Storage para várias linguagens de programação.
Objetivos
Neste laboratório, você aprenderá a fazer o seguinte:
- Criar e usar buckets do Cloud Storage
- Definir listas de controle para restringir o acesso
- Usar suas próprias chaves de criptografia
- Implementar controles de versão
- Usar a sincronização de diretórios
Configuração e requisitos
Para cada laboratório, você recebe um novo projeto do Google Cloud e um conjunto de recursos por um determinado período sem custo financeiro.
-
Clique no botão Começar o laboratório. Se for preciso pagar, você verá um pop-up para selecionar a forma de pagamento.
No painel Detalhes do laboratório à esquerda, você vai encontrar o seguinte:
- O botão Abrir console do Google Cloud
- O tempo restante
- As credenciais temporárias que você vai usar neste laboratório
- Outras informações, se forem necessárias
-
Se você estiver usando o navegador Chrome, clique em Abrir console do Google Cloud ou clique com o botão direito do mouse e selecione Abrir link em uma janela anônima.
O laboratório ativa os recursos e depois abre a página Fazer login em outra guia.
Dica: coloque as guias em janelas separadas lado a lado.
Observação: se aparecer a caixa de diálogo Escolher uma conta, clique em Usar outra conta.
-
Se necessário, copie o Nome de usuário abaixo e cole na caixa de diálogo Fazer login.
{{{user_0.username | "Nome de usuário"}}}
Você também encontra o Nome de usuário no painel Detalhes do laboratório.
-
Clique em Seguinte.
-
Copie a Senha abaixo e cole na caixa de diálogo de boas-vindas.
{{{user_0.password | "Senha"}}}
Você também encontra a Senha no painel Detalhes do laboratório.
-
Clique em Seguinte.
Importante: você precisa usar as credenciais fornecidas no laboratório, e não as da sua conta do Google Cloud.
Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
-
Acesse as próximas páginas:
- Aceite os Termos e Condições.
- Não adicione opções de recuperação nem autenticação de dois fatores (porque essa é uma conta temporária).
- Não se inscreva em testes gratuitos.
Depois de alguns instantes, o console do Google Cloud será aberto nesta guia.
Observação: clique em Menu de navegação no canto superior esquerdo para acessar uma lista de produtos e serviços do Google Cloud.
Tarefa 1: preparar o ambiente do laboratório
Na tarefa, você vai criar um bucket do Cloud Storage. Em seguida, baixe um arquivo de exemplo que será usado na próxima tarefa.
Crie um bucket do Cloud Storage
- No console do Google Cloud, acesse o Menu de navegação (
) e clique em Cloud Storage > Buckets.
Observação: um bucket precisa ter um nome exclusivo em nível global. É possível usar parte do seu PROJECT_ID_1 no nome para torná-lo exclusivo. Por exemplo, se o PROJECT_ID_1 for myproj-154920, o nome do bucket pode ser storecore154920
- Clique em Criar.
- Especifique o seguinte, clique em Continuar após cada campo e deixe todas as configurações restantes com os valores padrão.
| Propriedade |
Valor (digite ou selecione) |
| Nome |
Insira um nome exclusivo globalmente |
| Tipo de local |
Região |
| Região |
|
| Controle de acesso |
Detalhado (permissões no nível do objeto, além das permissões no nível do bucket) |
- Clique em Criar.
- Em "O acesso público será bloqueado", desmarque
Enforce public access prevention on this bucket (Aplicar a prevenção do acesso público neste bucket) e clique em Confirmar.
- Anote o nome do bucket. Ele será usado posteriormente neste laboratório e indicado como [BUCKET_NAME_1].
Clique em Verificar meu progresso para conferir o objetivo.
Criar um bucket do Cloud Storage
Faça o download de um arquivo de exemplo usando CURL e depois faça duas cópias
- No console do Cloud, clique em Ativar o Cloud Shell (
).
- Se solicitado, clique em Continuar > Autorizar.
- Armazene [BUCKET_NAME_1] em uma variável de ambiente:
export BUCKET_NAME_1=enter bucket name 1 here
- Verifique usando o comando "echo":
echo $BUCKET_NAME_1
- Execute o comando a seguir para fazer o download de um arquivo de exemplo (nesse caso, um arquivo HTML público da documentação do Hadoop):
curl \
https://hadoop.apache.org/docs/current/\
hadoop-project-dist/hadoop-common/\
ClusterSetup.html > setup.html
- Para fazer as cópias do arquivo, execute os seguintes comandos:
cp setup.html setup2.html
cp setup.html setup3.html
Tarefa 2: listas de controle de acesso (ACLs)
Nesta tarefa, você vai definir listas de controle de acesso para restringir o acesso ao arquivo copiado para o bucket do Cloud Storage.
Copie o arquivo para o bucket e configure a lista de controle de acesso
- Copie o primeiro arquivo para o bucket executando o seguinte comando:
gcloud storage cp setup.html gs://$BUCKET_NAME_1/
- Para conseguir a lista de acesso padrão atribuída a setup.html, execute o seguinte comando:
gcloud storage objects get-iam-policy gs://$BUCKET_NAME_1/setup.html > acl.txt
cat acl.txt
- Para definir a lista de acesso como privada e verificar os resultados, execute os seguintes comandos:
gcloud storage objects update gs://$BUCKET_NAME_1/setup.html --predefined-acl=private
gcloud storage objects get-iam-policy gs://$BUCKET_NAME_1/setup.html > acl2.txt
cat acl2.txt
- Para atualizar a lista de acesso e tornar o arquivo publicamente legível, execute os seguintes comandos:
gcloud storage objects add-iam-policy-binding gs://$BUCKET_NAME_1/setup.html \
--member="allUsers" \
--role="roles/storage.legacyObjectReader"
gcloud storage objects get-iam-policy gs://$BUCKET_NAME_1/setup.html > acl3.txt
cat acl3.txt
Clique em Verificar meu progresso para conferir o objetivo.
Permitir que qualquer usuário leia o arquivo.
Analise o arquivo no console do Cloud
- No console do Google Cloud, acesse o Menu de navegação (
) e clique em Cloud Storage > Buckets.
- Clique em [BUCKET_NAME_1].
- Na seção Acesso público do arquivo
setup.html, verifique se há um link público disponível.
Observação: se você não conseguir ver o link público, atualize a página.
Exclua o arquivo local e copie o do Cloud Storage
- Volte para o Cloud Shell. Se for necessário, clique em Ativar o Cloud Shell (
).
- Execute este comando para excluir o arquivo de configuração:
rm setup.html
- Para verificar se o arquivo foi excluído, execute o seguinte comando:
ls
- Para copiar o arquivo do bucket novamente, execute o seguinte comando:
gcloud storage cp gs://$BUCKET_NAME_1/setup.html setup.html
Tarefa 3: chaves de criptografia fornecidas pelo cliente (CSEK)
Nesta tarefa, você vai gerar uma chave CSEK para criptografar os arquivos armazenados no bucket do Cloud Storage.
Gere uma chave CSEK
Para a próxima etapa, você precisa de uma chave AES-256 codificada em base64.
- Execute este comando para criar uma chave:
python3 -c 'import base64; import os; print(base64.encodebytes(os.urandom(32)))'
Resultado (este é um exemplo de resposta):
b'tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=\n'
- Copie o valor da chave gerada excluindo
b' e \n' da resposta ao comando. A chave deve ter o formato tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=.
Modifique o arquivo boto
Os controles de criptografia estão em um arquivo de configuração gsutil chamado .boto.
- Execute estes comandos para ver e abrir o arquivo boto:
ls -al
nano .boto
Observação: se o arquivo .boto estiver vazio, feche o editor nano pressionando Ctrl+X e gere um novo arquivo .boto usando o comando gsutil config -n. Depois tente mais uma vez usar os comandos acima para abrir o arquivo.
Se o arquivo .boto ainda estiver vazio, tente localizá-lo com o comando gsutil version -l.
- Use "
#encryption_key=" para localizar a linha.
Observação: na parte de baixo do editor nano, você pode usar atalhos para navegar rapidamente pelos arquivos. Use o atalho Onde está para localizar a linha com #encryption_key=.
- Remova a marca de comentário da linha removendo o caractere # e cole a chave gerada anteriormente no final.
Exemplo (este é um exemplo):
Antes:
# encryption_key=
Depois:
encryption_key=tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=
- Pressione Ctrl+O, ENTER para salvar o arquivo boto e depois pressione Ctrl+X para sair do nano.
Faça upload dos arquivos de configuração restantes (criptografados) e verifique o progresso no console do Cloud
-
Volte ao console do Cloud.
-
Para fazer upload dos arquivos setup.html restantes, execute os seguintes comandos:
gsutil kms encryption -d gs://$BUCKET_NAME_1
gcloud storage cp setup2.html gs://$BUCKET_NAME_1/
gcloud storage cp setup3.html gs://$BUCKET_NAME_1/
- Clique em [BUCKET_NAME_1]. Os arquivos
setup2.html e setup3.html indicam que foram criptografados pelo cliente.
Clique em Verificar meu progresso para conferir o objetivo.
Chaves de criptografia fornecidas pelo cliente (CSEK)
Exclua os arquivos locais, copie os novos arquivos e verifique a criptografia
- Para excluir os arquivos locais, execute este comando no Cloud Shell:
rm setup*
- Para copiar os arquivos do bucket novamente, execute o seguinte comando:
gcloud storage cp gs://$BUCKET_NAME_1/setup* ./
- Para usar o comando cat nos arquivos criptografados e ver se eles retornaram, execute os seguintes comandos:
cat setup.html
cat setup2.html
cat setup3.html
Tarefa 4: alternar as chaves CSEK
Nesta tarefa, você vai alternar a CSEK usada para criptografar os dados no Cloud Storage, garantindo a segurança contínua dos dados.
Mude a chave de criptografia CSEK atual para a chave de descriptografia
- Execute este comando para abrir o arquivo
.boto:
nano .boto
- Adicione o caractere # ao começo da linha
encryption\_key atual para convertê-la em comentário.
Observação: na parte de baixo do editor nano, você pode usar atalhos para navegar rapidamente pelos arquivos. Use o atalho Onde está para localizar a linha com encryption_key=.
- Remova a marca de comentário
decryption\_key1 removendo o caractere # e copie a chave atual da linha encryption\_key para a linha decryption\_key1.
Resultado (este é um exemplo de resposta):
Antes:
encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=
# decryption_key1=
Depois:
# encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=
decryption_key1=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=
- Pressione Ctrl+O, ENTER para salvar o arquivo boto e depois pressione Ctrl+X para sair do nano.
Observação: na prática, é possível excluir a chave CSEK antiga da linha encryption_key.
Gere outra chave CSEK e a adicione ao arquivo boto
- Execute este comando para gerar uma chave nova:
python3 -c 'import base64; import os; print(base64.encodebytes(os.urandom(32)))'
- Copie o valor da chave gerada excluindo
b' e \n' da resposta ao comando. A chave deve ter o formato tmxElCaabWvJqR7uXEWQF39DhWTcDvChzuCmpHe6sb0=.
- Para abrir o arquivo boto, execute o seguinte comando:
nano .boto
- Remova a marca de comentário da criptografia e cole o novo valor da chave em
encryption_key=.
Resultado (este é um exemplo de resposta):
Antes:
# encryption_key=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=
Depois:
encryption_key=HbFK4I8CaStcvKKIx6aNpdTse0kTsfZNUjFpM+YUEjY=
- Pressione Ctrl+O, ENTER para salvar o arquivo boto e depois pressione Ctrl+X para sair do nano.
Reescreva a chave do arquivo 1 e marque como um comentário a antiga chave de descriptografia
Quando você reescreve um arquivo criptografado, a criptografia é removida por decryption_key1, que você definiu anteriormente, e o arquivo é criptografado depois com a nova encryption_key.
Você está reescrevendo a chave do setup2.html, mas não do setup3.html, para poder ver o que acontece se não alternar as chaves corretamente.
- Execute este comando:
gcloud storage objects update gs://$BUCKET_NAME_1/setup2.html
- Para abrir o arquivo boto, execute o seguinte comando:
nano .boto
- Adicione novamente o caractere # à linha
decryption\_key1 atual para convertê-la em comentário.
Resultado (este é um exemplo de resposta):
Antes:
decryption_key1=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=
Depois:
# decryption_key1=2dFWQGnKhjOcz4h0CudPdVHLG2g+OoxP8FQOIKKTzsg=
- Pressione Ctrl+O, ENTER para salvar o arquivo boto e depois pressione Ctrl+X para sair do nano.
Observação: na prática, é possível excluir a chave CSEK antiga da linha decryption_key1.
Faça o download de setup2 e setup3
- Para fazer o download de setup2.html, execute o seguinte comando:
gcloud storage cp gs://$BUCKET_NAME_1/setup2.html recover2.html
- Para fazer o download de setup3.html, execute o seguinte comando:
gcloud storage cp gs://$BUCKET_NAME_1/setup3.html recover3.html
Observação: o que aconteceu? O arquivo setup3.html não foi reescrito com a nova chave e, por isso, não pode mais ser descriptografado. Dessa forma, a cópia vai falhar. As chaves CSEK foram alternadas.
Tarefa 5: ativar o gerenciamento de ciclo de vida
Nesta tarefa, você vai ativar o gerenciamento do ciclo de vida de um bucket do Cloud Storage para automatizar a exclusão de objetos depois de um período especificado.
Veja a política atual do ciclo de vida do bucket
- Execute este comando para ver a política de ciclo de vida atual:
gcloud storage buckets describe gs://$BUCKET_NAME_1 --format="json(lifecycle)"
Observação: o ciclo de vida não foi configurado. Você vai criar um nas próximas etapas.
Crie um arquivo JSON de política de ciclo de vida
- Para criar um arquivo chamado life.json, execute o seguinte comando:
nano life.json
Observação: também é possível usar o editor do Cloud Shell para criar esse arquivo.
- Cole o seguinte valor no arquivo life.json:
{
"rule":
[
{
"action": {"type": "Delete"},
"condition": {"age": 31}
}
]
}
Observação: de acordo com estas instruções, o Cloud Storage precisa excluir o objeto após 31 dias.
- Pressione Ctrl+O, ENTER para salvar o arquivo e depois pressione Ctrl+X para sair do nano.
Defina a política e verifique
- Para definir a política, execute o seguinte comando:
gcloud storage buckets update gs://$BUCKET_NAME_1 --lifecycle-file=life.json
- Para verificar a política, execute o seguinte comando:
gcloud storage buckets describe gs://$BUCKET_NAME_1 --format="json(lifecycle_config)"
Clique em Verificar meu progresso para conferir o objetivo.
Ativar o gerenciamento de ciclo de vida
Tarefa 6: ativar o controle de versões
Nesta tarefa, você vai ativar o controle de versões em um bucket do Cloud Storage para proteger os dados contra exclusão ou modificação acidental.
Veja o status da versão do bucket e ative o controle de versões
- Execute este comando para ver o status atual do controle de versões do bucket:
gcloud storage buckets describe gs://$BUCKET_NAME_1 --format="json(versioning)"
Observação: uma política suspensa significa que não está ativado.
- Para ativar o controle de versões, execute o seguinte comando:
gcloud storage buckets update gs://$BUCKET_NAME_1 --versioning
- Para verificar se o controle de versões foi ativado, execute o seguinte comando:
gcloud storage buckets describe gs://$BUCKET_NAME_1 --format="json(versioning_enabled)"
Clique em Verificar meu progresso para conferir o objetivo.
Ativar o controle de versões
Crie várias versões do arquivo de amostra no bucket
- Verifique o tamanho do arquivo de amostra:
ls -al setup.html
- Abra o arquivo setup.html:
nano setup.html
- Exclua 5 linhas do setup.html para alterar o tamanho do arquivo.
- Pressione Ctrl+O, ENTER para salvar o arquivo e depois pressione Ctrl+X para sair do nano.
- Copie o arquivo para o bucket com a opção -v do controle de versões:
gcloud storage cp -v setup.html gs://$BUCKET_NAME_1
- Abra o arquivo setup.html:
nano setup.html
- Exclua outras cinco linhas do setup.html para alterar o tamanho do arquivo.
- Pressione Ctrl+O, ENTER para salvar o arquivo e depois pressione Ctrl+X para sair do nano.
- Copie o arquivo para o bucket com a opção -v do controle de versões:
gcloud storage cp -v setup.html gs://$BUCKET_NAME_1
Liste todas as versões do arquivo
- Para listar todas as versões do arquivo, execute o seguinte comando:
gcloud storage ls -a gs://$BUCKET_NAME_1/setup.html
- Destaque e copie o nome da versão mais antiga do arquivo (a primeira listada), indicada como [VERSION_NAME] na próxima etapa.
Observação: copie o caminho completo do arquivo, que começa com gs://
- Armazene o valor da versão na variável de ambiente [VERSION_NAME].
export VERSION_NAME=Enter VERSION name here
- Verifique usando o comando "echo":
echo $VERSION_NAME
Resultado (este é um exemplo de resposta):
gs://BUCKET_NAME_1/setup.html#1584457872853517
Faça o download da versão original mais antiga do arquivo e verifique a recuperação
- Faça o download da versão original do arquivo:
gcloud storage cp $VERSION_NAME recovered.txt
- Para verificar a recuperação, execute os seguintes comandos:
ls -al setup.html
ls -al recovered.txt
Observação: você recuperou o arquivo original da versão de backup. O original é maior do que a versão atual porque foram excluídas algumas linhas.
Tarefa 7: sincronizar um diretório com um bucket
Nesta tarefa, você vai sincronizar um diretório local e os subdiretórios com um bucket do Cloud Storage usando o comando gsutil rsync.
Crie um diretório aninhado e o sincronize com um bucket
Crie uma estrutura de diretórios aninhada para poder examinar o que acontece quando ela é copiada recursivamente para um bucket.
- Execute os comandos a seguir:
mkdir firstlevel
mkdir ./firstlevel/secondlevel
cp setup.html firstlevel
cp setup.html firstlevel/secondlevel
- Para sincronizar o diretório de primeiro nível da VM com o bucket, execute este comando:
gcloud storage rsync ./firstlevel gs://$BUCKET_NAME_1/firstlevel --recursive
Veja os resultados
- No console do Google Cloud, acesse o Menu de navegação (
) e clique em Cloud Storage > Buckets.
- Clique em [BUCKET_NAME_1]. Observe as subpastas no bucket.
- Clique em /firstlevel e depois em /secondlevel.
- Compare o que você vê no console do Cloud com os resultados deste comando:
gcloud storage ls -r gs://$BUCKET_NAME_1/firstlevel
- Saia do Cloud Shell:
exit
Tarefa 8: revisar
Neste laboratório, você aprendeu a criar e trabalhar com buckets e objetos e aprendeu sobre os seguintes recursos do Cloud Storage:
- Chave de criptografia fornecida pelo cliente (CSEK, na sigla em inglês)
- Usar suas próprias chaves de criptografia
- Alternar chaves
- Lista de controle de acesso (ACL, na sigla em inglês)
- Definir uma ACL como particular e torná-la pública
- Gerenciamento do ciclo de vida
- Definir uma política para excluir objetos após 31 dias
- Controle de versões
- Criar uma versão e restaurar uma versão anterior
- Sincronização de diretórios
- Sincronizar repetidamente um diretório de VM com um bucket
Finalize o laboratório
Após concluir o laboratório, clique em Terminar o laboratório. O Google Skills remove os recursos usados e limpa a conta para você.
Você poderá classificar sua experiência neste laboratório. Basta selecionar o número de estrelas, digitar um comentário e clicar em Enviar.
O número de estrelas indica o seguinte:
- 1 estrela = muito insatisfeito
- 2 estrelas = insatisfeito
- 3 estrelas = neutro
- 4 estrelas = satisfeito
- 5 estrelas = muito satisfeito
Feche a caixa de diálogo se não quiser enviar feedback.
Para enviar seu feedback, fazer sugestões ou correções, use a guia Suporte.
Copyright 2026 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de empresas e produtos podem ser marcas registradas das empresas a que estão associados.