infamousjoeg.provisioning
プロビジョニング
CyberArkのManagement APIを使用して、CyberArkのCore Privileged Access Security (PAS) にアカウントをオンボーディングする作業を容易にするAnsibleロールです。
要件
Ansible >= v2.5
ロール変数
変数 | 説明 | 必要? |
---|---|---|
cyberark_api_base_url |
CyberArk Web Services Management APIのベースURL (例: https://pvwa.cyberark.com) | はい |
cyberark_auth_type |
使用する認証方法 (CyberArk/LDAP/Radius/Windows) | はい |
cyberark_validate_certs |
SSLを検証するかどうかの真偽値 (はい/いいえ) | いいえ |
cyberark_username |
API認証されたユーザー名 | はい |
cyberark_password |
API認証されたユーザー名のパスワード | はい |
cyberark_acct_name |
PVWAから取得した認証情報オブジェクトのユニークな「名前」値 | はい |
cyberark_acct_address |
PVWAから取得した認証情報オブジェクトのアドレス値 | いいえ |
cyberark_acct_username |
PVWAから取得した認証情報オブジェクトのユーザー名値 | いいえ |
cyberark_acct_password |
PVWAから取得した認証情報オブジェクトのパスワード値 | いいえ |
cyberark_acct_platformId |
認証情報オブジェクトを管理するプラットフォーム | はい |
cyberark_acct_safeName |
認証情報オブジェクトを格納するセーフの名前 | はい |
cyberark_acct_secretType |
オンボードする秘密の種類 (パスワード/キー) | はい |
cyberark_acct_autoManagement |
認証情報オブジェクトの自動管理を有効/無効にする真偽値 (はい/いいえ) | いいえ |
cyberark_acct_manualReason |
認証情報オブジェクトの自動管理を無効にする理由 | いいえ |
例プレイブック
LAMPスタックをデプロイし、MySQLの初期化中に作成されるMySQLデータベース管理者をオンボードする例です。
---
- hosts: localhost
pre_tasks:
- name: Apache & PHPをインストール
yum:
name: ['httpd', 'php', 'php-mysql']
state: present
- name: Webロール特有の依存関係をインストール
yum:
name: ['git', 'wget', 'curl', 'jq', 'libsemanage-python']
state: present
- name: Apacheを起動
service:
name: httpd
state: started
enabled: yes
- name: SELinuxを設定してhttpdがリモートデータベースに接続できるようにする
seboolean:
name: httpd_can_network_connect_db
state: true
persistent: yes
- name: index.php スタートページを作成
copy:
dest: "/var/www/html/index.php"
content: |
<?php echo "Hello World!"; ?>
- name: MariaDBパッケージをインストール
yum:
name: ['mariadb-server', 'MySQL-python']
state: present
- name: SELinuxを設定してMySQLを任意のポートで開始できるようにする
seboolean:
name: mysql_connect_any
state: true
persistent: yes
- name: MySQLサービスを起動
service:
name: mariadb
state: started
enabled: yes
- name: 新しいデータベースを作成
mysql_db:
name: demo
state: present
collation: utf8_general_ci
- name: 現在のリモートマシンのホスト名を設定
set_fact:
mysql_address: "{{ inventory_hostname }}"
- name: MySQLデータベースのユーザー名を設定
set_fact:
mysql_username: demo
- name: MySQLデータベースユーザーのランダムなパスワードを設定
set_fact:
mysql_password: "{{ lookup('password', '/dev/null length=15 chars=ascii_letters') }}"
no_log: yes
- name: データベースユーザーを作成
mysql_user:
name: "{{ mysql_username }}"
password: "{{ mysql_password }}"
priv: "*.*:ALL"
host: localhost
state: present
- name: サンプルデータをローカルファイルシステムを/tmp/にコピー
copy:
src: files/dump.sql
dest: /tmp/dump.sql
- name: MySQLのデモテーブルにサンプルデータを挿入
shell: "mysql -u {{ mysql_username }} -p{{ mysql_password }} demo < /tmp/dump.sql"
- name: Apacheを再起動
service:
name: httpd
state: restarted
- name: データベース接続用の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: デモ用の理由
テスト
要件
- Python 2.7.x
- Docker CE
- Ansible >= 2.5
pip install --user molecule
pip install molecule[docker]
使用法
Ansible Moleculeを使ってテスト:
molecule test
ライセンス
MIT
プロジェクトについて
Onboarding and offboarding of credential objects in CyberArk's Privileged Access Security (PAS) Core solution
インストール
ansible-galaxy install infamousjoeg.provisioning
ライセンス
mit
ダウンロード
213
所有者
Sr. DevOps Security Engineer for @cyberark