arrow_back

Como proteger o Google Cloud usando o CFT Scorecard

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Como proteger o Google Cloud usando o CFT Scorecard

Lab 40 minutos universal_currency_alt 1 crédito show_chart Introdutório
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP698

Laboratórios autoguiados do Google Cloud

Visão geral

O CFT Scorecard é um cliente de linha de comando de código aberto do Forseti Config Validator e parte do Cloud Foundation Toolkit (links em inglês), que é mais amplo. Ele permite detectar configurações incorretas e violações de um conjunto estabelecido de padrões para recursos, projetos, pastas ou até organizações do Google Cloud.

São mais de 86 tipos de recursos no Google Cloud, e eles continuam aumentando. Com a mudança para a nuvem pública, nunca foi tão simples federar as operações de nuvem e a implantação de recursos para muitos usuários. Além da federação e da agilidade para implantar a infraestrutura, os recursos e as políticas, está ficando cada vez mais difícil organizar as políticas e os padrões.

Neste laboratório, você vai configurar o CFT Scorecard (em inglês) para melhorar a visibilidade de um projeto do Google Cloud e detectar configurações incorretas.

O que você vai aprender neste laboratório?

Este laboratório destaca os desafios de usar a nuvem com vários usuários simultâneos. Você vai aprender como ativar o CFT Scorecard e expandir a capacidade de monitoramento de configurações de recursos e detecção de violações usando a integração com o Inventário de recursos do Cloud e a Biblioteca de políticas (em inglês) de código aberto. Você também vai configurar ferramentas para detectar configurações incorretas e recursos superexpostos, além de permitir que as pessoas da equipe e do projeto do Google Cloud sejam ágeis com as políticas definidas.

Tópicos abordados

  • Como configurar o CFT Scorecard
  • Como fazer uma avaliação do CFT Scorecard
  • Como adicionar uma nova política do CFT Scorecard

Infográfico dos tópicos

Cenário

Imagine que você é o líder técnico de uma equipe com três pessoas. Seus colegas remotos, Alice e Bob, trabalham juntos com você e implantam vários recursos no mesmo projeto compartilhado do Google Cloud que você usa. Depois de algumas semanas, você começa a encontrar possíveis problemas e percebe que, para ganhar tempo, Alice e Bob incluíram configurações de projeto que você considera incorretas. Uma delas expôs publicamente um bucket do Cloud Storage. Essa foi apenas uma das configurações incorretas que você identificou, e talvez tenham muitas outras.

Depois de pesquisar rapidamente no Google, você encontra o utilitário de CLI chamado Cloud Foundation Toolkit (CFT) Scorecard. Após uma leitura rápida, você descobre que essa ferramenta pode ajudar a gerenciar as políticas no ambiente do Google Cloud e a localizar as configurações incorretas. Então, você resolve fazer um teste.

Configuração e requisitos

Antes de clicar no botão Start Lab

Leia estas instruções. Os laboratórios são cronometrados e não podem ser pausados. O timer é iniciado quando você clica em Começar o laboratório e mostra por quanto tempo os recursos do Google Cloud vão ficar disponíveis.

Este laboratório prático permite que você realize as atividades em um ambiente real de nuvem, não em uma simulação ou demonstração. Você vai receber novas credenciais temporárias para fazer login e acessar o Google Cloud durante o laboratório.

Confira os requisitos para concluir o laboratório:

  • Acesso a um navegador de Internet padrão (recomendamos o Chrome).
Observação: para executar este laboratório, use o modo de navegação anônima ou uma janela anônima do navegador. Isso evita conflitos entre sua conta pessoal e a conta de estudante, o que poderia causar cobranças extras na sua conta pessoal.
  • Tempo para concluir o laboratório---não se esqueça: depois de começar, não será possível pausar o laboratório.
Observação: não use seu projeto ou conta do Google Cloud neste laboratório para evitar cobranças extras na sua conta.

