linux-system-roles.nbde_client

nbde_client

ansible-lint.yml ansible-test.yml codeql.yml markdownlint.yml python-unit-test.yml shellcheck.yml tft.yml tft_citest_bad.yml woke.yml

Network-Bound Disk Encryption(NBDE)クライアントを設定するためのAnsibleロール(例:clevis)。

このロールは現在、clevisをプロバイダーとしてサポートしており、暗号化や復号化の操作に使用します。

対応するディストリビューション

  • RHEL-7以上、CentOS-7以上
  • Fedora

制限事項

このロールは現在、tangバインディングを作成できます。TPM2は現在サポートされていません。

ロール変数

ロールに渡すことができる変数は以下の通りです:

変数 デフォルト/選択肢 説明
nbde_client_provider clevis nbde_clientロールのプロバイダーを特定します。現在はclevisのみサポートしています。
nbde_client_bindings バインディングの設定を含むリスト(デバイスやスロットなど)。
nbde_client_early_boot true デフォルトで、nbde_clientはボリュームを解除するためにinitrdを設定します。静的IPアドレスを使用しているホストやclevis-luks-askpassでボリュームを解除すべき場合は、無効にする必要があります。

nbde_client_bindings

nbde_client_bindingsは以下のキーをサポートする辞書のリストです:

名前 デフォルト/選択肢 説明
device 管理対象ホスト上の暗号化デバイスのバックデバイスのパスを指定します。このデバイスは、ロールを使用する前にLUKSデバイスとしてすでに設定されている必要があります(必須)。
encryption_password 指定されたデバイスを開く/解除するための有効なパスワードまたはフレーズ。値をボールトで暗号化することを推奨します。詳細は https://docs.ansible.com/ansible/latest/user_guide/vault.html を参照。
encryption_key_src 指定されたデバイスを開く/解除するための有効な暗号化キーを含むファイルの制御ノード上の絶対パスまたは相対パス。このファイルは管理ノードにコピーされます。
state present / absent 指定された設定でバインディングを追加または削除するかどうかを指定します。デフォルトのpresentに設定するとバインディングが追加され、absentに設定するとデバイス/スロットからバインディングが削除されます。
slot 1 バインディングに使用するスロットを指定します。
servers バインドするサーバーのリストを指定します。高可用性を有効にするために、ここに複数のサーバーを指定します。
threshold 1 複数のサーバーを使用する際に設定されるShamir Secret Sharing(SSS)スキームの閾値を指定します。一連のサーバーがデバイスを開くLUKSパスフレーズを回復するためのプロセスを完了するために、いくつのサーバーが復号化に成功する必要があるかを示します。
password_temporary false trueに設定すると、encryption_passwordまたはencryption_key引数を介して提供されたパスワードまたはフレーズがデバイスを解除するために使用され、その後バインディング操作が完了する後にLUKSデバイスから削除されます。デバイスが以前に標準のパスワードで作成されている場合(例えば、"デフォルト"パスワードを設定するキックスターといった自動インストールによって)、このロールはより強力なものに置き換えられます。

例:

nbde_client_bindings:
  - device: /dev/sda1
    encryption_key_src: /vault/keyfile
    state: present
    slot: 2
    threshold: 1
    password_temporary: false
    servers:
      - http://server1.example.com
      - http://server2.example.com

サンプルプレイブック

サンプル1:高可用性

---
- hosts: all
  vars:
    nbde_client_bindings:
      - device: /dev/sda1
        # encryption_passwordをボールトで暗号化することを推奨
        # 詳細はhttps://docs.ansible.com/ansible/latest/user_guide/vault.htmlを参照
        encryption_password: password
        servers:
          - http://server1.example.com
          - http://server2.example.com
  roles:
    - linux-system-roles.nbde_client

サンプル2:/dev/sda1のスロット2からバインディングを削除

---
- hosts: all
  vars:
    nbde_client_bindings:
      - device: /dev/sda1
        # encryption_passwordをボールトで暗号化することを推奨
        # 詳細はhttps://docs.ansible.com/ansible/latest/user_guide/vault.htmlを参照
        encryption_password: password
        slot: 2
        state: absent
  roles:
    - linux-system-roles.nbde_client

ライセンス

MIT

プロジェクトについて

Ansible role for configuring Network-Bound Disk Encryption clients (e.g. clevis)

インストール
ansible-galaxy install linux-system-roles.nbde_client
ライセンス
mit
ダウンロード
10.5k