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

implementing-hashicorp-vault-dynamic-secrets

Configura o HashiCorp Vault para gerar segredos dinâmicos, como credenciais de banco de dados e certificados. Automatiza a geração, rotação e gerenciamento de acesso.

O que ela faz

Esta ferramenta configura o HashiCorp Vault para gerar senhas e chaves de acesso temporárias para bancos de dados e serviços AWS. Ela ajuda a evitar o uso de senhas fixas e longas, criando credenciais que expiram automaticamente.

Quando usar

  • ✓Quando você quer parar de usar senhas fixas em arquivos de configuração.
  • ✓Ao precisar gerar credenciais de banco de dados ou da AWS que expirem rapidamente.
  • ✓Para cumprir regras de segurança que exigem a troca frequente de senhas.

Exemplo do que pedir para a IA

“Configure o HashiCorp Vault para gerar senhas dinâmicas para o 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-hashicorp-vault-dynamic-secrets/SKILL.md

Mensagem pronta para colar

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

O Vault se conecta ao seu banco de dados ou à AWS e cria credenciais temporárias sob demanda. Essas credenciais são automaticamente revogadas quando expiram ou quando não são mais necessárias.

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-hashicorp-vault-dynamic-secrets

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/main/skills/implementing-hashicorp-vault-dynamic-secrets/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 Segredos Dinâmicos do HashiCorp Vault

Quando Usar

  • Aplicações usam credenciais estáticas de banco de dados armazenadas em arquivos de configuração ou variáveis de ambiente
  • Chaves de acesso do AWS IAM são de longa duração e compartilhadas entre serviços
  • Necessidade de eliminar a proliferação de credenciais gerando segredos de curta duração por solicitação
  • Requisitos de conformidade exigem rotação de credenciais (Requisito 8 do PCI-DSS, NIST 800-53 IA-5)
  • Implementando gerenciamento de segredos zero-trust onde as credenciais nunca são armazenadas em repouso
  • Migrando do gerenciamento manual de credenciais para o ciclo de vida automatizado de segredos

Não use para armazenar segredos estáticos que não podem ser gerados dinamicamente (use o mecanismo de segredos KV do Vault em vez disso); segredos dinâmicos são para credenciais que podem ser criadas e revogadas programaticamente em sistemas de destino.

Pré-requisitos

  • HashiCorp Vault 1.15+ (edição Community ou Enterprise)
  • Servidor Vault inicializado e deslacrado com auto-unseal configurado (AWS KMS, Azure Key Vault ou Transit)
  • Sistemas de banco de dados de destino com credenciais de administrador para o Vault criar/revogar contas dinâmicas
  • Conta AWS IAM com permissões para criar/excluir usuários e chaves de acesso do IAM
  • Conectividade de rede do Vault para todos os sistemas de destino
  • Políticas do Vault e métodos de autenticação configurados para aplicações consumidoras

Fluxo de Trabalho

Etapa 1: Implantar e Configurar o Servidor Vault

Inicialize o Vault com configuração de nível de produção:

# vault-config.hcl - Production Vault server configuration
storage "raft" {
  path    = "/opt/vault/data"
  node_id = "vault-1"

  retry_join {
    leader_api_addr = "https://vault-2.corp.local:8200"
  }
  retry_join {
    leader_api_addr = "https://vault-3.corp.local:8200"
  }
}

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

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

api_addr      = "https://vault-1.corp.local:8200"
cluster_addr  = "https://vault-1.corp.local:8201"

telemetry {
  prometheus_retention_time = "24h"
  disable_hostname          = true
}

ui = true
# Initialize Vault cluster
vault operator init -key-shares=5 -key-threshold=3

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

# Enable AppRole authentication for applications
vault auth enable approle

# Create policy for database secret consumers
vault policy write db-consumer - <<EOF
# Allow reading dynamic database credentials
path "database/creds/app-readonly" {
  capabilities = ["read"]
}
path "database/creds/app-readwrite" {
  capabilities = ["read"]
}

# Allow renewing and revoking own leases
path "sys/leases/renew" {
  capabilities = ["update"]
}
path "sys/leases/revoke" {
  capabilities = ["update"]
}

# Allow reading own token info
path "auth/token/lookup-self" {
  capabilities = ["read"]
}
EOF

# Create AppRole for application
vault write auth/approle/role/webapp \
    token_policies="db-consumer" \
    token_ttl=1h \
    token_max_ttl=4h \
    secret_id_ttl=720h \
    secret_id_num_uses=0

Etapa 2: Configurar o Mecanismo de Segredos de Banco de Dados

Configure a geração de credenciais dinâmicas para PostgreSQL e MySQL:

# Habilita o mecanismo de segredos de banco de dados
vault secrets enable database

# Configura a conexão PostgreSQL
vault write database/config/production-postgres \
    plugin_name=postgresql-database-plugin \
    allowed_roles="app-readonly,app-readwrite,app-admin" \
    connection_url="postgresql://{{username}}:{{password}}@db-primary.corp.local:5432/appdb?sslmode=verify-full" \
    username="vault_admin" \
    password="$VAULT_DB_PASSWORD" \
    password_authentication="scram-sha-256"

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

# Cria role somente leitura (TTL: 1 hora, máximo 24 horas)
vault write database/roles/app-readonly \
    db_name=production-postgres \
    creation_statements="CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; \
        GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\"; \
        ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO \"{{name}}\";" \
    revocation_statements="REVOKE ALL PRIVILEGES ON ALL TABLES IN SCHEMA public FROM \"{{name}}\"; \
        DROP ROLE IF EXISTS \"{{name}}\";" \
    default_ttl="1h" \
    max_ttl="24h"

# Cria role de leitura e escrita (TTL: 30 minutos, máximo 8 horas)

…
Perguntas frequentes

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

São credenciais (como senhas ou chaves de acesso) que o Vault gera e gerencia automaticamente. Elas têm um tempo de vida limitado e são revogadas após o uso ou expiração.

Por que usar senhas dinâmicas em vez de fixas?

Senhas fixas são um risco de segurança se vazadas. Senhas dinâmicas reduzem esse risco, pois são de curta duração e específicas para cada uso, dificultando o acesso não autorizado.

O que acontece se a aplicação precisar de acesso contínuo?

A aplicação pode solicitar novas credenciais dinâmicas antes que as antigas expirem, mantendo o acesso sem a necessidade de senhas fixas.

Detalhes

Descrição original do autor

Configures HashiCorp Vault dynamic secrets engines for database credentials, AWS IAM keys, and PKI certificates, with automatic generation, lease management, and rotation to eliminate static secrets in application configuration. Use when eliminating long-lived static credentials, configuring a Vault secrets engine, generating ephemeral database or cloud credentials, or automating credential rotati

repo: mukul975/Anthropic-Cybersecurity-Skills

Popularidade

Estrelas no GitHub
35 mil
Posição no ranking
#5889
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