Como iniciar seu laboratório e fazer login no console do Google Cloud

  1. 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ê verá o seguinte:

    • O botão Abrir Console do Cloud
    • Tempo restante
    • As credenciais temporárias que você vai usar neste laboratório
    • Outras informações se forem necessárias
  2. Clique em Abrir Console do Google. O laboratório ativa recursos e depois abre outra guia com a página Fazer login.

    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.
  3. Caso seja preciso, copie o Nome de usuário no painel Detalhes do laboratório e cole esse nome na caixa de diálogo Fazer login. Clique em Avançar.

  4. Copie a Senha no painel Detalhes do laboratório e a cole na caixa de diálogo Olá. Clique em Avançar.

    Importante: você precisa usar as credenciais do painel à esquerda. Não use suas credenciais do Google Cloud Ensina. Observação: se você usar sua própria conta do Google Cloud neste laboratório, é possível que receba cobranças adicionais.
  5. 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 GCP vai ser aberto nesta guia.

Observação: para ver uma lista dos produtos e serviços do Google Cloud, clique no Menu de navegação no canto superior esquerdo. Ícone do menu de navegação

Ativar o Cloud Shell

O Cloud Shell é uma máquina virtual com várias ferramentas de desenvolvimento. Ele tem um diretório principal permanente de 5 GB e é executado no Google Cloud. O Cloud Shell oferece acesso de linha de comando aos recursos do Google Cloud.

  1. Clique em Ativar o Cloud Shell Ícone "Ativar o Cloud Shell" na parte de cima do console do Google Cloud.

Depois de se conectar, vai notar que sua conta já está autenticada, e que o projeto está configurado com seu PROJECT_ID. A saída contém uma linha que declara o projeto PROJECT_ID para esta sessão:

Your Cloud Platform project in this session is set to YOUR_PROJECT_ID

gcloud é a ferramenta de linha de comando do Google Cloud. Ela vem pré-instalada no Cloud Shell e aceita preenchimento com tabulação.

  1. (Opcional) É possível listar o nome da conta ativa usando este comando:
gcloud auth list
  1. Clique em Autorizar.

  2. A saída será parecida com esta:

Saída:

ACTIVE: * ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Opcional) É possível listar o ID do projeto usando este comando:
gcloud config list project

Saída:

[core] project = <project_ID>

Exemplo de saída:

[core] project = qwiklabs-gcp-44776a13dea667a6 Observação: para conferir a documentação completa da gcloud, acesse o guia com informações gerais sobre a gcloud CLI no Google Cloud.

Tarefa 1: configurar o ambiente

  1. Primeiro, abra o Cloud Shell e configure algumas variáveis de ambiente:
export GOOGLE_PROJECT=$DEVSHELL_PROJECT_ID export CAI_BUCKET_NAME=cai-$GOOGLE_PROJECT
  1. Depois de ler os documentos, você sabe que o CFT Scorecard tem duas dependências:
  • Inventário de recursos do Cloud
  • Biblioteca de políticas
  1. Continue para ativar a API Cloud Asset no projeto:
gcloud services enable cloudasset.googleapis.com \ --project $GOOGLE_PROJECT
  1. Execute este comando para criar a conta de serviço padrão da API Cloud Asset:
gcloud beta services identity create --service=cloudasset.googleapis.com --project=$GOOGLE_PROJECT
  1. Conceda o papel Administrador de armazenamento à conta de serviço dos recursos do Cloud:
gcloud projects add-iam-policy-binding ${GOOGLE_PROJECT} \ --member=serviceAccount:service-$(gcloud projects list --filter="$GOOGLE_PROJECT" --format="value(PROJECT_NUMBER)")@gcp-sa-cloudasset.iam.gserviceaccount.com \ --role=roles/storage.admin
  1. Clone a biblioteca de políticas:
git clone https://github.com/forseti-security/policy-library.git
  1. Você percebe que a biblioteca de políticas impõe políticas localizadas na pasta policy-library/policies/constraints. Nesse caso, é possível copiar uma amostra de política do diretório de amostras para o de restrições.
