infamousjoeg.provisioning

プロビジョニング

CyberArkのManagement APIを使用して、CyberArkのCore Privileged Access Security (PAS) にアカウントをオンボーディングする作業を容易にするAnsibleロールです。

Ansible Galaxyで利用可能

要件

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