Red Hat Training
A Red Hat training course is available for RHEL 8
56.3. Almacenamiento de un secreto de servicio IdM en una bóveda asimétrica mediante Ansible
Esta sección muestra cómo un administrador de Gestión de Identidades (IdM) puede utilizar un libro de jugadas de Ansible para almacenar un secreto en una bóveda de servicio para que pueda ser recuperado posteriormente por el servicio. En el ejemplo utilizado en el procedimiento siguiente, el administrador almacena un archivo PEM
con el secreto en una bóveda asimétrica llamada secret_vault. Esto asegura que el servicio tendrá que autenticarse usando una clave privada para poder recuperar el secreto de 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.
- Ha creado una bóveda asimétrica para almacenar el secreto de servicio.
- El secreto se almacena localmente en el controlador Ansible, por ejemplo en el archivo /usr/share/doc/ansible-freeipa/playbooks/vault/private-key-to-an-externally-signed-certificate.pem.
Procedimiento
Navegue hasta el directorio
/usr/share/doc/ansible-freeipa/playbooks/vault
:$ cd /usr/share/doc/ansible-freeipa/playbooks/vault
Opcional: Crear un archivo de inventario si no existe, por ejemplo inventory.file:
$ touch inventory.file
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
Haga una copia del archivo de playbook de Ansible data-archive-in-asymmetric-vault.yml. Por ejemplo:
$ cp data-archive-in-asymmetric-vault.yml data-archive-in-asymmetric-vault-copy.yml
- Abra el archivo data-archive-in-asymmetric-vault-copy.yml para editarlo.
Modifique el 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. -
Establezca la variable
name
con el nombre de la bóveda, por ejemplo secret_vault. -
Establezca la variable
service
con el propietario del servicio de la bóveda, por ejemplo HTTP/webserver1.idm.example.com. -
Establezca la variable
in
en "{{ lookup('file', 'private-key-to-an-externally-signed-certificate.pem') | b64encode }}". Esto garantiza que Ansible recupere el archivo con la clave privada del directorio de trabajo en el controlador de Ansible y no del servidor de IdM. Establezca la variable
action
enmember
.Este es el archivo de Ansible playbook modificado para el ejemplo actual:
--- - name: Tests hosts: ipaserver become: true gather_facts: false tasks: - ipavault: ipaadmin_password: Secret123 name: secret_vault service: HTTP/webserver1.idm.example.com in: "{{ lookup('file', 'private-key-to-an-externally-signed-certificate.pem') | b64encode }}" action: member
-
Establezca la variable
- Guarda el archivo.
Ejecuta el libro de jugadas:
$ ansible-playbook -v -i inventory.file data-archive-in-asymmetric-vault-copy.yml