cp policy-library/samples/storage_denylist_public.yaml policy-library/policies/constraints/
  1. Crie o bucket para armazenar os dados que serão exportados pelo Inventário de recursos do Cloud (CAI, na sigla em inglês):
gsutil mb -l {{{project_0.default_region | REGION}}} -p $GOOGLE_PROJECT gs://$CAI_BUCKET_NAME

Clique em Verificar meu progresso para conferir o objetivo. Criar o bucket do CAI

Tarefa 2: coletar dados usando o Inventário de recursos do Cloud (CAI)

Agora que você configurou o ambiente, comece a coletar os dados para o CFT Scorecard.

Como já mencionamos, a entrada para o CFT Scorecard é o recurso, os dados do IAM e a pasta policy-library.

Vai ser necessário usar o CAI para gerar as informações de recursos e de políticas do IAM no projeto.

  1. Crie os dados usando o comando a seguir:
# Exportar dados do recurso gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/resource_inventory.json \ --content-type=resource \ --project=$GOOGLE_PROJECT # Exportar dados do IAM gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/iam_inventory.json \ --content-type=iam-policy \ --project=$GOOGLE_PROJECT # Exportar dados de políticas da organização gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/org_policy_inventory.json \ --content-type=org-policy \ --project=$GOOGLE_PROJECT # Exportar dados da política de acesso gcloud asset export \ --output-path=gs://$CAI_BUCKET_NAME/access_policy_inventory.json \ --content-type=access-policy \ --project=$GOOGLE_PROJECT

Exemplo de saída:

Export in progress for root asset [projects/qwiklabs-gcp-01-68169ed6dd00]. Use [gcloud asset operations describe projects/97186664469/operations/ExportAssets/RESOURCE/2295255602305764396] to check the status of the operation. Export in progress for root asset [projects/qwiklabs-gcp-01-68169ed6dd00]. Use [gcloud asset operations describe projects/97186664469/operations/ExportAssets/IAM_POLICY/11771734913762837428] to check the status of the operation.
  1. Confira se a coleta de dados pelo CAI foi concluída. Verifique a saída do comando anterior e use o gcloud asset operations describe da saída desses comandos para confirmar se as operações foram concluídas. Pode levar algum tempo para o progresso ser verificado.

Clique em Verificar meu progresso para conferir o objetivo. Criação dos arquivos do CAI concluída

Tarefa 3: analisar dados do CAI usando o CFT scorecard

  1. Baixe o aplicativo CFT Scorecard e use o comando abaixo para que ele seja executável:
curl -o cft https://storage.googleapis.com/cft-cli/latest/cft-linux-amd64 # tornar executável chmod +x cft
  1. Agora que tudo está configurado, execute o aplicativo CFT Scorecard:
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME

Exemplo de saída:

Generating CFT scorecard 1 total issues found Operational Efficiency: 0 issues found ---------- Security: 1 issues found ---------- denylist_public_users: 1 issues - //storage.googleapis.com/fun-bucket-qwiklabs-gcp-00-2d8ed2a5cc0e is publicly accessable Reliability: 0 issues found ---------- Other: 0 issues found ----------

Esse era o bucket público identificado antes.

Tarefa 4: adicionar mais restrições ao CFT Scorecard

  1. Você se esqueceu do IAM! Para garantir que você saiba quem tem o papel roles/owner além do seu usuário na lista de permissões, adicione a seguinte restrição:
# Adicionar uma nova política à lista de proibições do papel de Proprietário do IAM cat > policy-library/policies/constraints/iam_allowlist_owner.yaml << EOF apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedBindingsConstraintV3 metadata: name: allowlist_owner annotations: description: List any users granted Owner spec: severity: high match: target: ["organizations/**"] exclude: [] parameters: mode: allowlist assetType: cloudresourcemanager.googleapis.com/Project role: roles/owner members: - "serviceAccount:admiral@qwiklabs-services-prod.iam.gserviceaccount.com" EOF
  1. Execute o CFT Scorecard novamente:
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME

