O Security Command Center (SCC) do Google Cloud oferece uma visão unificada de todos os possíveis problemas de segurança no seu ambiente em nuvem. Mas o que acontece quando você não tem tempo de revisar os Findings identificados ou simplesmente esquece? Sem essa verificação, aquele firewall aberto continua aberto, e aquele storage bucket segue público sem que ninguém olhe o conteúdo dele.

E se desse para agir de forma mais proativa com esses Findings e receber notificações em tempo real?
Neste post, mostramos como ampliar o poder dos Findings do SCC, adicionando a possibilidade de configurar alertas com o Cloud Monitoring.
Como funciona
Uma limitação do SCC é a ausência de métricas e alertas via Cloud Monitoring, já que os Findings só ficam visíveis no nível da Organização. Ao exportar os Findings para o PubSub [1], somando isso aos scripts deste projeto, você passa a ter as notificações disponíveis no Cloud Monitoring.
Com os scripts deste projeto, você vai:
- Automatizar a configuração e a remoção das Notificações do SCC para o PubSub no seu projeto
- Registrar os Findings no seu projeto, deixando os dados disponíveis para o Cloud Logging e o Cloud Monitoring
- Eliminar ou reduzir a necessidade de scripts personalizados, aproveitando os recursos nativos do GCP sempre que possível

Pré-requisitos
Para rodar os scripts, você vai precisar do seguinte:
- ID da Organização — onde seu projeto está localizado
- ID do Projeto — onde os recursos serão instalados
- Service Account — uma service account para executar as Notificações do SCC
- As seguintes APIs precisam estar habilitadas no projeto: Security Command Center API na Organização, Cloud Build API e Cloud Functions API
- Você também vai precisar dos seguintes papéis de IAM:
- Security Center Admin — para configurar as notificações
- Organization Admin — para configurar a service account com os papéis necessários
Instalação
Clone o repositório
Clone o repositório no Cloud Shell. Se preferir, clone em uma VM ou na sua máquina local.
git clone https://github.com/gschaeffer/scc-findings-to-pubsub
Edite as variáveis
Edite as variáveis do script no arquivo setup.sh. É obrigatório editar os valores de organization id, project id e service account. As demais variáveis são opcionais.
Execute o setup
Primeiro, instalamos as Notificações do SCC para o PubSub conforme descrito pelo Google [1 acima]. Use o comando setup.sh, que automatiza esse processo. Confira se a configuração do gcloud está apontando para o ID do seu projeto.
gcloud config set core/project YOUR_PROJECT_ID ./setup.sh apply # if prompted with 'API [securitycenter.googleapis.com] not enabled # on project. Would you like to enable and retry?', select 'y'.
Isso cria apenas os recursos descritos na documentação das Notificações do SCC [1]. A partir daí, você já deve ver as notificações chegando ao tópico do PubSub conforme forem identificadas no SCC.
Adicione uma Cloud Function
Depois, para deixar os eventos de Findings disponíveis no Cloud Monitoring, instale a Cloud Function fornecida. Ela vai começar a enviar os Findings do PubSub para o Cloud Logging e o Cloud Monitoring. O script de instalação está no diretório functions.
cd functions/ ./deploy_logger_func.sh
Isso instala uma função Python bem simples, acionada sempre que um Finding é adicionado ao tópico do PubSub. Depois da instalação, você já deve ver as entradas no Cloud Logging. Elas ficam registradas em um log chamado scc_notifications_log, o que facilita a busca.
Com os Findings no Cloud Logging, todas as ferramentas e serviços nativos do Google Cloud ficam à disposição para configurar métricas e alertas https://cloud.google.com/monitoring/alerts. Se quiser trabalhar com esses dados no BigQuery, no Cloud Storage ou até em outro tópico do PubSub, dá para usar os Logging Exports https://cloud.google.com/logging/docs/export e enviar os dados para o destino que preferir.
Limpeza
Para remover os recursos instalados, use o mesmo comando de setup com o argumento delete e o gcloud para remover a cloud function. Ajuste as variáveis de nome da função e região conforme necessário.
./setup.sh delete FUNCTION="scc_notification_handler" REGION= gcloud functions delete $FUNCTION --region $REGION
Publicado originalmente em https://github.com .