Este documento descreve como validar sua infraestrutura como código (IaC) com base nas políticas da organização e nos detectores de Análise de integridade de segurança definidos na sua organização do Google Cloud. Com a IaC, é possível criar e gerenciar recursos de nuvem usando linguagens como o Terraform para implantar os recursos usando um fluxo de trabalho de desenvolvimento. O recurso de validação de IaC é compatível apenas com políticas da organização e detectores da Análise de integridade da segurança.
A validação do IaC permite determinar se as definições de recursos novas ou modificadas violam as políticas atuais aplicadas aos seus recursos do Google Cloud (por exemplo, cluster, bucket ou instância). É possível definir essas políticas usando posturas de segurança, mas o recurso de validação de IaC analisa seu código em relação a todas as políticas na organização do Google Cloud. A validação de IaC ajuda os desenvolvedores a identificar e corrigir problemas de segurança na configuração de recursos ou ativos de IaC antes que eles sejam aplicados ao ambiente do Google Cloud.
O recurso de validação de IaC oferece suporte a arquivos de plano do Terraform. É possível validar seu plano do Terraform usando a Google Cloud CLI ou integrar o processo de validação ao fluxo de trabalho de desenvolvedor do Cloud Build, Jenkins ou GitHub Actions.
Antes de começar
Conclua estas tarefas para começar a usar a validação de IaC.
Ative o nível Enterprise ou Premium do Security Command Center
Verifique se o nível Premium ou Enterprise do Security Command Center está ativado no nível da organização.
Ativar o Security Command Center ativa as APIs securityposture.googleapis.com
e
securitycentermanagement.googleapis.com
.
Configurar permissões
-
Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the organization.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
Acessar o IAM - Selecionar uma organização.
- Clique em CONCEDER ACESSO.
-
No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.
- Na lista Selecionar um papel, escolha um.
- Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
- Clique em Salvar.
Para mais informações sobre as permissões de validação de IaC, consulte IAM para ativações no nível da organização.
Configurar a Google Cloud CLI
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Para configurar a CLI da gcloud para usar a representação da conta de serviço para autenticação nas APIs do Google, em vez de suas credenciais de usuário, execute o seguinte comando:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
Para mais informações, consulte Identidade temporária de conta de serviço.
Definir suas políticas
Defina as políticas da organização e os detectores da Análise de integridade da segurança. Para definir essas políticas usando uma postura de segurança, conclua as tarefas em Criar e implantar uma postura.
Criar seu código do Terraform
Use os fluxos de trabalho e as ferramentas de desenvolvedor para criar um arquivo do Terraform que inclua os recursos do Google Cloud que você quer criar ou modificar.
Considere o seguinte:
- Preencha o atributo pai (o projeto, a pasta ou a organização) de todos os recursos ou ativos na configuração do Terraform.
- Modifique os recursos e as políticas separadamente. A API não oferece suporte à validação de arquivos de plano do Terraform que modificam recursos e políticas ao mesmo tempo.
- Use apenas os tipos de recursos e as políticas compatíveis. Para conferir uma lista de tipos de recursos e políticas compatíveis, consulte Tipos de recursos e políticas compatíveis para validação de IaC.
- Analise as limitações da validação de IaC.
- Não inclua informações sensíveis, como senhas ou outras informações de identificação pessoal, no arquivo de plano do Terraform. Se o recurso de validação encontrar campos marcados como sensíveis nas mudanças de recursos, eles serão removidos.
Depois de criar o código do Terraform, você pode executar o relatório de validação do IaC. É possível usar a CLI gcloud, o Cloud Build, o Jenkins ou o GitHub Actions.
Usar a CLI do Google Cloud para criar um relatório de validação de IaC
Para criar um relatório de validação de IaC, siga estas etapas:
Na CLI gcloud, execute
terraform init
.Verifique se você está usando a versão v5.5 ou mais recente do provedor do Terraform. Se necessário, faça upgrade para a versão mais recente do provedor do Google:
terraform init -upgrade
Converta o arquivo de plano do Terraform para o formato JSON:
terraform plan -out TF_PLAN_FILENAME terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
Substitua:
TF_PLAN_FILENAME
: o nome do arquivo de plano do Terraform.TF_PLAN_JSON_FILENAME
: o nome do arquivo que vai conter o plano do Terraform no formato JSON.
Crie o relatório de validação de IaC:
gcloud scc iac-validation-reports create PARENT \ --tf-plan-file=TF_PLAN_JSON_FILENAME.json
Substitua:
PARENT
: a organização do Google Cloud em que o relatório de validação de IaC será criado. O formato éorganizations/ORGANIZATION_ID/locations/LOCATION
.LOCATION
églobal
.TF_PLAN_JSON_FILENAME
: o caminho para o arquivo JSON que contém o plano de IaC que você quer validar.
Por exemplo, para criar um relatório de validação de IaC na organização
organizations/3589215982/locations/global
com um plano de IaC incluído emplanFile.json
, execute o seguinte comando:gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
Esse comando retorna os detalhes da operação para criar o relatório de validação do IAC. Para saber mais sobre a operação, consulte Conferir informações sobre uma operação de implantação de postura.
A seguir
- Confira o tutorial de exemplo.
- Integre a validação de IaC ao seu fluxo de trabalho do Cloud Build.
- Integre a validação de IaC às GitHub Actions ou ao projeto do Jenkins.
- Gerencie sua postura de segurança.
-