Pronto, parece resolvido, mas também é bom conferir roles/editor.

  1. Defina mais duas variáveis para ajudar na criação da nova restrição:
export USER_ACCOUNT="$(gcloud config get-value core/account)" export PROJECT_NUMBER=$(gcloud projects describe $GOOGLE_PROJECT --format="get(projectNumber)")
  1. Crie a restrição a seguir para listar todas as contas válidas:
# Adicionar uma nova política à lista de permissões do papel de Editor do IAM cat > policy-library/policies/constraints/iam_identify_outside_editors.yaml << EOF apiVersion: constraints.gatekeeper.sh/v1alpha1 kind: GCPIAMAllowedBindingsConstraintV3 metadata: name: identify_outside_editors annotations: description: list any users outside the organization granted Editor spec: severity: high match: target: ["organizations/**"] exclude: [] parameters: mode: allowlist assetType: cloudresourcemanager.googleapis.com/Project role: roles/editor members: - "user:$USER_ACCOUNT" - "serviceAccount:**$PROJECT_NUMBER**gserviceaccount.com" - "serviceAccount:$GOOGLE_PROJECT**gserviceaccount.com" EOF
  1. Execute o CFT Scorecard novamente:
./cft scorecard --policy-path=policy-library/ --bucket=$CAI_BUCKET_NAME

Exemplo de saída:

Generating CFT scorecard 3 total issues found Reliability: 0 issues found ---------- Other: 2 issues found ---------- identify_outside_editors: 1 issues - IAM policy for //cloudresourcemanager.googleapis.com/projects/1044418630080 grants roles/editor to user:qwiklabs.lab.user@gmail.com Operational Efficiency: 0 issues found ---------- Security: 1 issues found ---------- denylist_public_users: 1 issues - //storage.googleapis.com/fun-bucket-qwiklabs-gcp-00-2d8ed2a5cc0e is publicly accessable

Agora você vai ver que há alguém de fora da sua organização com permissão de edição. É hora de conversar com Alice e Bob.

Parabéns!

Você aprendeu a baixar, configurar e usar o CFT Scorecard para analisar projetos do Google Cloud.

Termine a Quest

Este laboratório autoguiado faz parte da Quest Security & Identity Fundamentals. Uma Quest é uma série de laboratórios relacionados que formam um programa de aprendizado. Ao concluir uma Quest, você ganha um selo como reconhecimento da sua conquista. Você pode publicar os selos com um link para eles no seu currículo on-line ou nas redes sociais. Inscreva-se nesta Quest ou em outra que tenha este laboratório para receber os créditos de conclusão imediatamente. Consulte o catálogo do Google Cloud Ensina para ver todas as Quests disponíveis.

Comece o próximo laboratório

Continue a Quest com o laboratório Peering de redes VPC ou conheça outras opções do Google Cloud Ensina:

Treinamento e certificação do Google Cloud

Esses treinamentos ajudam você a aproveitar as tecnologias do Google Cloud ao máximo. Nossas aulas incluem habilidades técnicas e práticas recomendadas para ajudar você a alcançar rapidamente o nível esperado e continuar sua jornada de aprendizado. Oferecemos treinamentos que vão do nível básico ao avançado, com opções de aulas virtuais, sob demanda e por meio de transmissões ao vivo para que você possa encaixá-las na correria do seu dia a dia. As certificações validam sua experiência e comprovam suas habilidades com as tecnologias do Google Cloud.

Manual atualizado em 29 de novembro de 2023

Laboratório testado em 29 de novembro de 2023

Copyright 2024 Google LLC. Todos os direitos reservados. Google e o logotipo do Google são marcas registradas da Google LLC. Todos os outros nomes de produtos e empresas podem ser marcas registradas das respectivas empresas a que estão associados.