Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
teller — Gestión de secretos nativa de la nube para desarrolladores: nunca abandones tu línea de comandos por los secretos. | Kitploit
Herramientas/GitHubGitHub/tellerops/teller
Seguridad de Infraestructura en la NubeAnálisis de CódigoSeguridad en la NubeDevSecOpsDetección de Secretos
GitHubtellerops/teller

teller

Gestión de secretos nativa de la nube para desarrolladores: nunca abandones tu línea de comandos por los secretos.

Ver Repositorio
3.2k201hace 6 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir






:computer: Nunca dejes tu terminal por los secretos
:pager: Crea flujos de trabajo fáciles y limpios para trabajar con entornos en la nube
:mag_right: Escanea en busca de secretos y combate la dispersión de secretos


Teller: el gestor de secretos universal de código abierto para desarrolladores

Nunca dejes tu terminal para usar secretos mientras desarrollas, pruebas y compilas tus aplicaciones.

En lugar de scripts personalizados, tokens en tus archivos .zshrc, EXPORTs visibles en tu historial de bash, archivos .env.production mal ubicados y más cosas por tu estación de trabajo, simplemente usa teller y conéctalo a cualquier vault, almacén de claves o servicio en la nube que quieras (Teller es compatible con Hashicorp Vault, AWS Secrets Manager, Google Secret Manager y muchos más).

Puedes usar Teller para ordenar tu propio entorno o para tu equipo como proceso y buena práctica.

Inicio rápido con teller

Descarga un binario Consigue un binario desde releases

Compila desde el código fuente Usar este método te permitirá echar un vistazo al código fuente, revisarlo y compilar una copia tú mismo.

Esto instalará el binario localmente en tu máquina:

root@kitploit:~
$ cd teller-cli
$ cargo install --path .

Crea una nueva configuración

root@kitploit:~
$ teller new
? Select your secret providers ›
⬚ hashicorp_consul
⬚ aws_secretsmanager
⬚ ssm
⬚ dotenv
⬚ hashicorp
⬚ google_secretmanager

Luego, edita el .teller.yml recién creado para definir los mapas y las claves que necesites para tus proveedores.

Un vistazo a teller.yml

El YAML de teller describe tus proveedores y, dentro de cada proveedor, un map que describe:

  • Cuál es la ruta raíz de la que obtener los pares clave-valor
  • Para cada uno de estos mapas, su id único, que te servirá para operaciones posteriores
  • Para cada mapa, un mapeo opcional de nombres de claves específico: puedes renombrar las claves que obtendrás del proveedor de origen

Aquí tienes un archivo de configuración de ejemplo. Ten en cuenta que también incluye construcciones de plantillas, como obtener variables de entorno al cargar la configuración:

root@kitploit:~
providers:
  hashi_1:
    kind: hashicorp
    maps:
      - id: test-load
        path: /{{ get_env(name="TEST_LOAD_1", default="test") }}/users/user1
        # if empty, map everything
        # == means map to same key name
        # otherwise key on left becomes right
        # in the future: key_transform: camelize, snake_case for automapping the keys
        keys:
          GITHUB_TOKEN: ==
          mg: FOO_BAR
  dot_1:
    kind: dotenv
    maps:
      - id: stg
        path: VAR_{{ get_env(name="STAGE", default="development") }}

Ahora puedes referirte a estos proveedores como hashi_1 o dot_1. Teller obtiene los datos especificados de todos los proveedores por defecto.

Características

🏃 Ejecutar subprocesos

¿Exportando y configurando manualmente variables de entorno para ejecutar un proceso con una configuración tipo demo o tipo producción?

¿Te ha pasado factura usar .env.production y exponerlo en el propio proyecto local?

Con teller y un archivo .teller.yml que no expone nada a las miradas indiscretas, puedes trabajar con fluidez y sin fricciones, con cero riesgo y sin necesidad de comillas:

root@kitploit:~
$ teller run --reset --shell -- node index.js

🔎 Inspeccionar variables

Esto mostrará las variables actuales que teller detecta. Por supuesto, solo se mostrarán las 2 primeras letras de cada una.

root@kitploit:~
$ teller show

📺 Población local del shell

¿Codificando secretos directamente en tus scripts de shell y dotfiles?

En algunos casos tiene sentido evaluar variables en tu shell actual. Por ejemplo, en tu .zshrc tiene mucho más sentido usar teller y no codificar todas esas variables en el propio archivo .zshrc.

En este caso, esto es lo que deberías añadir:

root@kitploit:~
eval "$(teller sh)"

🐳 Entorno Docker fácil

¿Cansado de recoger todo tipo de variables, configurarlas y preocupado además de que aparezcan en tu historial de shell?

Usa esta línea única de ahora en adelante:

root@kitploit:~
$ docker run --rm -it --env-file <(teller env) alpine sh

⚠️ Escanear secretos

Teller puede ayudarte a combatir la dispersión de secretos y los secretos codificados, además de ser la mejor herramienta de productividad para trabajar con tu vault.

También puede integrarse en tu CI y servir como herramienta de seguridad shift-left para tu pipeline de DevSecOps.

Busca los secretos guardados en tu vault dentro de tu código ejecutando:

root@kitploit:~
$ teller scan

Puedes ejecutarlo como linter en tu CI de la siguiente manera:

root@kitploit:~
run: teller scan --error-if-found

Romperá tu compilación si encuentra algo (devuelve el código de salida 1).

También puedes exportar los resultados como JSON con --json y escanear archivos binarios con -b.

♻️ Redactar secretos de salidas de procesos, registros y archivos

Puedes usar teller como herramienta de redacción en toda tu infraestructura, y ejecutar procesos mientras se redacta su salida, además de limpiar registros y colas de registros en vivo.

Pasa cualquier salida de proceso, cola o registros a teller para redactarlos en vivo:

root@kitploit:~
$ cat some.log | teller redact

También debería funcionar con tail -f:

root@kitploit:~
$ tail -f /var/log/apache.log | teller redact

Por último, si tienes algunos archivos que quieras redactar, también puedes hacerlo:

root@kitploit:~
$ teller redact --in dirty.csv --out clean.csv

Si omites --in, Teller tomará stdin, y si omites --out, Teller enviará la salida a stdout.

📜 Rellenar plantillas

Puedes rellenar plantillas personalizadas:

root@kitploit:~
$ teller template --in config-templ.t

El formato de plantilla es Tera, que es muy similar a Liquid o Handlebars.

Aquí tienes una plantilla de ejemplo:

root@kitploit:~
production_var: {{ key(name="PRINT_NAME")}}
production_mood: {{ key(name="PRINT_MOOD")}}

🔄 Copiar/sincronizar datos entre proveedores

En los casos en los que quieras sincronizar entre proveedores, puedes hacerlo con teller copy.

Sincronización de claves de un mapeo específico

Puedes usar el formato <provider name>/<map id> para copiar un mapeo de un proveedor a otro:

root@kitploit:~
$ teller copy --from source/dev --to target/prod,<...>

En este ejemplo simplista, usamos el siguiente archivo de configuración

root@kitploit:~
providers:
  dot1:
    kind: dotenv
    maps:
      - id: one
        path: one.env
  dot2:
    kind: dotenv
    maps:
      - id: two
        path: two.env

Esto:

  1. Obtiene todos los valores mapeados del mapeo de origen
  2. Para cada proveedor de destino, encuentra el mapeo correspondiente y copia los valores del origen en él

Por defecto, la copia actualizará el mapeo de destino (upsert de datos); si quieres reemplazar, puedes usar --replace.

🚲 Escritura y escritura múltiple en proveedores

Los proveedores de Teller admiten casos de uso de escritura que permiten escribir valores en los proveedores.

Recuerda que esta función sigue girando en torno a las definiciones de tu archivo teller.yml:

root@kitploit:~
$ teller put --providers new --map-id one NEW_VAR=s33kret

En este ejemplo, se está usando esta configuración:

root@kitploit:~
providers:
  new:
    kind: dotenv
    maps:
      - id: one
        path: new.env

Algunas notas:

  • Los valores son pares clave-valor con el formato: key=value y puedes especificar varios pares a la vez
  • Cuando especifiques un valor sensible literal, asegúrate de usar una variable ENV para que no quede registrado nada sensible en tu historial
  • La bandera --providers te permite enviar a uno o más proveedores a la vez

❌ Borrado y borrado múltiple desde proveedores

Los proveedores de Teller admiten eliminar valores de los proveedores.

root@kitploit:~
$ teller delete --providers new --map-id one DELETE_ME

Algunas notas:

  • Puedes especificar varias claves para eliminar, por ejemplo:
  • La bandera --providers te permite enviar a uno o más proveedores a la vez

YAML Exportación en formato YAML

XXX TODO: reescribir cómo funciona la exportación del comando

Puedes exportar en formato YAML, adecuado para GCloud:

root@kitploit:~
$ teller export yaml

Formato de ejemplo:

root@kitploit:~
FOO: "1"
KEY: VALUE

JSON Exportación en formato JSON

Puedes exportar en formato JSON, adecuado para procesarlo con jq u otros flujos de trabajo:

root@kitploit:~
$ teller export json

Formato de ejemplo:

root@kitploit:~
{
  "FOO": "1"
}

Proveedores

Puedes obtener una lista de los proveedores y sus valores de configuración descritos en la documentación.

Lista de verificación de pruebas:

  • docker en windows: si tienes una prueba basada en contenedores que usa Docker, asegúrate de excluirla en Windows usando #[cfg(not(windows))]

  • semántica de recursos: al construir proveedores, alinéate con las semánticas de vacío y no encontrado como dos semánticas diferentes: si un proveedor admite una semántica explícita de "no encontrado" (404, NotFound, etc.), usa Error::NotFound. De lo contrario, cuando un proveedor señale una semántica de "no encontrado" como una bolsa de datos vacía, devuelve un KV[] vacío (es decir, no traduzcas una semántica de "vacío" a "no encontrado").

Pruebas

Las pruebas se realizan con:

root@kitploit:~
$ cargo test --all --all-features

Y requiere Docker (o equivalente) en tu máquina.

Agradecimientos:

A todos los Contribuidores: vosotros hacéis que esto sea posible, ¡gracias!

Código de conducta

Teller sigue el Código de Conducta de CNCF

Derechos de autor

Copyright (c) 2024 @jondot. Consulta LICENSE para más detalles.

Descargar herramienta