infamousjoeg.provisioning
Provisionnement
Un rôle Ansible pour faciliter l'intégration des comptes dans la CyberArk Core Privileged Access Security (PAS) en utilisant l'API de gestion de CyberArk.
Exigences
Ansible >= v2.5
Variables du Rôle
Variable | Description | Requis ? |
---|---|---|
cyberark_api_base_url |
L'URL de base de l'API de gestion des services Web CyberArk (Exemple : https://pvwa.cyberark.com) | Oui |
cyberark_auth_type |
La méthode d'authentification à utiliser (CyberArk/LDAP/RADIUS/Windows) | Oui |
cyberark_validate_certs |
Valeur booléenne pour valider SSL (oui/non) | Non |
cyberark_username |
Nom d'utilisateur autorisé pour l'API | Oui |
cyberark_password |
Mot de passe du nom d'utilisateur autorisé pour l'API | Oui |
cyberark_acct_name |
Valeur unique "Nom" de l'objet d'identification depuis PVWA | Oui |
cyberark_acct_address |
Valeur d'adresse de l'objet d'identification depuis PVWA | Non |
cyberark_acct_username |
Valeur de nom d'utilisateur de l'objet d'identification depuis PVWA | Non |
cyberark_acct_password |
Valeur de mot de passe de l'objet d'identification depuis PVWA | Non |
cyberark_acct_platformId |
Plateforme pour gérer l'objet d'identification | Oui |
cyberark_acct_safeName |
Coffre pour stocker l'objet d'identification | Oui |
cyberark_acct_secretType |
Le type de secret à intégrer (mot de passe/clés) | Oui |
cyberark_acct_autoManagement |
Valeur booléenne pour activer/désactiver la gestion automatique de l'objet d'identification (oui/non) | Non |
cyberark_acct_manualReason |
La raison pour laquelle la gestion automatique est désactivée sur l'objet d'identification | Non |
Exemple de Playbook
Un exemple de déploiement d'une pile LAMP et d'intégration de l'administrateur de base de données MySQL résultant créé lors de l'initialisation de MySQL.
---
- hosts: localhost
pre_tasks:
- name: Installer Apache & PHP
yum:
name: ['httpd', 'php', 'php-mysql']
state: present
- name: Installer les dépendances spécifiques au rôle Web
yum:
name: ['git', 'wget', 'curl', 'jq', 'libsemanage-python']
state: present
- name: Démarrer Apache
service:
name: httpd
state: started
enabled: yes
- name: Configurer SELinux pour autoriser la connexion httpd à la base de données distante
seboolean:
name: httpd_can_network_connect_db
state: true
persistent: yes
- name: Créer la page de démarrage index.php
copy:
dest: "/var/www/html/index.php"
content: |
<?php echo "Hello World!"; ?>
- name: Installer le paquet MariaDB
yum:
name: ['mariadb-server', 'MySQL-python']
state: present
- name: Configurer SELinux pour démarrer MySQL sur n'importe quel port
seboolean:
name: mysql_connect_any
state: true
persistent: yes
- name: Démarrer le service MySQL
service:
name: mariadb
state: started
enabled: yes
- name: Créer une nouvelle base de données
mysql_db:
name: demo
state: present
collation: utf8_general_ci
- name: Définir un fait avec le nom d'hôte actuel de la machine distante
set_fact:
mysql_address: "{{ inventory_hostname }}"
- name: Définir un fait avec le nom d'utilisateur de la base de données MySQL
set_fact:
mysql_username: demo
- name: Définir un fait avec un mot de passe aléatoire pour l'utilisateur de la base de données MySQL
set_fact:
mysql_password: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
no_log: yes
- name: Créer un utilisateur de base de données
mysql_user:
name: "{{ mysql_username }}"
password: "{{ mysql_password }}"
priv: "*.*:ALL"
host: localhost
state: present
- name: Copier des données d'exemple dans le système de fichiers local /tmp/
copy:
src: files/dump.sql
dest: /tmp/dump.sql
- name: Insérer des données d'exemple dans la table demo dans MySQL
shell: "mysql -u {{ mysql_username }} -p{{ mysql_password }} demo < /tmp/dump.sql"
- name: Redémarrer Apache
service:
name: httpd
state: restarted
- name: Installer le script de connexion à la base de données 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: À des fins de démonstration
Test
Exigences
- Python 2.7.x
- Docker CE
- Ansible >= 2.5
pip install --user molecule
pip install molecule[docker]
Utilisation
Tester avec Ansible Molecule :
molecule test
Licence
MIT
À propos du projet
Onboarding and offboarding of credential objects in CyberArk's Privileged Access Security (PAS) Core solution
Installer
ansible-galaxy install infamousjoeg.provisioning
Licence
mit
Téléchargements
213
Propriétaire
Sr. DevOps Security Engineer for @cyberark