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. A IaC permite criar e gerenciar seus recursos de nuvem usando linguagens como o Terraform para que seja 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. Validação de IaC ajuda os desenvolvedores a identificar e corrigir problemas de segurança na IaC dos recursos antes de aplicá-los ao seu ambiente do Google Cloud.
O recurso de validação da IaC oferece suporte aos arquivos de plano do Terraform. É possível validar suas plano do Terraform usando a Google Cloud CLI ou integre a validação do Cloud Build, Jenkins ou GitHub Actions de desenvolvimento de software.
Antes de começar
Conclua estas tarefas para começar a usar a validação de IaC.
Ative o nível Premium ou Enterprise 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 os securityposture.googleapis.com
e
APIs do 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 permissões de validação de IaC, consulte IAM para nível de organização ativações.
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.
Defina suas políticas
Defina seu políticas da organização e 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.
crie 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 recursos e 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 políticas e tipos de recursos compatíveis. Para uma lista de dispositivos com suporte tipos de recursos e políticas, consulte Tipos de recursos e políticas compatíveis com a validação de IaC.
- Analise as limitações da validação de IaC.
- Não inclua informações sensíveis, como senhas ou outros informações identificáveis no arquivo do Terraform plan. Se a validação encontrar campos marcados como confidenciais nas alterações de recurso, o são removidos.
Depois de criar o código do Terraform, execute o relatório de validação de 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, faça o seguinte:
Na CLI gcloud, execute
terraform init
.Verifique se você está executando o provedor Terraform versão 5.5 ou posterior. Se necessário, faça upgrade para a versão mais recente do provedor do Google:
terraform init -upgrade
Converta o arquivo do Terraform plan 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 contém 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 no para criar o relatório de validação de IaC. 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 a validação do IAC relatório. Para informações 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 da IaC Fluxo de trabalho do Cloud Build.
- Integre a validação da IaC GitHub Actions ou sua Projeto Jenkins (em inglês).
- Gerencie sua postura de segurança.
-