Ansible
Bitwarden ofrece una integración con Ansible para recuperar secretos del Administrador de secretos e inyectarlos en tu libro de jugadas de Ansible. El plugin de búsqueda inyectará los secretos recuperados como variables de entorno enmascaradas dentro de un libro de jugadas de Ansible. Para configurar la colección:
Recomendamos instalar paquetes de Python en un entorno virtual de Python.
Versión actual de Ansible instalada en su sistema.
Administrador de secretos de Bitwarden con una cuenta de servicio activa.
Antes de configurar la colección de Ansible, también recomendamos que abra el Administrador de secretos para acceder a su token de acceso y cualquier secreto que desee incluir en la configuración.
La siguiente guía es un ejemplo de configuración para la colección de Bitwarden utilizando una máquina Linux.
Instala el SDK de Bitwarden:
Bashpip install bitwarden-sdk
Instala la colección bitwarden.secrets:
Bashansible-galaxy collection install bitwarden.secrets
Ahora que la colección Ansible ha sido instalada, podemos comenzar a llamar a los secretos de Bitwarden desde un playbook de Ansible con bitwarden.secrets.lookup
. La siguiente sección incluirá ejemplos para demostrar este proceso.
nota
Los usuarios de macOS pueden necesitar establecer la siguiente variable de entorno en shell para evitar problemas de Ansible aguas arriba.
exportar OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES
Para obtener secretos del Administrador de secretos en tu guion, hay dos métodos:
Usando el Administrador de secretos, podemos establecer de manera segura nuestro token de acceso como una variable de entorno en la shell y usar el libro de jugadas para recuperar el secreto. Para autenticar el token de acceso:
En la terminal, ejecute el siguiente comando para establecer su variable de entorno de token de acceso:
Bashexport BWS_ACCESS_TOKEN=<ACCESS_TOKEN_VALUE>
Ahora que la variable de entorno ha sido establecida, podemos usar el plugin de búsqueda para poblar variables en nuestro playbook. Por ejemplo:
Bashvars: database_password: "{{ lookup('bitwarden.secrets.lookup', '<SECRET_ID>') }}"
nota
Al establecer BWS_ACCESS_TOKEN
como una variable de entorno, el token de acceso puede ser referenciado sin incluir el valor crudo del token de acceso en el libro de jugadas.
El token de acceso del Administrador de secretos también puede ser referenciado dentro del propio libro de jugadas. Este método no requeriría que utilices la variable de entorno BWS_ACCESS_TOKEN
en tu shell, sin embargo, el valor del token de acceso se almacenará en el playbook en sí.
Los tokens de acceso pueden incluirse en el libro de jugadas con el siguiente ejemplo:
Bashvars: password_with_a_different_access_token: "{{ lookup('bitwarden.secrets.lookup', '<SECRET_ID_VALUE>', access_token='<ACCESS_TOKEN_VALUE>') }}"
Usando este método, se pueden referenciar múltiples tokens de acceso en un solo libro de jugadas.
Los usuarios autoalojados de Bitwarden pueden recuperar secretos de su servidor Bitwarden incluyendo el base_url,
api_url
y identity_url
:
Bashvars:
secret_from_other_server: "{{ lookup('bitwarden.secrets.lookup', '<SECRET_ID>', base_url='https://bitwarden.example.com' ) }}"
secret_advanced: >-
{{ lookup('bitwarden.secrets.lookup', '<SECRET_ID>',
api_url='https://bitwarden.example.com/api',
identity_url='https://bitwarden.example.com/identity' ) }}
El siguiente es un ejemplo de un archivo de libro de jugadas con varias opciones de configuración.
Bash---
- name: Using secrets from Bitwarden
vars:
bws_access_token: "{{ lookup('env', 'CUSTOM_ACCESS_TOKEN_VAR') }}"
state_file_dir: "{{ '~/.config/bitwarden-sm' | expanduser }}"
secret_id: "9165d7a8-2c22-476e-8add-b0d50162c5cc"
secret: "{{ lookup('bitwarden.secrets.lookup', secret_id) }}"
secret_with_field: "{{ lookup('bitwarden.secrets.lookup', secret_id, field='note' ) }}"
secret_with_access_token: "{{ lookup('bitwarden.secrets.lookup', secret_id, access_token=bws_access_token ) }}"
secret_with_state_file: "{{ lookup('bitwarden.secrets.lookup', secret_id, state_file_dir=state_file_dir ) }}"
tasks:
- name: Use the secret in a task
include_tasks: tasks/add_db_user.yml # reference the secrets with "{{ secret }}", "{{ secret_with_field }}", etc.
nota
En el ejemplo anterior, el CUSTOM_ACCESS_TOKEN_VAR
demuestra que puedes incluir múltiples tokens de acceso diferentes. Estos no tienen que ser tarjetas duras y pueden ser suministrados de manera segura a tu libro de jugadas.
Variable | Información adicional |
---|---|
| Busca el token de acceso |
| Un directorio donde tu estado de autenticación puede ser almacenado en caché. |
| ID del secreto que deseas buscar. |
| Busca un valor secreto y guárdalo como una variable llamada |
| Busca un secreto con salida de campo adicional. En este ejemplo, la búsqueda devolverá el valor de la |
| Busque un secreto con el valor del token de acceso incluido en la solicitud. |
| Busque un secreto con el archivo de estado preconfigurado incluido en la solicitud. |
Además del secret_id
, se pueden incluir varios campos en el bitwarden.secrets.lookup
. El siguiente objeto JSON incluye todos los campos que pueden ser referenciados en la búsqueda del libro de jugadas:
Bash{
"id": "be8e0ad8-d545-4017-a55a-b02f014d4158",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"projectId": "e325ea69-a3ab-4dff-836f-b02e013fe530",
"key": "SES_KEY",
"value": "0.982492bc-7f37-4475-9e60",
"note": "",
"creationDate": "2023-06-28T20:13:20.643567Z",
"revisionDate": "2023-06-28T20:13:20.643567Z"
}
Para recuperar campos adicionales como "nota"
, el siguiente comando puede ser añadido al libro de jugadas:
Bash vars:
database_password: "{{ lookup('bitwarden.secrets.lookup', '0037ed90-efbb-4d59-a798-b103012487a0', field='note') }}"
Sugerir cambios en esta página
¿Cómo podemos mejorar esta página para usted?
Si tiene preguntas técnicas, sobre facturación o sobre el producto, póngase en contacto con el servicio de asistencia.