Identity Management での Vault の操作
IdM での機密データの保存と管理
概要
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに関するご意見やご感想をお寄せください。また、改善点があればお知らせください。
Jira からのフィードバック送信 (アカウントが必要)
- Jira の Web サイトにログインします。
- 上部のナビゲーションバーで Create をクリックします。
- Summary フィールドにわかりやすいタイトルを入力します。
- Description フィールドに、ドキュメントの改善に関するご意見を記入してください。ドキュメントの該当部分へのリンクも追加してください。
- ダイアログの下部にある Create をクリックします。
第1章 IdM の Vault リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) の Vault について詳しく説明します。
1.1. Vault およびその利点 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) の Vault を使用すると、すべての機密データを 1 カ所でセキュアかつ便利に保存できます。
Vault は、シークレットの保存、取得、共有、および復旧を行うための IdM のセキュアな場所です。シークレットは、通常は一部のユーザーまたはエンティティーグループのみがアクセスできる、認証情報などの機密データを指します。たとえば、シークレットには以下が含まれます。
- パスワード
- 暗証番号
- SSH 秘密鍵
Vault はパスワードマネージャーと類似しています。Vault を使用する場合、通常、パスワードマネージャーと同様に、ロックを解除するためのプライマリーのパスワードを 1 つ生成し、記憶して、Vault に保存されている情報にアクセスする必要があります。ただし、標準の Vault を指定することも可能です。標準の Vault では、Vault に保存されているシークレットにアクセスするためにパスワードを入力する必要はありません。
IdM の Vault は、認証情報を保存して、IdM 関連以外の外部サービスに対して認証を可能にすることを目的としています。
IdM の Vault の特徴は次のとおりです。
- Vault にアクセスできるのは、Vault の所有者と、Vault メンバーとして Vault の所有者が選択した IdM ユーザーだけです。さらに、IdM 管理者はすべての Vault にアクセスできます。
- ユーザーに Vault を作成する権限がない場合には、IdM 管理者が Vault を作成し、そのユーザーを所有者として設定できます。
- ユーザーおよびサービスは、IdM ドメインに登録されているマシンからであれば、Vault に保存されているシークレットにアクセスできます。
- Vault 1 つに追加できるシークレットは 1 つのみです (例: ファイル 1 つ)。ただし、ファイル自体には、パスワード、キータブ、証明書など複数のシークレットを含めることができます。
Vault は、IdM Web UI ではなく、IdM コマンドライン (CLI) からしか利用できません。
1.2. Vault の所有者、メンバー、および管理者 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) で識別される Vault ユーザータイプは以下のとおりです。
- Vault 所有者
Vault 所有者は、Vault の基本的な管理権限のあるユーザーまたはサービスです。たとえば、Vault の所有者は Vault のプロパティーを変更したり、新しい Vault メンバーを追加したりできます。
各 Vault には最低でも所有者が 1 人必要です。Vault には複数の所有者を指定することもできます。
- Vault メンバー
- Vault メンバーは、別のユーザーまたはサービスが作成した Vault にアクセスできるユーザーまたはサービスです。
- Vault 管理者
Vault 管理者は全 Vault に制限なくアクセスでき、Vault の操作をすべて実行できます。IdM のロールベースアクセス制御 (RBAC) のコンテキストでは、Vault 管理者は
Vault Administrators特権を持つ IdM ユーザーです。注記対称および非対称 Vault は、パスワードまたは鍵で保護されます。以下を実行する管理者には、特別なアクセス制御ルールが適用されます。
- 対称および非対称 Vault のシークレットにアクセスする。
- Vault のパスワードまたは鍵を変更またはリセットする。
- Vault ユーザー
Vault ユーザーは、Vault のあるコンテナー内のユーザーです。
Vault ユーザー情報は、ipa Vault-showなどの特定のコマンドの出力に表示されます。ipa vault-show my_vault
$ ipa vault-show my_vault Vault name: my_vault Type: standard Owner users: user Vault user: userCopy to Clipboard Copied! Toggle word wrap Toggle overflow Vault コンテナーおよびユーザー Vault の詳細は、Vault コンテナー を参照してください。
1.3. 標準、対称、および非対称 Vault リンクのコピーリンクがクリップボードにコピーされました!
IdM では、セキュリティーおよびアクセス制御のレベルをもとに Vault を以下のタイプに分類します。
- 標準 Vault
- Vault 所有者と Vault メンバーが、パスワードや鍵を使用せずに Vault 内のシークレットをアーカイブおよび取得できます。
- 対称 Vault
- Vault のシークレットが対称鍵を使用して保護されます。Vault の所有者とメンバーは、シークレットをアーカイブして取得できますが、Vault パスワードを指定する必要があります。
- 非対称 Vault
- Vault のシークレットが非対称鍵で保護されます。ユーザーは公開鍵を使用してシークレットをアーカイブし、秘密鍵を使用してシークレットを取得します。Vault 所有者はシークレットをアーカイブおよび取得できます。Vault メンバーはシークレットのアーカイブだけ実行できます。
1.5. Vault コンテナー リンクのコピーリンクがクリップボードにコピーされました!
Vault コンテナーは Vault のコレクションです。以下の表 は、Identity Management (IdM) が提供するデフォルトの Vault コンテナーのリストです。
| タイプ | 説明 | 目的 |
|---|---|---|
| ユーザーコンテナー | ユーザーのプライベートコンテナー | 特定ユーザーのユーザー Vault を格納します。 |
| サービスコンテナー | サービスのプライベートコンテナー | 特定のサービスのサービス Vault を格納します。 |
| 共有コンテナー | 複数のユーザーおよびサービスのコンテナー | 複数のユーザーまたはサービスで共有可能な Vault を格納します。 |
IdM では、ユーザーまたはサービスのプライベート Vault が初めて作成されると、ユーザーまたはサービスごとにユーザーコンテナーおよびサービスコンテナーを自動的に作成します。ユーザーまたはサービスが削除されると、IdM はコンテナーとそのコンテンツを削除します。
1.6. 基本的な IdM Vault コマンド リンクのコピーリンクがクリップボードにコピーされました!
以下に概説する基本的なコマンドを使用して、Identity Management (IdM) Vault を管理できます。以下の表 には、ipa vault-* コマンドとその目的が記載されています。
ipa vault-* コマンドを実行する前に、IdM ドメインのサーバー 1 台以上に Key Recovery Authority (KRA) 証明書システムコンポーネントをインストールします。詳細は、IdM での Key Recovery Authority (KRA) のインストール を参照してください。
| コマンド | 目的 |
|---|---|
|
| IdM vault コマンドおよびサンプル Vault コマンドの概念などの情報を表示します。 |
|
|
特定の |
|
| Vault メンバーとしてユーザー Vault にアクセスする場合は、Vault 所有者を指定する必要があります。Vault 所有者を指定しない場合には、IdM により Vault が見つからない旨が通知されます。 ipa vault-show user_vault
|
|
| 共有 Vault にアクセスする場合には、アクセスする Vault が共有 Vault であることを指定する必要があります。それ以外の場合は、IdM により Vault が見つからない旨が通知されます。 ipa vault-show shared_vault
|
1.7. IdM での Key Recovery Authority のインストール リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、特定の IdM サーバーに Key Recovery Authority (KRA) Certificate System (CS) コンポーネントをインストールして、Identity Management (IdM) の Vault を有効にします。
前提条件
-
IdM サーバーに
rootとしてログインしている。 - IdM 認証局が IdM サーバーにインストールされている。
-
Directory Manager認証情報がある。
手順
KRA をインストールします。
ipa-kra-install
# ipa-kra-installCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Vault サービスの可用性と耐障害性を高めるには、2 台以上の IdM サーバーに KRA をインストールします。複数の KRA サーバーを保持することで、データの損失を防ぎます。
非表示のレプリカに、IdM クラスターの最初の KRA をインストールできます。ただし、追加の KRA をインストールするには、非表示レプリカを一時的にアクティベートしてから、表示されているレプリカに KRA のクローンをインストールする必要があります。その後に、最初に非表示レプリカを再度非表示にできます。
第2章 IdM ユーザー Vault の使用: シークレットの保存および取得 リンクのコピーリンクがクリップボードにコピーされました!
この章では、Identity Management でユーザー Vault を使用する方法を説明します。具体的には、IdM Vault にシークレットを保存する方法と、シークレットを取得する方法を説明します。異なる IdM クライアント 2 台から保存と取得が可能です。
前提条件
- Key Recovery Authority (KRA) Certificate System コンポーネントが IdM ドメインの 1 つ以上のサーバーにインストールされている。詳細は、IdM での Key Recovery Authority (KRA) のインストール を参照してください。
2.1. ユーザー Vault でのシークレットの保存 リンクのコピーリンクがクリップボードにコピーされました!
この手順に従って、機密情報を含むファイルを安全に保存するための 1 つ以上のプライベート Vault を含む Vault コンテナーを作成します。以下の手順で使用する例では、idm_user ユーザーが標準タイプの Vault を作成します。標準タイプの Vault では、ファイルへのアクセス時に idm_user を認証する必要がありません。idm_user は、ユーザーがログインしている IdM クライアントからファイルを取得できます。
この手順では、以下を想定しています。
- idm_user は Vault を作成するユーザーである。
- my_Vault はユーザーの証明書保存に使用する Vault である。
-
アーカイブした証明書にアクセスするのに Vault のパスワードを指定しなくてもいいように Vault タイプが
standardに設定されている。 - secret.txt は Vault に保存する証明書が含まれるファイルです。
前提条件
- idm_user のパスワードを知っている。
- IdM クライアントであるホストにログインしている。
手順
idm_userの Kerberos Ticket Granting Ticket (TGT) を取得します。kinit idm_user
$ kinit idm_userCopy to Clipboard Copied! Toggle word wrap Toggle overflow ipa Vault-addコマンドに--type standardオプションを指定して、標準 Vault を作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重要最初のユーザー Vault の作成には、同じユーザーが使用されているようにしてください。ユーザーの最初の Vault を作成すると、ユーザーの Vault コンテナーも作成されます。作成エージェントは Vault コンテナーの所有者になります。
たとえば、
adminなどの別のユーザーがuser1の最初のユーザー Vault を作成する場合には、ユーザーの Vault コンテナーの所有者もadminになり、user1はユーザー Vault にアクセスしたり、新しいユーザー Vault を作成したりできません。ipa vault-archiveコマンドに--inオプションを指定して、secret.txtファイルを Vault にアーカイブします。ipa vault-archive my_vault --in secret.txt
$ ipa vault-archive my_vault --in secret.txt ----------------------------------- Archived data into vault "my_vault" -----------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2. ユーザー Vault からのシークレットの取得 リンクのコピーリンクがクリップボードにコピーされました!
Identity Management (IdM) では、ユーザープライベート Vault からシークレットを取得して、ログインしている IdM クライアントに配置できます。
この手順に従って、idm_user という名前の IdM ユーザーが my_vault という名前のユーザープライベート Vault からシークレットを取得して idm_client.idm.example.com に配置します。
前提条件
- idm_user が my_vault の所有者である。
- idm_user が Vault にシークレットをアーカイブしてある。
- my_vault が標準 Vault である。つまり、idm_user は Vault の内容にアクセスするためにパスワードを入力する必要がない。
手順
idm_client に idm_user として SSH 接続します。
ssh idm_user@idm_client.idm.example.com
$ ssh idm_user@idm_client.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow idm_userとしてログインします。kinit user
$ kinit userCopy to Clipboard Copied! Toggle word wrap Toggle overflow --outオプションを指定したipa vault-retrieveコマンドを使用して、Vault の内容を取得し、secret_exported.txtファイルに保存します。ipa vault-retrieve my_vault --out secret_exported.txt
$ ipa vault-retrieve my_vault --out secret_exported.txt -------------------------------------- Retrieved data from vault "my_vault" --------------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow
第3章 Ansible を使用した IdM ユーザー Vault の管理: シークレットの保存および取得 リンクのコピーリンクがクリップボードにコピーされました!
この章では、Ansible vault モジュールを使用して Identity Management でユーザー Vault を管理する方法を説明します。具体的には、ユーザーが Ansible Playbook を使用して以下の 3 つのアクションを実行する方法を説明しています。
異なる IdM クライアント 2 台から保存と取得が可能です。
前提条件
- Key Recovery Authority (KRA) Certificate System コンポーネントが IdM ドメインの 1 つ以上のサーバーにインストールされている。詳細は、IdM での Key Recovery Authority (KRA) のインストール を参照してください。
3.1. Ansible を使用して IdM に標準ユーザー Vault が存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用して 1 つ以上のプライベート Vault を持つ Vault コンテナーを作成し、機密情報を安全に保存します。以下の手順で使用する例では、idm_user ユーザー は my_vault という名前の標準タイプの Vault を作成します。標準タイプの Vault では、ファイルへのアクセス時に idm_user を認証する必要がありません。idm_user は、ユーザーがログインしている IdM クライアントからファイルを取得できます。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - idm_user のパスワードを知っている。
手順
MyPlaybooks ディレクトリーに移動します。
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/ansible-freeipa/playbooks/vault/ensure-standard-vault-is-present.yml Ansible Playbook ファイルのコピーを作成します。以下に例を示します。
cp /usr/share/doc/ansible-freeipa/playbooks/vault/ensure-standard-vault-is-present.yml ensure-standard-vault-is-present-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/vault/ensure-standard-vault-is-present.yml ensure-standard-vault-is-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - ensure-standard-vault-is-present-copy.yml ファイルを開いて編集します。
ipavaultタスクセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_principal変数は idm_user に設定します。 -
ipaadmin_password変数は idm_user のパスワードに設定します。 -
user変数は idm_user に設定します。 -
name変数は my_vault に設定します。 vault_type変数は standard に設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook -v -i inventory.file ensure-standard-vault-is-present-copy.yml
$ ansible-playbook -v -i inventory.file ensure-standard-vault-is-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.2. Ansible を使用して IdM の標準ユーザー Vault でシークレットをアーカイブする手順 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用してパーソナル Vault に機密情報を保存します。この例では、idm_user ユーザーは my_vault という名前の Vault に password.txt という名前で機密情報が含まれるファイルをアーカイブします。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - idm_user のパスワードを知っている。
- idm_user が所有者であるか、my_vault のメンバーユーザーである。
- password.txt (my_vault にアーカイブするシークレット) にアクセスできる。
手順
MyPlaybooks ディレクトリーに移動します。
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-symmetric-vault.yml Ansible Playbook ファイルのコピーを作成します。以下に例を示します。
cp /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-symmetric-vault.yml data-archive-in-symmetric-vault-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-symmetric-vault.yml data-archive-in-symmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - data-archive-in-standard-vault-copy.yml ファイルを開いて編集します。
ipavaultタスクセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_principal変数は idm_user に設定します。 -
ipaadmin_password変数は idm_user のパスワードに設定します。 -
user変数は idm_user に設定します。 -
name変数は my_vault に設定します。 -
in変数は機密情報が含まれるファイルへのパスに設定します。 action変数は member に設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook -v -i inventory.file data-archive-in-standard-vault-copy.yml
$ ansible-playbook -v -i inventory.file data-archive-in-standard-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3. Ansible を使用して IdM の標準ユーザー Vault からシークレットを取得する手順 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用してユーザーのパーソナル Vault からシークレットを取得します。以下の手順で使用する例では、idm_user ユーザーは、my_vault という名前の標準タイプの Vault から機密データを含むファイルを取得して、host01 という名前の IdM クライアントに配置します。ファイルへのアクセス時に idm_user を認証する必要はありません。idm_user は Ansible を使用して、Ansible がインストールされている IdM クライアントからファイルを取得できます。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - idm_user のパスワードを知っている。
- idm_user が my_vault の所有者である。
- idm_user が my_vault にシークレットを保存している。
- Ansible が、シークレットを取得して配置する先の IdM ホストのディレクトリーに書き込みができる。
- idm_user はシークレットを取得して配置する先の IdM ホストのディレクトリーから読み取りができる。
手順
MyPlaybooks ディレクトリーに移動します。
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-symmetric-vault.yml Ansible Playbook ファイルのコピーを作成します。以下に例を示します。
cp /usr/share/doc/ansible-freeipa/playbooks/vault/retrive-data-symmetric-vault.yml retrieve-data-symmetric-vault-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/vault/retrive-data-symmetric-vault.yml retrieve-data-symmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、明確に定義されたセクションで、シークレットを取得する IdM クライアントを記載します。たとえば、Ansible に対して host01.idm.example.com にシークレットを取得して配置するよう指示するには、次のコマンドを実行します。
[ipahost] host01.idm.example.com
[ipahost] host01.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow - retrieve-data-standard-vault.yml-copy.yml ファイルを編集のために開きます。
-
hosts変数は ipahost に設定して、ファイルを調整します。 ipavaultタスクセクションに以下の変数を設定して、ファイルを調整します。-
ipaadmin_principal変数は idm_user に設定します。 -
ipaadmin_password変数は idm_user のパスワードに設定します。 -
user変数は idm_user に設定します。 -
name変数は my_vault に設定します。 -
out変数は、シークレットをエクスポートするファイルの完全パスに設定します。 state変数は retrieved に設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook -v -i inventory.file retrieve-data-standard-vault.yml-copy.yml
$ ansible-playbook -v -i inventory.file retrieve-data-standard-vault.yml-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
host01 に user01 として
SSH接続します。ssh user01@host01.idm.example.com
$ ssh user01@host01.idm.example.comCopy to Clipboard Copied! Toggle word wrap Toggle overflow Ansible Playbook ファイルに
out変数で指定したファイルを表示します。vim /tmp/password_exported.txt
$ vim /tmp/password_exported.txtCopy to Clipboard Copied! Toggle word wrap Toggle overflow
これで、エクスポートされたシークレットが表示されます。
関連情報
-
Ansible を使用して IdM Vault およびユーザーシークレットを管理する方法および、Playbook 変数の情報は、
/usr/share/doc/ansible-freeipa/ディレクトリーで利用可能な README-vault.md Markdown ファイルおよび/usr/share/doc/ansible-freeipa/playbooks/vault/で利用可能なサンプルの Playbook を参照してください。
第4章 IdM サービスシークレットの管理: シークレットの保存と取得 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、管理者が Identity Management (IdM) のサービス Vault を使用して、サービスシークレットを一元的な場所にセキュアに保存する方法を説明します。この例で使用される Vault は非対称であるため、これを使用する場合は、管理者は以下の手順を実行する必要があります。
-
opensslユーティリティーなどを使用して秘密鍵を生成する。 - 秘密鍵をもとに公開鍵を生成する。
サービスシークレットは、管理者が Vault にアーカイブする時に公開鍵を使用して暗号化されます。その後、ドメイン内の特定のマシンでホストされるサービスインスタンスが、秘密鍵を使用してシークレットを取得します。シークレットにアクセスできるのは、サービスと管理者のみです。
シークレットが漏洩した場合には、管理者はサービス Vault でシークレットを置き換えて、漏洩されていないサービスインスタンスに配布しなおすことができます。
前提条件
- Key Recovery Authority (KRA) Certificate System コンポーネントが IdM ドメインの 1 つ以上のサーバーにインストールされている。詳細は、IdM での Key Recovery Authority (KRA) のインストール を参照してください。
この手順では、以下のものを使用します。
- IdM の admin ユーザーは、サービスパスワードを管理する管理者です。
- private-key-to-an-externally-signed-certificate.pem は、サービスシークレットを含むファイルです (ここでは外部署名証明書への秘密鍵)。この秘密鍵と、Vault からのシークレットの取得に使用する秘密鍵と混同しないようにしてください。
- secret_vault は、サービス向けに作成された Vault です。
- HTTP/webserver.idm.example.com は、シークレットがアーカイブされるサービスです。
- service-public.pem は、password_vault に保存されているパスワードの暗号化に使用するサービスの公開鍵です。
- service-private.pem は、secret_vault に保存されているパスワードの復号化に使用するサービスの秘密鍵です。
4.1. 非対称 Vault での IdM サービスシークレットの保存 リンクのコピーリンクがクリップボードにコピーされました!
この手順に従って非対称 Vault を作成し、それを使用してサービスシークレットをアーカイブします。
前提条件
- IdM 管理者パスワードを把握している。
手順
管理者としてログインします。
kinit admin
$ kinit adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスインスタンスの公開鍵を取得します。たとえば、
opensslユーティリティーを使用する場合は以下を行います。service-private.pem秘密鍵を生成します。openssl genrsa -out service-private.pem 2048
$ openssl genrsa -out service-private.pem 2048 Generating RSA private key, 2048 bit long modulus .+++ ...........................................+++ e is 65537 (0x10001)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 秘密鍵をもとに
service-public.pem公開鍵を生成します。openssl rsa -in service-private.pem -out service-public.pem -pubout
$ openssl rsa -in service-private.pem -out service-public.pem -pubout writing RSA keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
サービスインスタンス Vault として非対称 Vault を作成し、公開鍵を指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Vault にアーカイブされたパスワードはこの鍵で保護されます。
サービスシークレットをサービス Vault にアーカイブします。
ipa vault-archive secret_vault --service HTTP/webserver.idm.example.com --in private-key-to-an-externally-signed-certificate.pem
$ ipa vault-archive secret_vault --service HTTP/webserver.idm.example.com --in private-key-to-an-externally-signed-certificate.pem ----------------------------------- Archived data into vault "secret_vault" -----------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、サービスインスタンスの公開鍵でシークレットが暗号化されます。
上記の手順を、シークレットを必要とする全サービスインスタンスで繰り返します。サービスインスタンスごとに新規の非対称 Vault を作成します。
4.2. IdM サービスインスタンスのサービスシークレットの取得 リンクのコピーリンクがクリップボードにコピーされました!
サービスインスタンスを使用して、ローカルに保存されたサービス秘密鍵を使用してサービス Vault のシークレットを取得するには、次の手順を実行します。
前提条件
- サービス Vault を所有するサービスプリンシパルのキータブにアクセスできる (例: HTTP/webserver.idm.example.com)。
- 非対称 Vault を作成して Vault にシークレットをアーカイブしている。
- サービス Vault のシークレットの取得に使用する秘密鍵を使用できる。
手順
管理者としてログインします。
kinit admin
$ kinit adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスの Kerberos チケットを取得します。
kinit HTTP/webserver.idm.example.com -k -t /etc/httpd/conf/ipa.keytab
# kinit HTTP/webserver.idm.example.com -k -t /etc/httpd/conf/ipa.keytabCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービス Vault パスワードを取得します。
ipa vault-retrieve secret_vault --service HTTP/webserver.idm.example.com --private-key-file service-private.pem --out secret.txt
$ ipa vault-retrieve secret_vault --service HTTP/webserver.idm.example.com --private-key-file service-private.pem --out secret.txt ------------------------------------ Retrieved data from vault "secret_vault" ------------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.3. シークレットが漏洩した場合の IdM サービス Vault シークレットの変更 リンクのコピーリンクがクリップボードにコピーされました!
サービスコンテナーのシークレットを変更して、侵害されたサービスインスタンスを隔離するには、次の手順に従います。
前提条件
- IdM 管理者 パスワードが分かっている。
- サービスシークレットの保存先の 非対称 Vault を作成している。
- 新しいシークレットを生成し、そのシークレットにアクセスできる (例: new-private-key-to-an-externally-signed-certificate.pem ファイル)。
手順
新規シークレットをサービスインスタンス Vault にアーカイブします。
ipa vault-archive secret_vault --service HTTP/webserver.idm.example.com --in new-private-key-to-an-externally-signed-certificate.pem
$ ipa vault-archive secret_vault --service HTTP/webserver.idm.example.com --in new-private-key-to-an-externally-signed-certificate.pem ----------------------------------- Archived data into vault "secret_vault" -----------------------------------Copy to Clipboard Copied! Toggle word wrap Toggle overflow これにより、Vault に保存されている現在のシークレットが上書きされます。
- 不正アクセスがされていないサービスインスタンスのみで新規シークレットを取得します。詳細は、IdM サービスインスタンスのサービスシークレットの取得 を参照してください。
第5章 Ansible を使用した IdM サービス Vault の管理: シークレットの保存および取得 リンクのコピーリンクがクリップボードにコピーされました!
このセクションでは、管理者が ansible-freeipa vault モジュールを使用して、サービスシークレットを一元化された場所に安全に保存する方法について説明します。この例で使用される Vault は非対称であるため、これを使用する場合は、管理者は以下の手順を実行する必要があります。
-
opensslユーティリティーなどを使用して秘密鍵を生成する。 - 秘密鍵をもとに公開鍵を生成する。
サービスシークレットは、管理者が Vault にアーカイブする時に公開鍵を使用して暗号化されます。その後、ドメイン内の特定のマシンでホストされるサービスインスタンスが、秘密鍵を使用してシークレットを取得します。シークレットにアクセスできるのは、サービスと管理者のみです。
シークレットが漏洩した場合には、管理者はサービス Vault でシークレットを置き換えて、漏洩されていないサービスインスタンスに配布しなおすことができます。
前提条件
- 以下の Playbook で定義されている ipaserver ホストカテゴリー内のすべての IdM サーバーに、Key Recovery Authority (KRA) Certificate System コンポーネントがインストールされている。詳細は、IdM での Key Recovery Authority (KRA) のインストール を参照してください。
この手順では、以下を使用します。
- IdM の admin ユーザーは、サービスパスワードを管理する管理者です。
- private-key-to-an-externally-signed-certificate.pem は、サービスシークレットを含むファイルです (ここでは外部署名証明書への秘密鍵)。この秘密鍵と、Vault からのシークレットの取得に使用する秘密鍵と混同しないようにしてください。
- secret_vault は、サービスシークレット保存向けに作成された Vault です。
- HTTP/webserver1.idm.example.com は Vault の所有者となるサービスです。
- HTTP/webserver2.idm.example.com および HTTP/webserver3.idm.example.com は Vault メンバーサービスです。
- service-public.pem は、password_vault に保存されているパスワードの暗号化に使用するサービスの公開鍵です。
- service-private.pem は、secret_vault に保存されているパスワードの復号化に使用するサービスの秘密鍵です。
5.1. Ansible を使用して IdM に非対称サービス Vault が存在する状態にする リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用して 1 つ以上のプライベート Vault を持つサービス Vault コンテナーを作成し、機密情報を安全に保存します。以下の手順で使用する例では、管理者は secret_vault という名前の非対称 Vault を作成します。こうすることで、Vault メンバーは、Vault のシークレットを取得する際に、秘密鍵を使用して必ず認証することになります。Vault メンバーは、IdM クライアントからファイルを取得できます。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。
手順
MyPlaybooks ディレクトリーに移動します。
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/ansible-freeipa/playbooks/vault/ensure-asymmetric-vault-is-present.yml Ansible Playbook ファイルのコピーを作成します。以下に例を示します。
cp /usr/share/doc/ansible-freeipa/playbooks/vault/ensure-asymmetric-vault-is-present.yml ensure-asymmetric-vault-is-present-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/vault/ensure-asymmetric-vault-is-present.yml ensure-asymmetric-vault-is-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow サービスインスタンスの公開鍵を取得します。たとえば、
opensslユーティリティーを使用する場合は以下を行います。service-private.pem秘密鍵を生成します。openssl genrsa -out service-private.pem 2048
$ openssl genrsa -out service-private.pem 2048 Generating RSA private key, 2048 bit long modulus .+++ ...........................................+++ e is 65537 (0x10001)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 秘密鍵をもとに
service-public.pem公開鍵を生成します。openssl rsa -in service-private.pem -out service-public.pem -pubout
$ openssl rsa -in service-private.pem -out service-public.pem -pubout writing RSA keyCopy to Clipboard Copied! Toggle word wrap Toggle overflow
- ensure-asymmetric-vault-is-present-copy.yml ファイルを編集のために開きます。
- Ansible コントローラーから server.idm.example.com サーバーに service-public.pem の公開鍵をコピーするタスクを追加します。
ipavaultタスクセクションに以下の変数を設定して、残りのファイルを変更します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
secret_vault などの
name変数を使用して Vault の名前を定義します。 -
vault_type変数は asymmetric に設定します。 -
service変数は、Vault を所有するサービスのプリンシパル (例: HTTP/webserver1.idm.example.com) に設定します。 public_key_fileは、公開鍵の場所に設定します。以下は、今回の例で使用するように変更した Ansible Playbook ファイルです。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-asymmetric-service-vault-is-present-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file ensure-asymmetric-service-vault-is-present-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.2. Ansible を使用した非対称 Vault へのメンバーサービスの追加 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用してメンバーサービスをサービス Vault に追加し、これらすべてが Vault に保存されているシークレットを取得できるようにします。以下の手順で使用する例では、IdM の管理者は HTTP/webserver2.idm.example.com と HTTP/webserver3.idm.example.com のサービスプリンシパルを HTTP/webserver1.idm.example.com が所有する secret_vault Vault に追加します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - サービスシークレットの保存先の 非対称 Vault を作成している。
手順
MyPlaybooks ディレクトリーに移動します。
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-asymmetric-vault.yml Ansible Playbook ファイルのコピーを作成します。以下に例を示します。
cp /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-asymmetric-vault.yml data-archive-in-asymmetric-vault-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-asymmetric-vault.yml data-archive-in-asymmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - data-archive-in-asymmetric-vault-copy.yml ファイルを編集のために開きます。
ファイルを変更するには、
ipavaultタスクセクションに以下の変数を設定します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
name変数は Vault の名前 (例: secret_vault) に設定します。 -
service変数は Vault のサービス所有者に設定します (例: HTTP/webserver1.idm.example.com)。 -
services 変数を使用して、Vault シークレットにアクセスできる
servicesを定義します。 action変数はmemberに設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file add-services-to-an-asymmetric-vault.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file add-services-to-an-asymmetric-vault.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.3. Ansible を使用した非対称 Vault への IdM サービスシークレットの保存 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用して、サービス Vault にシークレットを保存し、サービスが後で取得できるようにします。以下の手順で使用する例では、管理者は secret_vault という名前の非対称 Vault にシークレットが含まれる PEM ファイルを保存します。こうすることで、サービスは、Vault からシークレットを取得する際に、秘密鍵を使用して必ず認証することになります。このサービスは、任意の IdM クライアントからファイルを取得できるようになります。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - サービスシークレットの保存先の 非対称 Vault を作成している。
- シークレットが /usr/share/doc/ansible-freeipa/playbooks/vault/private-key-to-an-externally-signed-certificate.pem ファイルなど、Ansible コントローラーのローカルに保存されている。
手順
MyPlaybooks ディレクトリーに移動します。
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-asymmetric-vault.yml Ansible Playbook ファイルのコピーを作成します。以下に例を示します。
cp /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-asymmetric-vault.yml data-archive-in-asymmetric-vault-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/vault/data-archive-in-asymmetric-vault.yml data-archive-in-asymmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - data-archive-in-asymmetric-vault-copy.yml ファイルを編集のために開きます。
ファイルを変更するには、
ipavaultタスクセクションに以下の変数を設定します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
name変数は Vault の名前 (例: secret_vault) に設定します。 -
service変数は Vault のサービス所有者に設定します (例: HTTP/webserver1.idm.example.com)。 -
in変数は "{{ lookup('file', 'private-key-to-an-externally-signed-certificate.pem')| b64encode }}" に設定します。この設定では、Ansible が IdM サーバーではなく、Ansible コントローラーの作業ディレクトリーから秘密鍵のあるファイルを取得するようになります。 action変数はmemberに設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file data-archive-in-asymmetric-vault-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file data-archive-in-asymmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.4. Ansible を使用した IdM サービスのサービスシークレットの取得 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、Ansible Playbook を使用してサービスの代わりにサービス Vault からシークレットを取得します。以下の手順で使用する例では、Playbook を実行して secret_vault という名前の PEM ファイルを取得し、Ansible インベントリーファイルに ipaservers として記載されている全ホストの指定の場所に保存します。
サービスは、キータブを使用して IdM に対して、さらに秘密鍵を使用して Vault に対して認証を実行します。ansible-freeipa がインストールされている IdM クライアントから、サービスの代わりにファイルを取得できます。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - サービスシークレットの保存先の 非対称 Vault を作成している。
- Vault にシークレットをアーカイブ している。
-
Ansible コントローラーで
private_key_file変数が指定する場所にサービス Vault のシークレットの取得に使用する秘密鍵が保存されている。
手順
MyPlaybooks ディレクトリーに移動します。
cd ~/MyPlaybooks/
$ cd ~/MyPlaybooks/Copy to Clipboard Copied! Toggle word wrap Toggle overflow /usr/share/doc/ansible-freeipa/playbooks/vault/retrieve-data-asymmetric-vault.yml Ansible Playbook ファイルのコピーを作成します。以下に例を示します。
cp /usr/share/doc/ansible-freeipa/playbooks/vault/retrieve-data-asymmetric-vault.yml retrieve-data-asymmetric-vault-copy.yml
$ cp /usr/share/doc/ansible-freeipa/playbooks/vault/retrieve-data-asymmetric-vault.yml retrieve-data-asymmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、以下のホストを定義します。
-
[ipaserver]セクションで、使用する IdM サーバーを定義します。 -
[webservers]セクションで、シークレットを取得するホストを定義します。たとえば Ansible に対して webserver1.idm.example.com、webserver2.idm.example.com および webserver3.idm.example.com にシークレットを取得するように指示するには以下を実行します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- retrieve-data-asymmetric-vault-copy.yml ファイルを編集のために開きます。
ファイルを変更するには、
ipavaultタスクセクションに以下の変数を設定します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
name変数は Vault の名前 (例: secret_vault) に設定します。 -
service変数は Vault のサービス所有者に設定します (例: HTTP/webserver1.idm.example.com)。 -
private_key_file変数は、サービス Vault のシークレットの取得に使用する秘密鍵の場所に設定します。 -
out変数は、現在の作業ディレクトリーなど、private-key-to-an-externally-signed-certificate.pem シークレットの取得先となる IdM サーバーの場所に設定します。 action変数はmemberに設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Playbook に、IdM サーバーから Ansible コントローラーにデータファイルを取得するセクションを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルの
webserversセクションに記載されている Web サーバーに、Ansible コントローラーから取得した private-key-to-an-externally-signed-certificate.pem ファイルを転送するセクションを Playbook に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file retrieve-data-asymmetric-vault-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file retrieve-data-asymmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. シークレットが漏洩した場合の Ansible での IdM サービス Vault シークレットの変更 リンクのコピーリンクがクリップボードにコピーされました!
以下の手順に従って、サービスインスタンスが危険にさらされたときに Ansible Playbook を再利用し、サービス Vault に保存されているシークレットを変更します。以下の例のシナリオでは、シークレットを保存する非対称 Vault への鍵は漏洩されておらず、webserver3.idm.example.com で取得したシークレットの情報が漏洩した場合を前提としています。この例では、管理者は 非対称 Vault でシークレットを保存する時 および IdM ホストに非対称 Vault からシークレットを取得する時 に Ansible Playbook を再利用します。この手順のはじめに、IdM 管理者は新規シークレットを含む新しい PEM ファイルを非対称 Vault に保存し、不正アクセスのあった Web サーバー (webserver3.idm.example.com) に新しいシークレットを配置しないようにインベントリーファイルを調節し、もう一度この 2 つの手順を実行します。
前提条件
次の要件を満たすように Ansible コントロールノードを設定している。
- Ansible バージョン 2.14 以降を使用している。
-
ansible-freeipaパッケージがインストールされている。 - ~/MyPlaybooks/ ディレクトリーに、IdM サーバーの完全修飾ドメイン名 (FQDN) を使用して Ansible インベントリーファイル を作成している (この例の場合)。
-
この例では、secret.yml Ansible Vault に
ipaadmin_passwordが保存されていることを前提としています。
-
ターゲットノード (
ansible-freeipaモジュールが実行されるノード) が、IdM クライアント、サーバー、またはレプリカとして IdM ドメインに含まれている。 - IdM 管理者 パスワードが分かっている。
- サービスシークレットの保存先の 非対称 Vault を作成している。
-
IdM ホストで実行中の Web サービスの
httpd鍵を新たに生成し、不正アクセスのあった以前の鍵を置き換えている。 -
新しい
httpdキーが /usr/share/doc/ansible-freeipa/playbooks/vault/private-key-to-an-externally-signed-certificate.pem ファイルなど、Ansible コントローラーのローカルに保存されている。
手順
/usr/share/doc/ansible-freeipa/playbooks/vaultディレクトリーに移動します。cd /usr/share/doc/ansible-freeipa/playbooks/vault
$ cd /usr/share/doc/ansible-freeipa/playbooks/vaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルを開き、以下のホストが正しく定義されていることを確認します。
-
[ipaserver]セクションの IdM サーバー [webservers]セクションのシークレット取得先のホスト。たとえば Ansible に対して webserver1.idm.example.com と webserver2.idm.example.com にシークレットを取得するように指示するには、以下を入力します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
重要このリストに不正アクセスのあった Web サーバーが含まれないようにしてください (現在の例では webserver3.idm.example.com)。
-
data-archive-in-asymmetric-vault.yml Ansible Playbook ファイルのコピーを作成します。次に例を示します。
cp data-archive-in-asymmetric-vault.yml data-archive-in-asymmetric-vault-copy.yml
$ cp data-archive-in-asymmetric-vault.yml data-archive-in-asymmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - data-archive-in-asymmetric-vault-copy.yml ファイルを編集のために開きます。
ファイルを変更するには、
ipavaultタスクセクションに以下の変数を設定します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
name変数は Vault の名前 (例: secret_vault) に設定します。 -
service変数は Vault のサービス所有者に設定します (例: HTTP/webserver.idm.example.com)。 -
in変数は "{{ lookup('file', 'new-private-key-to-an-externally-signed-certificate.pem')| b64encode }}" に設定します。この設定では、Ansible が IdM サーバーではなく、Ansible コントローラーの作業ディレクトリーから秘密鍵のあるファイルを取得するようになります。 action変数はmemberに設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
- ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file data-archive-in-asymmetric-vault-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file data-archive-in-asymmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow - retrieve-data-asymmetric-vault-copy.yml ファイルを開いて編集します。
ファイルを変更するには、
ipavaultタスクセクションに以下の変数を設定します。-
ipaadmin_password変数は IdM 管理者パスワードに設定します。 -
name変数は Vault の名前 (例: secret_vault) に設定します。 -
service変数は Vault のサービス所有者に設定します (例: HTTP/webserver1.idm.example.com)。 -
private_key_file変数は、サービス Vault のシークレットの取得に使用する秘密鍵の場所に設定します。 -
out変数は、現在の作業ディレクトリーなど、new-private-key-to-an-externally-signed-certificate.pem シークレットの取得先となる IdM サーバーの場所に設定します。 action変数はmemberに設定します。今回の例で使用するように変更した Ansible Playbook ファイル:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Playbook に、IdM サーバーから Ansible コントローラーにデータファイルを取得するセクションを追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow インベントリーファイルの
webserversセクションに記載されている Web サーバーに、Ansible コントローラーから取得した new-private-key-to-an-externally-signed-certificate.pem ファイルを転送するセクションを Playbook に追加します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ファイルを保存します。
Playbook を実行します。
ansible-playbook --vault-password-file=password_file -v -i inventory.file retrieve-data-asymmetric-vault-copy.yml
$ ansible-playbook --vault-password-file=password_file -v -i inventory.file retrieve-data-asymmetric-vault-copy.ymlCopy to Clipboard Copied! Toggle word wrap Toggle overflow