Pular para o conteúdo
Skillpedia
Segurança35 mil · #5951

implementing-secrets-management-with-vault

Ajuda seu agente a gerenciar segredos de forma centralizada e segura usando o HashiCorp Vault, eliminando credenciais codificadas.

O que ela faz

Este sistema ajuda a guardar informações sensíveis, como senhas e chaves de acesso, de forma segura. Ele cria essas informações automaticamente e as renova, evitando que sejam armazenadas de forma insegura no seu código ou em arquivos.

Quando usar

  • ✓Quando senhas e chaves estão em arquivos de configuração ou código.
  • ✓Ao migrar para senhas que mudam sozinhas e duram pouco tempo.
  • ✓Quando programas rodando no Kubernetes precisam de acesso seguro a bancos de dados.

Exemplo do que pedir para a IA

“Como posso fazer o Vault gerar senhas temporárias para meu banco de dados PostgreSQL?”

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/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-secrets-management-with-vault/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/mukul975/Anthropic-Cybersecurity-Skills/blob/main/skills/implementing-secrets-management-with-vault/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O sistema é configurado para se conectar a um servidor Vault. Quando um programa precisa de uma senha, o Vault a cria na hora, com um tempo de validade. Depois que o tempo acaba, a senha é apagada automaticamente.

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 mukul975/Anthropic-Cybersecurity-Skills --skill implementing-secrets-management-with-vault

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-secrets-management-with-vault/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.

Implementando Gerenciamento de Segredos com Vault

Quando Usar

  • Quando aplicações armazenam senhas de banco de dados, chaves de API ou certificados em variáveis de ambiente ou arquivos de configuração
  • Ao migrar de credenciais estáticas de longa duração para segredos dinâmicos de curta duração
  • Quando cargas de trabalho Kubernetes precisam de acesso seguro a credenciais de banco de dados ou APIs de provedores de nuvem
  • Quando requisitos de conformidade exigem gerenciamento centralizado de credenciais com registro de auditoria
  • Quando pipelines de CI/CD contêm segredos codificados que representam risco à cadeia de suprimentos

Não use para ambientes exclusivamente AWS onde o AWS Secrets Manager é suficiente sem requisitos multi-nuvem, para lógica de criptografia em nível de aplicação (embora o Vault Transit possa ajudar), ou para federação de identidade (veja gerenciando-identidade-nuvem-com-okta).

Pré-requisitos

  • Servidor HashiCorp Vault implantado em modo HA (backend de armazenamento Consul ou Raft)
  • Certificados TLS para endpoints de listener do Vault
  • Licença Vault Enterprise para namespaces, políticas Sentinel e replicação (opcional)
  • Cluster Kubernetes com Vault Agent Injector ou provedor CSI para integração de carga de trabalho

Fluxo de Trabalho

Etapa 1: Implantar Vault em Modo de Alta Disponibilidade

Implante o Vault usando Armazenamento Integrado (Raft) para HA sem dependências externas. Configure TLS, registro de auditoria e auto-desbloqueio usando um KMS na nuvem.

# vault-config.hcl
storage "raft" {
  path    = "/opt/vault/data"
  node_id = "vault-node-1"

  retry_join {
    leader_api_addr = "https://vault-node-2.internal:8200"
  }
  retry_join {
    leader_api_addr = "https://vault-node-3.internal:8200"
  }
}

listener "tcp" {
  address     = "0.0.0.0:8200"
  tls_cert_file = "/opt/vault/tls/vault.crt"
  tls_key_file  = "/opt/vault/tls/vault.key"
}

seal "awskms" {
  region     = "us-east-1"
  kms_key_id = "alias/vault-unseal-key"
}

api_addr      = "https://vault-node-1.internal:8200"
cluster_addr  = "https://vault-node-1.internal:8201"

telemetry {
  prometheus_retention_time = "30s"
  disable_hostname         = true
}
# Initialize Vault
vault operator init -key-shares=5 -key-threshold=3

# Enable audit logging
vault audit enable file file_path=/var/log/vault/audit.log

# Enable syslog audit for SIEM integration
vault audit enable syslog tag="vault" facility="AUTH"

Etapa 2: Configurar Métodos de Autenticação

Habilite backends de autenticação para operadores humanos, aplicações e pipelines de CI/CD. Use AppRole para autenticação de máquina e OIDC para acesso humano.

# Enable OIDC auth for human users via Okta
vault auth enable oidc
vault write auth/oidc/config \
  oidc_discovery_url="https://company.okta.com/oauth2/default" \
  oidc_client_id="vault-client-id" \
  oidc_client_secret="vault-client-secret" \
  default_role="default"

# Enable AppRole for application authentication
vault auth enable approle
vault write auth/approle/role/web-app \
  secret_id_ttl=10m \
  token_num_uses=10 \
  token_ttl=20m \
  token_max_ttl=30m \
  secret_id_num_uses=1 \
  token_policies="web-app-policy"

# Enable Kubernetes auth for pod-based access
vault auth enable kubernetes
vault write auth/kubernetes/config \
  kubernetes_host="https://kubernetes.default.svc:443" \
  token_reviewer_jwt=@/var/run/secrets/kubernetes.io/serviceaccount/token \
  kubernetes_ca_cert=@/var/run/secrets/kubernetes.io/serviceaccount/ca.crt

Etapa 3: Habilitar Motores de Segredos Dinâmicos

Configure motores de segredos de banco de dados para gerar credenciais de curta duração sob demanda. Cada conjunto de credenciais tem um TTL e é revogado automaticamente quando expira.

# Habilitar motor de segredos de banco de dados para PostgreSQL
vault secrets enable database
vault write database/config/production-db \
  plugin_name=postgresql-database-plugin \
  allowed_roles="readonly,readwrite" \
  connection_url="postgresql://{{username}}:{{password}}@db.internal:5432/production?sslmode=require" \
  username="vault_admin" \
  password="initial-password"

# Rotacionar as credenciais raiz para que o Vault as gerencie exclusivamente
vault write -force database/rotate-root/production-db

# Criar uma role de leitura com TTL de 1 hora
vault write database/roles/readonly \
  db_name=production-db \
  creation_statements="CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\";" \
  revocation_statements="REVOKE ALL ON ALL TABLES IN SCHEMA public FROM \"{{name}}\"; DROP ROLE IF EXISTS \"{{name}}\";" \
  default_ttl="1h" \
  max_ttl="24h"


…
Perguntas frequentes

O que são 'segredos dinâmicos'?

São informações sensíveis, como senhas, que o Vault cria e gerencia. Elas têm um tempo de vida curto e são automaticamente revogadas (apagadas) quando expiram.

Por que usar o Vault em vez de guardar senhas em arquivos?

Guardar senhas em arquivos ou no código é arriscado. Se alguém tiver acesso a esses locais, terá acesso às suas senhas. O Vault centraliza e protege essas informações, criando-as sob demanda e com tempo limitado.

Preciso de um servidor Vault separado para usar isso?

Sim, é necessário ter um servidor HashiCorp Vault já instalado e configurado para que este sistema possa se conectar a ele e gerenciar os segredos.

Detalhes

Descrição original do autor

Deploy HashiCorp Vault for centralized secrets management, covering dynamic secret generation for databases and cloud providers, transit encryption, PKI certificate management, and Kubernetes integration. Use when eliminating hardcoded credentials from application code or CI/CD pipelines, migrating to short-lived auto-rotated secrets, or giving Kubernetes workloads secure access to database or clo

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5951
Licença
Apache-2.0
Atualizada em
31/08/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas