第3章 Ansible vault


場合によっては、Playbook で、管理対象ホストを設定するために、パスワード、API キー、その他のシークレットなどの機密データを使用する必要があります。この情報を変数またはその他の Ansible 互換ファイルにプレーンテキストで保存すると、それらのファイルにアクセスできるすべてのユーザーが機密データを読み取ることができるため、セキュリティー上のリスクが生じます。

Ansible Vault を使用すると、機密情報を暗号化、復号、表示、および編集できます。それらは次のように含めることができます。

  • Ansible Playbook に挿入した変数ファイル
  • ホスト変数とグループ変数
  • Playbook を実行するときに引数として渡される変数ファイル
  • Ansible ロールで定義された変数

Ansible Vault を使用すると、個々の変数、ファイル全体、さらには YAML ファイルなどの構造化データを安全に管理できます。このデータはバージョン管理システムに安全に保存したり、機密情報を公開することなくチームメンバーと共有したりできます。

重要

ファイルは、Advanced Encryption Standard (AES256) の対称暗号化によって保護されており、データの暗号化と復号の両方に単一のパスワードまたはパスフレーズが使用されます。この方法は第三者によって正式に監査されていないことに注意してください。

管理を簡素化するには、機密変数とその他のすべての変数が別々のファイルまたはディレクトリーに保存されるように Ansible プロジェクトを設定するのが合理的です。次に、ansible-vault コマンドを使用して機密変数を含むファイルを保護できます。

暗号化されたファイルの作成

次のコマンドは、新しい Vault パスワードの入力を求めます。次に、デフォルトのエディターを使用して機密変数を保存するためのファイルを開きます。

# ansible-vault create vault.yml
New Vault password: <vault_password>
Confirm New Vault password: <vault_password>

暗号化されたファイルの表示

次のコマンドは、既存の Vault パスワードの入力を求めます。次に、すでに暗号化されたファイルの機密コンテンツを表示します。

# ansible-vault view vault.yml
Vault password: <vault_password>
my_secret: "yJJvPqhsiusmmPPZdnjndkdnYNDjdj782meUZcw"

暗号化ファイルの編集

次のコマンドは、既存の Vault パスワードの入力を求めます。次に、すでに暗号化されたファイルを開き、デフォルトのエディターを使用して機密変数を更新します。

# ansible-vault edit vault.yml
Vault password: <vault_password>

既存のファイルの暗号化

次のコマンドは、新しい Vault パスワードの入力を求めます。次に、既存の暗号化されていないファイルを暗号化します。

# ansible-vault encrypt vault.yml
New Vault password: <vault_password>
Confirm New Vault password: <vault_password>
Encryption successful

既存のファイルの復号

次のコマンドは、既存の Vault パスワードの入力を求めます。次に、既存の暗号化されたファイルを復号します。

# ansible-vault decrypt vault.yml
Vault password: <vault_password>
Decryption successful

暗号化されたファイルのパスワードを変更する

次のコマンドは、元の Vault パスワードの入力を求め、次に新しい Vault パスワードの入力を求めます。

# ansible-vault rekey vault.yml
Vault password: <vault_password>
New Vault password: <vault_password>
Confirm New Vault password: <vault_password>
Rekey successful

Playbook での Ansible vault 変数の基本的な適用

---
- name: Create user accounts for all servers
  hosts: managed-node-01.example.com
  vars_files:
    - vault.yml
  tasks:
    - name: Create user from vault.yml file
      user:
        name: "{{ username }}"
        password: "{{ pwhash }}"

Ansible Playbook の vars_files セクションに変数を含むファイル (vault.yml) を読み込み、通常の変数と同じように中括弧を使用します。次に、ansible-playbook --ask-vault-pass コマンドを使用して Playbook を実行し、パスワードを手動で入力します。または、パスワードを別のファイルに保存し、ansible-playbook --vault-password-file /path/to/my/vault-password-file コマンドを使用して Playbook を実行します。

関連情報

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.