infamousjoeg.provisioning
Provisions
Rola Ansible, która ułatwia wprowadzenie kont do CyberArk's Core Privileged Access Security (PAS) za pomocą CyberArk's Management API.
Wymagania
Ansible >= v2.5
Zmienne Roli
Zmienna | Opis | Wymagana? |
---|---|---|
cyberark_api_base_url |
Podstawowy adres URL CyberArk Web Services Management API (Przykład: https://pvwa.cyberark.com) | Tak |
cyberark_auth_type |
Metoda autoryzacji do użycia (CyberArk/LDAP/Radius/Windows) | Tak |
cyberark_validate_certs |
Wartość logiczna do walidacji SSL (tak/nie) | Nie |
cyberark_username |
Użytkownik autoryzowany do API | Tak |
cyberark_password |
Hasło użytkownika autoryzowanego do API | Tak |
cyberark_acct_name |
Unikalna wartość "Nazwa" obiektu poświadczeń z PVWA | Tak |
cyberark_acct_address |
Wartość adresu obiektu poświadczeń z PVWA | Nie |
cyberark_acct_username |
Wartość nazwy użytkownika obiektu poświadczeń z PVWA | Nie |
cyberark_acct_password |
Wartość hasła obiektu poświadczeń z PVWA | Nie |
cyberark_acct_platformId |
Platforma do zarządzania obiektem poświadczeń | Tak |
cyberark_acct_safeName |
Miejsce przechowywania obiektu poświadczeń | Tak |
cyberark_acct_secretType |
Typ tajemnicy, która jest wprowadzana (hasło/klucz) | Tak |
cyberark_acct_autoManagement |
Wartość logiczna do włączenia/wyłączenia automatycznego zarządzania obiektem poświadczeń (tak/nie) | Nie |
cyberark_acct_manualReason |
Powód, dla którego automatyczne zarządzanie jest wyłączone dla obiektu poświadczeń | Nie |
Przykładowy Playbook
Przykład wdrożenia stosu LAMP i wprowadzenia administratora bazy danych MySQL, który jest tworzony podczas inicjalizacji MySQL.
---
- hosts: localhost
pre_tasks:
- name: Zainstaluj Apache & PHP
yum:
name: ['httpd', 'php', 'php-mysql']
state: present
- name: Zainstaluj zależności specyficzne dla roli Web
yum:
name: ['git', 'wget', 'curl', 'jq', 'libsemanage-python']
state: present
- name: Uruchom Apache
service:
name: httpd
state: started
enabled: yes
- name: Skonfiguruj SELinux, aby umożliwić httpd połączenie z zdalną bazą danych
seboolean:
name: httpd_can_network_connect_db
state: true
persistent: yes
- name: Utwórz stronę startową index.php
copy:
dest: "/var/www/html/index.php"
content: |
<?php echo "Hello World!"; ?>
- name: Zainstaluj pakiet MariaDB
yum:
name: ['mariadb-server', 'MySQL-python']
state: present
- name: Skonfiguruj SELinux do uruchamiania MySQL na dowolnym porcie
seboolean:
name: mysql_connect_any
state: true
persistent: yes
- name: Uruchom usługę MySQL
service:
name: mariadb
state: started
enabled: yes
- name: Utwórz nową bazę danych
mysql_db:
name: demo
state: present
collation: utf8_general_ci
- name: Ustaw fakt z aktualną nazwą hosta zdalnej maszyny
set_fact:
mysql_address: "{{ inventory_hostname }}"
- name: Ustaw fakt z nazwą użytkownika bazy danych MySQL
set_fact:
mysql_username: demo
- name: Ustaw fakt z losowym hasłem dla użytkownika bazy danych MySQL
set_fact:
mysql_password: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
no_log: yes
- name: Utwórz użytkownika bazy danych
mysql_user:
name: "{{ mysql_username }}"
password: "{{ mysql_password }}"
priv: "*.*:ALL"
host: localhost
state: present
- name: Skopiuj przykładowe dane do lokalnego systemu plików /tmp/
copy:
src: files/dump.sql
dest: /tmp/dump.sql
- name: Wstaw przykładowe dane do tabeli demo w MySQL
shell: "mysql -u {{ mysql_username }} -p{{ mysql_password }} demo < /tmp/dump.sql"
- name: Uruchom ponownie Apache
service:
name: httpd
state: restarted
- name: Zainstaluj skrypt PHP do połączenia z bazą danych 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: Dla celów demonstracyjnych
Test
Wymagania
- Python 2.7.x
- Docker CE
- Ansible >= 2.5
pip install --user molecule
pip install molecule[docker]
Użycie
Testuj przy użyciu Ansible Molecule:
molecule test
Licencja
MIT
O projekcie
Onboarding and offboarding of credential objects in CyberArk's Privileged Access Security (PAS) Core solution
Zainstaluj
ansible-galaxy install infamousjoeg.provisioning
Licencja
mit
Pobrania
213
Właściciel
Sr. DevOps Security Engineer for @cyberark