O GitHub é uma plataforma amplamente usada para hospedar códigos-fonte e arquivos. Ele fornece controle de versão baseado no Git, permitindo que programadores e usuários contribuam com projetos privados e de código aberto, independentemente do local físico onde cada um está. O GitHub Actions é uma ferramenta poderosa que permite a automação, a personalização e a execução de fluxos de trabalho de desenvolvimento diretamente nos repositórios. Essa funcionalidade integrada melhora significativamente a eficiência e a consistência do processo de desenvolvimento de software.
Ao integrar o Segura DSM com o GitHub Actions, todas as variáveis de ambiente podem ser interceptadas e os secrets podem ser injetados diretamente nos pipelines durante a execução da automação. Essa abordagem elimina a necessidade de expor secrets, reforçando a segurança durante o desenvolvimento.
Na imagem abaixo, é possível visualizar um diagrama de como é feita a integração entre o Segura DSM e o GitHub Actions:
Integrar o senhasegura DSM com GitHub Actions
- Caso não possua os arquivos
dsm-cli
esenhasegura-mapping.json
, solicite-os ao time de suporte da Segura. - Certifique-se de selecionar OAuth 2.0 como o método de autenticação no senhasegura DSM, pois a CLI o usa para buscar informações.
- Acesse um projeto em sua conta do GitHub.
- Adicione o executável, o arquivo de configuração e, opcionalmente, o arquivo
senhasegura-mapping.json
no repositório do projeto. - Na Segura, acesse as Variáveis de CI/CD do seu projeto através de Menu de Produtos > DevOps Secret Manager > CI/CD > Variáveis.
- Registre as variáveis necessárias para a execução do DSM usando a aplicação
dsm-cli
, conforme descrito no guia de uso. - Edite seu arquivo
.github/workflows/pipeline.yml
na pasta do seu projeto`. - Execute o pipeline do GitHub para finalizar.
Exemplo do arquivo .github/workflows/pipeline.yaml
para DSM usando CLI:
name: senhasegura CLI CI/CD
on:
push:
branches: [ main ]
workflow_dispatch:
jobs:
build:
runs-on: self-hosted
steps:
- uses: actions/checkout@v2
- name: Run DSM CLI as Running Belt
env:
APPLICATION: ${{ secrets.APPLICATION }}
SYSTEM: ${{ secrets.SYSTEM }}
ENVIRONMENT: ${{ secrets.ENVIRONMENT }}
run: |
dsm runb \
--app-name $APPLICATION \
--system $SYSTEM \
--environment $ENVIRONMENT \
--config .config.yml \
--tool-name github \
source .runb.vars && rm .runb.vars
Usar o dsm-cli para injetar secrets em pipelines
Após configurar o DSM CLI no projeto, acesse o menu Actions no GitHub para executar o pipeline e injetar os secrets. Para isso, siga as instruções abaixo:
- Selecione o workflow e a opção Run workflow.
- Escolha a branch para rodar o workflow e clique em Run workflow.
- Por fim, clique em Workflow > Job, para exibir o resultado da execução.
Exemplo de saída do workflow do GitHub Actions:
Run chmod +x senseg-cli
Using config file: .config.yml
Registering Application on DevSecOps
Trying to authenticate on senhasegura DevSecOps API
Authenticated successfully
Application register success
Posting variables in senhasegura...
Trying to authenticate on senhasegura DevSecOps API
Authenticated successfully
Posting variables successfully
Finding secrets from application
Trying to authenticate on senhasegura DevSecOps API
Authenticated successfully
Injecting secrets!
Injecting secret: SENHASEGURA APPLICATION... Sucess
Injecting secret: SENHASEGURA ENVIRONMENT... Sucess
Injecting secret: SENHASEGURA SYSTEM... Sucess
Secrets injected!
Deleting github variables...
The config GITLAB ACCESS TOKEN is empty
Deletion failed
To delete github variables, you need to define the configs GITLAB ACCESS TOKEN, CI API V4 URL and CI PROJECT TD
Finish
Você ainda tem dúvidas? Entre em contato com a Comunidade Segura.