infamousjoeg.provisioning
Provisionamiento
Un rol de Ansible para facilitar la tarea de incorporar cuentas en la Seguridad de Acceso Privilegiado (PAS) de CyberArk utilizando la API de Gestión de CyberArk.
Requisitos
Ansible >= v2.5
Variables del Rol
Variable | Descripción | ¿Requerido? |
---|---|---|
cyberark_api_base_url |
La URL base del API de Servicios Web de CyberArk (Ejemplo: https://pvwa.cyberark.com) | Sí |
cyberark_auth_type |
El método de autenticación a usar (CyberArk/LDAP/RADIUS/Windows) | Sí |
cyberark_validate_certs |
Valor booleano para validar SSL (sí/no) | No |
cyberark_username |
Nombre de usuario autorizado para la API | Sí |
cyberark_password |
Contraseña del usuario autorizado para la API | Sí |
cyberark_acct_name |
Valor único de "Nombre" del objeto de credencial en PVWA | Sí |
cyberark_acct_address |
Valor de dirección del objeto de credencial en PVWA | No |
cyberark_acct_username |
Valor de nombre de usuario del objeto de credencial en PVWA | No |
cyberark_acct_password |
Valor de contraseña del objeto de credencial en PVWA | No |
cyberark_acct_platformId |
Plataforma para gestionar el objeto de credencial | Sí |
cyberark_acct_safeName |
Caja para almacenar el objeto de credencial | Sí |
cyberark_acct_secretType |
El tipo de secreto que se está incorporando (contraseña/clave) | Sí |
cyberark_acct_autoManagement |
Valor booleano para activar/desactivar la gestión automática del objeto de credencial (sí/no) | No |
cyberark_acct_manualReason |
La razón por la cual se está desactivando la gestión automática del objeto de credencial | No |
Ejemplo de Playbook
Un ejemplo de cómo desplegar un stack LAMP e incorporar el administrador de base de datos MySQL resultante que se crea durante la inicialización de MySQL.
---
- hosts: localhost
pre_tasks:
- name: Instalar Apache y PHP
yum:
name: ['httpd', 'php', 'php-mysql']
state: present
- name: Instalar Dependencias Específicas del Rol Web
yum:
name: ['git', 'wget', 'curl', 'jq', 'libsemanage-python']
state: present
- name: Iniciar Apache
service:
name: httpd
state: started
enabled: yes
- name: Configurar SELinux para Permitirse Conexión httpd a Base de Datos Remota
seboolean:
name: httpd_can_network_connect_db
state: true
persistent: yes
- name: Crear Página de Inicio index.php
copy:
dest: "/var/www/html/index.php"
content: |
<?php echo "¡Hola Mundo!"; ?>
- name: Instalar Paquete MariaDB
yum:
name: ['mariadb-server', 'MySQL-python']
state: present
- name: Configurar SELinux para Iniciar MySQL en Cualquier Puerto
seboolean:
name: mysql_connect_any
state: true
persistent: yes
- name: Iniciar Servicio MySQL
service:
name: mariadb
state: started
enabled: yes
- name: Crear una Nueva Base de Datos
mysql_db:
name: demo
state: present
collation: utf8_general_ci
- name: Establecer Hecho con el Nombre del Host de la Máquina Remota Actual
set_fact:
mysql_address: "{{ inventory_hostname }}"
- name: Establecer Hecho con Nombre de Usuario de la Base de Datos MySQL
set_fact:
mysql_username: demo
- name: Establecer Hecho con Contraseña Aleatoria para el Usuario de la Base de Datos MySQL
set_fact:
mysql_password: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
no_log: yes
- name: Crear un Usuario de Base de Datos
mysql_user:
name: "{{ mysql_username }}"
password: "{{ mysql_password }}"
priv: "*.*:ALL"
host: localhost
state: present
- name: Copiar datos de ejemplo al sistema de archivos local /tmp/
copy:
src: files/dump.sql
dest: /tmp/dump.sql
- name: Insertar datos de ejemplo en la tabla demo en MySQL
shell: "mysql -u {{ mysql_username }} -p{{ mysql_password }} demo < /tmp/dump.sql"
- name: Reiniciar Apache
service:
name: httpd
state: restarted
- name: Instalar Script de Conexión a la Base de Datos PHP db.php
copy:
src: files/db.php
dest: /var/www/html/db.php
roles:
- role: infamousjoeg.provisioning
cyberark_api_base_url: https://components.cyberarkdemo.example
cyberark_auth_type: LDAP
cyberark_validate_certs: no
cyberark_username: Svc_ProvTest_Fedora
cyberark_password: Cyberark1
cyberark_acct_name: TEST-AUTO-ONBOARD-{{ mysql_address }}-{{ mysql_username }}
cyberark_acct_address: "{{ mysql_address }}"
cyberark_acct_username: "{{ mysql_username }}"
cyberark_acct_password: "{{ mysql_password }}"
cyberark_acct_platformId: MySQL
cyberark_acct_safeName: TEST-AUTO-ONBOARD
cyberark_acct_secretType: password
cyberark_acct_autoManagement: no
cyberark_acct_manualReason: Por motivos de demostración
Prueba
Requisitos
- Python 2.7.x
- Docker CE
- Ansible >= 2.5
pip install --user molecule
pip install molecule[docker]
Uso
Prueba usando Ansible Molecule:
molecule test
Licencia
MIT
Acerca del proyecto
Onboarding and offboarding of credential objects in CyberArk's Privileged Access Security (PAS) Core solution
Instalar
ansible-galaxy install infamousjoeg.provisioning
Licencia
mit
Descargas
213
Propietario
Sr. DevOps Security Engineer for @cyberark