Use a ferramenta Analyze Code Security ação para validar a infraestrutura como código (IaC) que faz parte do seu GitHub Actions de desenvolvimento de software. A validação da IaC permite determinar se o recurso do Terraform da organização violam as políticas e políticas da organização Detectores da Análise de integridade da segurança aplicados aos recursos do Google Cloud.
Para mais informações sobre a validação da IaC, consulte Validar a IaC em relação a documentação da organização do Google Cloud ..
Antes de começar
Conclua estas tarefas para começar a validação da IaC com o GitHub Actions.
Ative o nível Premium ou Enterprise do Security Command Center
Verifique se o nível Premium ou Enterprise do Security Command Center é ativado no nível da organização.
Ativar o Security Command Center ativa os securityposture.googleapis.com
e
APIs do securitycentermanagement.googleapis.com
.
Crie uma conta de serviço
Crie uma conta de serviço que possa ser usada para o projeto Analyze Code Security à ação.
-
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart
. - Click Create and continue.
-
Grant the Security Posture Shift-Left Validator role to the service account.
To grant the role, find the Select a role list, then select Security Posture Shift-Left Validator.
- Click Continue.
-
Click Done to finish creating the service account.
Para mais informações sobre permissões de validação de IaC, consulte IAM para nível de organização ativações.
Configurar a autenticação
Configure a federação de identidade da carga de trabalho com seu provedor de identidade do GitHub. Para instruções, consulte Federação de identidade da carga de trabalho.
Consiga o URL do token do ID de federação da identidade da carga de trabalho. Por exemplo,
https://iam.googleapis.com/projects/PROJECT_NUMBER/locations/global/workloadIdentityPools/POOL_ID/providers/PROVIDER_ID
.Considere o seguinte:
PROJECT_NUMBER
é o número do projeto do Projeto do Google Cloud em que você configurou a federação de identidade da carga de trabalho.POOL_ID
é o nome do pool.PROVIDER_ID
é o nome do seu provedor de identidade.
Adicione a configuração Authenticate to Google Cloud ação ao seu fluxo de trabalho para autenticar a ação de validação da IaC.
Defina suas políticas
Defina sua organização políticas e Análise de integridade da segurança de detecção. Para definir essas políticas usando uma postura de segurança, conclua as tarefas em Criar e implantar um de segurança.
crie seu arquivo JSON do plano do Terraform
Crie seu código do Terraform. Para mais instruções, consulte Criar o arquivo do ou código-fonte.
No GitHub Actions, inicialize o Terraform. Por exemplo, se você estiver usando a ação HashiCorp - Configurar Terraform, execute o seguinte comando:
- name: Terraform Init id: init run: terraform init
Crie um arquivo do Terraform plan:
- name: Create Terraform Plan id: plan run: terraform plan -out=TF_PLAN_FILE
Substitua
TF_PLAN_FILE
pelo nome do Terraform plan. . Por exemplo,myplan.tfplan
.Converta o arquivo do plano para o formato JSON:
- name: Convert Terraform Plan to JSON id: convert run: terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILE
Substitua
TF_PLAN_JSON_FILE
pelo nome do arquivo no formato JSON. Por exemplo,mytfplan.json
.
Adicionar a ação ao fluxo de trabalho do GitHub Actions
- No repositório do GitHub, navegue até o fluxo de trabalho.
- Abra o editor de fluxo de trabalho.
- Na barra lateral do GitHub Marketplace, pesquise Analyze Code Security.
- Na seção Instalação, copie a sintaxe.
- Cole a sintaxe como uma nova etapa no fluxo de trabalho.
Substitua os seguintes valores:
workload_identity_provider
com o link para o URL da sua Token do ID de federação da Identidade da carga de trabalho.service_account
pelo endereço de e-mail da conta de serviço que você criado para a ação.organization_id
pelo ID da organização do Google Cloud.scan_file_ref
pelo caminho para o arquivo do plano do Terraform, no formato JSON.failure_criteria
pelo limite de falha critérios que determinam quando a ação falha. Os critérios de limite são com base no número de problemas de gravidade crítica, alta, média e baixa que a verificação de validação da IaC encontra.failure_criteria
especifica quantos problemas de cada gravidade são permitidos e como os problemas são agregados (AND
ouOR
). Por exemplo, se você quiser que a ação falhe se encontrar um problema crítico ou um problema de alta gravidade, defina ofailure_criteria
paraCritical:1,High:1,Operator:OR
. O padrão éCritical:1,High:1,Medium:1,Low:1,Operator:OR
, o que significa que, se a IaC verificação encontrar algum problema, a ação deverá falhar.
Agora é possível executar o fluxo de trabalho para validar seu arquivo de plano do Terraform. Para executar fluxo de trabalho manual, consulte Executar manualmente um fluxo de trabalho.
Acessar o relatório de violação de IaC
No repositório do GitHub, clique em Ações e selecione o fluxo de trabalho.
Clique na execução mais recente do seu fluxo de trabalho.
Na seção Artefatos, o relatório de violação (
ias-scan-sarif.json
) está disponível em um arquivo ZIP. O relatório inclui seguintes campos:- Um campo
rules
que descreve quais políticas foram violadas pelo terraform plan. Cada regra inclui umruleID
que pode ser correspondido à resultados que estão incluídos no relatório. - Um campo
results
que descreve as modificações de recursos propostas que violam uma regra específica.
- Um campo
Resolva todas as violações no código do Terraform antes de aplicá-lo.
A seguir
- Confira a ação analyze-code-security-scc código-fonte no no GitHub.