第9章 RHEL システムロールを使用したカスタム暗号化ポリシーの設定
カスタム暗号化ポリシーは、暗号化アルゴリズムとプロトコルの使用を管理する一連のルールと設定です。このポリシーは、複数のシステムとアプリケーションにまたがるセキュリティー環境の保護、一貫性、管理性を確保するのに役立ちます。
crypto_policies
RHEL システムロールを使用すると、多くのオペレーティングシステムにわたってカスタム暗号化ポリシーを自動化された方法で迅速かつ一貫して設定できます。
9.1. crypto_policies
RHEL システムロールを使用した FUTURE
暗号化ポリシーによるセキュリティーの強化
crypto_policies
RHEL システムロールを使用して、管理対象ノードで FUTURE
ポリシーを設定できます。このポリシーは、たとえば次のことを実現するのに役立ちます。
- 将来の新たな脅威への対応: 計算能力の向上を予測します。
- セキュリティーの強化: 強力な暗号化標準により、より長い鍵長とよりセキュアなアルゴリズムを必須にします。
- 高度なセキュリティー標準への準拠: 医療、通信、金融などの分野ではデータの機密性が高く、強力な暗号化を利用できることが重要です。
通常、FUTURE
は、機密性の高いデータを扱う環境、将来の規制に備える環境、長期的なセキュリティーストラテジーを採用する環境に適しています。
レガシーのシステムやソフトウェアでは、FUTURE
ポリシーによって強制される、より最新しく厳格なアルゴリズムやプロトコルをサポートする必要はありません。たとえば、古いシステムでは TLS 1.3 以上の鍵サイズがサポートされていない可能性があります。これにより互換性の問題が発生する可能性があります。
また、強力なアルゴリズムを使用すると、通常、計算負荷が増加し、システムのパフォーマンスに悪影響が及ぶ可能性があります。
前提条件
- コントロールノードと管理対象ノードの準備が完了している。
- 管理対象ノードで Playbook を実行できるユーザーとしてコントロールノードにログインしている。
-
管理対象ノードへの接続に使用するアカウントに、そのノードに対する
sudo
権限がある。
手順
次の内容を含む Playbook ファイル (例:
~/playbook.yml
) を作成します。--- - name: Configure cryptographic policies hosts: managed-node-01.example.com tasks: - name: Configure the FUTURE cryptographic security policy on the managed node ansible.builtin.include_role: name: rhel-system-roles.crypto_policies vars: - crypto_policies_policy: FUTURE - crypto_policies_reboot_ok: true
サンプル Playbook で指定されている設定は次のとおりです。
crypto_policies_policy: FUTURE
-
管理対象ノードで必要な暗号化ポリシー (
FUTURE
) を設定します。これは、基本ポリシー、またはいくつかのサブポリシーを含む基本ポリシーのどちらかです。指定した基本ポリシーとサブポリシーが、管理対象ノードで使用可能である必要があります。デフォルト値はnull
です。つまり、設定は変更されず、crypto_policies
RHEL システムロールは Ansible fact のみを収集します。 crypto_policies_reboot_ok: true
-
すべてのサービスとアプリケーションが新しい設定ファイルを読み取るように、暗号化ポリシーの変更後にシステムを再起動します。デフォルト値は
false
です。
Playbook で使用されるすべての変数の詳細は、コントロールノードの
/usr/share/ansible/roles/rhel-system-roles.crypto_policies/README.md
ファイルを参照してください。Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/playbook.yml
このコマンドは構文を検証するだけであり、有効だが不適切な設定から保護するものではないことに注意してください。
Playbook を実行します。
$ ansible-playbook ~/playbook.yml
システム全体のサブポリシー FIPS:OSPP
には、Common Criteria (CC) 認定に必要な暗号化アルゴリズムに関する追加の制限が含まれています。そのため、このサブポリシーを設定すると、システムの相互運用性が低下します。たとえば、3072 ビットより短い RSA 鍵と DH 鍵、追加の SSH アルゴリズム、および複数の TLS グループを使用できません。また、FIPS:OSPP
を設定すると、Red Hat コンテンツ配信ネットワーク (CDN) 構造への接続が防止されます。さらに、FIPS:OSPP
を使用する IdM デプロイメントには Active Directory (AD) を統合できません。FIPS:OSPP
を使用する RHEL ホストと AD ドメイン間の通信が機能しないか、一部の AD アカウントが認証できない可能性があります。
FIPS:OSPP
暗号化サブポリシーを設定すると、システムが CC 非準拠になる ことに注意してください。RHEL システムを CC 標準に準拠させる唯一の正しい方法は、cc-config
パッケージで提供されているガイダンスに従うことです。認定済みの RHEL バージョン、検証レポート、および National Information Assurance Partnership (NIAP) で提供されている CC ガイドへのリンクのリストは、ナレッジベース記事「Compliance Activities and Government Standards」の Common Criteria セクションを参照してください。
検証
コントロールノードで、たとえば
verify_playbook.yml
という名前の別の Playbook を作成します。--- - name: Verification hosts: managed-node-01.example.com tasks: - name: Verify active cryptographic policy ansible.builtin.include_role: name: rhel-system-roles.crypto_policies - name: Display the currently active cryptographic policy ansible.builtin.debug: var: crypto_policies_active
サンプル Playbook で指定されている設定は次のとおりです。
crypto_policies_active
-
crypto_policies_policy
変数で受け入れられる形式の現在アクティブなポリシー名が含まれているエクスポートされた Ansible fact。
Playbook の構文を検証します。
$ ansible-playbook --syntax-check ~/verify_playbook.yml
Playbook を実行します。
$ ansible-playbook ~/verify_playbook.yml TASK [debug] ************************** ok: [host] => { "crypto_policies_active": "FUTURE" }
crypto_policies_active
変数は、管理対象ノード上のアクティブなポリシーを示します。
関連情報
-
/usr/share/ansible/roles/rhel-system-roles.crypto_policies/README.md
ファイル -
/usr/share/doc/rhel-system-roles/crypto_policies/
ディレクトリー -
update-crypto-policies(8)
およびcrypto-policies(7)
man ページ