Pular para o conteúdo
Skillpedia
Deploy e nuvem (DevOps)41 mil · #4823

secrets-management

Ensina seu agente de IA a colocar projetos no ar e cuidar da infraestrutura.

O que ela faz

Gerencia informações sensíveis, como senhas e chaves, para que não precisem ser escritas diretamente no código. Isso torna seus sistemas mais seguros.

Quando usar

  • ✓Ao guardar senhas de banco de dados.
  • ✓Ao armazenar chaves de API.
  • ✓Ao proteger informações em processos automatizados de desenvolvimento e entrega (CI/CD).

Exemplo do que pedir para a IA

“Como posso guardar a chave de API do meu serviço de forma segura?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/wshobson/agents/blob/main/plugins/cicd-automation/skills/secrets-management/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/wshobson/agents/blob/main/plugins/cicd-automation/skills/secrets-management/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ferramentas como Vault, AWS Secrets Manager ou Azure Key Vault guardam suas informações sensíveis em um local seguro. Elas fornecem essas informações apenas quando necessário e para quem tem permissão, sem que você precise colocá-las diretamente no seu código.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add wshobson/agents --skill secrets-management

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/wshobson/agents/main/plugins/cicd-automation/skills/secrets-management/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Gerenciamento de Segredos

Práticas seguras de gerenciamento de segredos para pipelines de CI/CD usando Vault, AWS Secrets Manager e outras ferramentas.

Propósito

Implementar gerenciamento seguro de segredos em pipelines de CI/CD sem codificar informações sensíveis.

Quando Usar

  • Armazenar chaves de API e credenciais
  • Gerenciar senhas de banco de dados
  • Lidar com certificados TLS
  • Rotacionar segredos automaticamente
  • Implementar acesso com privilégio mínimo

Ferramentas de Gerenciamento de Segredos

HashiCorp Vault

  • Gerenciamento centralizado de segredos
  • Geração de segredos dinâmicos
  • Rotação de segredos
  • Registro de auditoria
  • Controle de acesso granular

AWS Secrets Manager

  • Solução nativa da AWS
  • Rotação automática
  • Integração com RDS
  • Suporte a CloudFormation

Azure Key Vault

  • Solução nativa do Azure
  • Chaves com suporte a HSM
  • Gerenciamento de certificados
  • Integração RBAC

Google Secret Manager

  • Solução nativa do GCP
  • Versionamento
  • Integração IAM

Integração com HashiCorp Vault

Configurar Vault

# Start Vault dev server
vault server -dev

# Set environment
export VAULT_ADDR='http://127.0.0.1:8200'
export VAULT_TOKEN='root'

# Enable secrets engine
vault secrets enable -path=secret kv-v2

# Store secret
vault kv put secret/database/config username=admin password=secret

GitHub Actions com Vault

name: Deploy with Vault Secrets

on: [push]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Import Secrets from Vault
        uses: hashicorp/vault-action@v2
        with:
          url: https://vault.example.com:8200
          token: ${{ secrets.VAULT_TOKEN }}
          secrets: |
            secret/data/database username | DB_USERNAME ;
            secret/data/database password | DB_PASSWORD ;
            secret/data/api key | API_KEY

      - name: Use secrets
        run: |
          echo "Connecting to database as $DB_USERNAME"
          # Use $DB_PASSWORD, $API_KEY

GitLab CI com Vault

deploy:
  image: vault:1.17
  before_script:
    - export VAULT_ADDR=https://vault.example.com:8200
    - export VAULT_TOKEN=$VAULT_TOKEN
    - apk add curl jq
  script:
    - |
      DB_PASSWORD=$(vault kv get -field=password secret/database/config)
      API_KEY=$(vault kv get -field=key secret/api/credentials)
      echo "Deploying with secrets..."
      # Use $DB_PASSWORD, $API_KEY

AWS Secrets Manager

Armazenar Segredo

aws secretsmanager create-secret \
  --name production/database/password \
  --secret-string "super-secret-password"

Recuperar no GitHub Actions

- name: Configure AWS credentials
  uses: aws-actions/configure-aws-credentials@v4
  with:
    aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
    aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
    aws-region: us-west-2

- name: Get secret from AWS
  run: |
    SECRET=$(aws secretsmanager get-secret-value \
      --secret-id production/database/password \
      --query SecretString \
      --output text)
    echo "::add-mask::$SECRET"
    echo "DB_PASSWORD=$SECRET" >> $GITHUB_ENV

- name: Use secret
  run: |
    # Use $DB_PASSWORD
    ./deploy.sh

Terraform com AWS Secrets Manager

data "aws_secretsmanager_secret_version" "db_password" {
  secret_id = "production/database/password"
}

resource "aws_db_instance" "main" {
  allocated_storage    = 100
  engine              = "postgres"
  instance_class      = "db.t3.large"
  username            = "admin"
  password            = jsondecode(data.aws_secretsmanager_secret_version.db_password.secret_string)["password"]
}

Segredos do GitHub

Segredos de Organização/Repositório

- name: Use GitHub secret
  env:
    API_KEY: ${{ secrets.API_KEY }}
    DATABASE_URL: ${{ secrets.DATABASE_URL }}
  run: |
    # Secrets are injected as env vars — never print them to logs
    ./deploy.sh

Segredos de Ambiente

deploy:
  runs-on: ubuntu-latest
  environment: production
  steps:
    - name: Deploy
      env:
        PROD_API_KEY: ${{ secrets.PROD_API_KEY }}
      run: |
        # Secret injected as env var — never print to logs
        ./deploy.sh

Variáveis do GitLab CI/CD

Variáveis de Projeto

deploy:
  script:
    - echo "Deploying with $API_KEY"
    - echo "Database: $DATABASE_URL"

Variáveis Protegidas e Mascaradas

  • Protegidas: Disponíveis apenas em branches protegidos
  • Mascaradas: Ocultas nos logs de jobs
  • Tipo arquivo: Armazenadas como arquivo

Melhores Práticas

  1. Nunca commite segredos para o Git

…

Perguntas frequentes

Por que não posso colocar senhas diretamente no código?

Colocar senhas no código é como escrever sua senha em um papel e deixá-lo visível para todos. Se alguém tiver acesso ao seu código, terá acesso às suas senhas, o que é um grande risco de segurança.

O que são 'segredos' neste contexto?

Segredos são informações confidenciais que precisam ser protegidas, como senhas, chaves de API, certificados de segurança e tokens de acesso.

Quais ferramentas são mencionadas?

O texto menciona HashiCorp Vault, AWS Secrets Manager, Azure Key Vault e Google Secret Manager. Também fala sobre como usar segredos nativos do GitHub e GitLab.

Detalhes

Descrição original do autor

Implement secure secrets management for CI/CD pipelines using Vault, AWS Secrets Manager, or native platform solutions. Use when handling sensitive credentials, rotating secrets, or securing CI/CD environments.

repo: wshobson/agents

Popularidade

Estrelas no GitHub
41 mil
Posição no ranking
#4823
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas