Capítulo 56. Uso de Ansible para gestionar las bóvedas de servicio de IdM: almacenamiento y recuperación de secretos


Esta sección muestra cómo un administrador puede utilizar el módulo ansible-freeipa vault para almacenar de forma segura un secreto de servicio en una ubicación centralizada. La bóveda utilizada en el ejemplo es asimétrica, lo que significa que para utilizarla, el administrador necesita realizar los siguientes pasos:

  1. Genere una clave privada utilizando, por ejemplo, la utilidad openssl.
  2. Generar una clave pública basada en la clave privada.

El secreto del servicio se encripta con la clave pública cuando un administrador lo archiva en la bóveda. Después, una instancia de servicio alojada en una máquina específica del dominio recupera el secreto utilizando la clave privada. Sólo el servicio y el administrador pueden acceder al secreto.

Si el secreto está comprometido, el administrador puede reemplazarlo en la bóveda de servicios y luego redistribuirlo a aquellas instancias de servicio individuales que no han sido comprometidas.

Requisitos previos

Esta sección incluye estos procedimientos:

En los procedimientos:

  • admin es el administrador que gestiona la contraseña del servicio.
  • private-key-to-an-externally-signed-certificate.pem es el archivo que contiene el secreto del servicio, en este caso una clave privada de un certificado firmado externamente. No confundas esta clave privada con la clave privada utilizada para recuperar el secreto de la bóveda.
  • secret_vault es la bóveda creada para almacenar el secreto del servicio.
  • HTTP/webserver1.idm.example.com es el servicio propietario de la bóveda.
  • HTTP/webserver2.idm.example.com y HTTP/webserver3.idm.example.com son los servicios de los miembros de la bóveda.
  • service-public.pem es la clave pública del servicio utilizada para cifrar la contraseña almacenada en password_vault.
  • service-private.pem es la clave privada del servicio utilizada para descifrar la contraseña almacenada en secret_vault.

Esta sección muestra cómo un administrador de Gestión de Identidades (IdM) puede utilizar un libro de jugadas de Ansible para crear un contenedor de bóveda de servicio con una o más bóvedas privadas para almacenar de forma segura la información sensible. En el ejemplo utilizado en el procedimiento siguiente, el administrador crea una bóveda asimétrica denominada secret_vault. Esto asegura que los miembros de la bóveda tienen que autenticarse usando una clave privada para poder recuperar el secreto en la bóveda. Los miembros de la bóveda podrán recuperar el archivo desde cualquier cliente IdM.

Requisitos previos

  • Ha instalado el paquete ansible-freeipa en el controlador de Ansible. Este es el host en el que se ejecutan los pasos del procedimiento.
  • Ya conoces la contraseña de IdM administrator.

Procedimiento

  1. Navegue hasta el directorio /usr/share/doc/ansible-freeipa/playbooks/vault:

    $ cd /usr/share/doc/ansible-freeipa/playbooks/vault
    Copy to Clipboard Toggle word wrap
  2. Obtener la clave pública de la instancia de servicio. Por ejemplo, utilizando la utilidad openssl:

    1. Generar la clave privada service-private.pem.

      $ openssl genrsa -out service-private.pem 2048
      Generating RSA private key, 2048 bit long modulus
      .+++
      ...........................................+++
      e is 65537 (0x10001)
      Copy to Clipboard Toggle word wrap
    2. Generar la clave pública service-public.pem a partir de la clave privada.

      $ openssl rsa -in service-private.pem -out service-public.pem -pubout
      writing RSA key
      Copy to Clipboard Toggle word wrap
  3. Opcional: Crear un archivo de inventario si no existe, por ejemplo inventory.file:

    $ touch inventory.file
    Copy to Clipboard Toggle word wrap
  4. Abra su archivo de inventario y defina el servidor IdM que desea configurar en la sección [ipaserver]. Por ejemplo, para indicar a Ansible que configure server.idm.example.com, introduzca:

    [ipaserver]
    server.idm.example.com
    Copy to Clipboard Toggle word wrap
  5. Haga una copia del archivo de playbook de Ansible ensure-asymmetric-vault-is-present.yml. Por ejemplo:

    $ cp ensure-asymmetric-vault-is-present.yml ensure-asymmetric-service-vault-is-present-copy.yml
    Copy to Clipboard Toggle word wrap
  6. Abra el archivo ensure-asymmetric-vault-is-present-copy.yml para editarlo.
  7. Añade una tarea que copie la clave pública service-public.pem desde el controlador de Ansible al servidor server.idm.example.com.
  8. Modifique el resto del archivo estableciendo las siguientes variables en la sección de tareas ipavault:

    • Establezca la variable ipaadmin_password con la contraseña del administrador de IdM.
    • Defina el nombre de la bóveda utilizando la variable name, por ejemplo secret_vault.
    • Establezca la variable vault_type en asymmetric.
    • Establezca la variable service con el director del servicio propietario de la bóveda, por ejemplo HTTP/webserver1.idm.example.com.
    • Establezca en public_key_file la ubicación de su clave pública.

      Este es el archivo de Ansible playbook modificado para el ejemplo actual:

    ---
    - name: Tests
      hosts: ipaserver
      become: true
      gather_facts: false
      tasks:
      - name: Copy public key to ipaserver.
        copy:
          src: /path/to/service-public.pem
          dest: /usr/share/doc/ansible-freeipa/playbooks/vault/service-public.pem
          mode: 0600
      - name: Add data to vault, from a LOCAL file.
        ipavault:
          ipaadmin_password: Secret123
          name: secret_vault
          vault_type: asymmetric
          service: HTTP/webserver1.idm.example.com
          public_key_file: /usr/share/doc/ansible-freeipa/playbooks/vault/service-public.pem
    Copy to Clipboard Toggle word wrap
  9. Guarda el archivo.
  10. Ejecuta el libro de jugadas:

    $ ansible-playbook -v -i inventory.file ensure-asymmetric-service-vault-is-present-copy.yml
    Copy to Clipboard Toggle word wrap
Volver arriba
Red Hat logoGithubredditYoutubeTwitter

Aprender

Pruebe, compre y venda

Comunidades

Acerca de la documentación de Red Hat

Ayudamos a los usuarios de Red Hat a innovar y alcanzar sus objetivos con nuestros productos y servicios con contenido en el que pueden confiar. Explore nuestras recientes actualizaciones.

Hacer que el código abierto sea más inclusivo

Red Hat se compromete a reemplazar el lenguaje problemático en nuestro código, documentación y propiedades web. Para más detalles, consulte el Blog de Red Hat.

Acerca de Red Hat

Ofrecemos soluciones reforzadas que facilitan a las empresas trabajar en plataformas y entornos, desde el centro de datos central hasta el perímetro de la red.

Theme

© 2025 Red Hat