第3章 Ansible を使用した IdM ユーザー vault の管理: シークレットの保存および取得

本章では、Ansible vault モジュールを使用して Identity Management でユーザー vault を管理する方法を説明します。具体的には、ユーザーが Ansible Playbook を使用して以下の 3 つのアクションを実行する方法を説明しています。

異なる IdM クライアント 2 台から保存と取得が可能です。

前提条件

3.1. Ansible を使用して IdM に標準ユーザー vault を存在させる手順

以下の手順に従って、Ansible Playbook を使用して 1 つ以上のプライベート vault を持つ vault コンテナーを作成し、機密情報を安全に保存します。以下の手順で使用する例では、idm_user ユーザーmy_vault という名前の標準タイプの vault を作成します。標準タイプの vault では、ファイルへのアクセス時に idm_user を認証する必要がありません。IdM_user は、ユーザーがログインしている IdM クライアントからファイルを取得できます。

前提条件

  • Ansible コントローラー (手順の内容を実行するホスト) に ansible-freeipa パッケージがインストールされている。
  • idm_user のパスワードを知っている。

手順

  1. /usr/share/doc/ansible-freeipa/playbooks/vault ディレクトリーに移動します。

    $ cd /usr/share/doc/ansible-freeipa/playbooks/vault
  2. inventory.file などのインベントリーファイルを作成します。

    $ touch inventory.file
  3. inventory.file を開き、[ipaserver] セクションに、設定する IdM サーバーを定義します。たとえば、Ansible に対して server.idm.example.com を設定するように指示するには、次のコマンドを実行します。

    [ipaserver]
    server.idm.example.com
  4. Ansible Playbook の ensure-standard-vault-is-present.yml ファイルのコピーを作成します。以下に例を示します。

    $ cp ensure-standard-vault-is-present.yml ensure-standard-vault-is-present-copy.yml
  5. ensure-standard-vault-is-present-copy.yml ファイルを開いて編集します。
  6. ipavault タスクセクションに以下の変数を設定して、ファイルを調整します。

    • ipaadmin_principal 変数は idm_user に設定します。
    • ipaadmin_password 変数は idm_user のパスワードに設定します。
    • user 変数は idm_user に設定します。
    • name 変数は my_vault に設定します。
    • vault_type 変数は standard に設定します。

      今回の例で使用するように変更した Ansible Playbook ファイル:

    ---
    - name: Tests
      hosts: ipaserver
      gather_facts: false
    
      vars_files:
      - /home/user_name/MyPlaybooks/secret.yml
      tasks:
      - ipavault:
          ipaadmin_principal: idm_user
          ipaadmin_password: idm_user_password
          user: idm_user
          name: my_vault
          vault_type: standard
  7. ファイルを保存します。
  8. Playbook を実行します。

    $ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-standard-vault-is-present-copy.yml