第10章 DCN への TLS-e の適用
分散コンピュートノードインフラストラクチャー用に設計されたクラウドで、TLS (Transport Layer Security) を有効にすることができます。パブリックアクセスだけに TLS を有効にするか、TLS-e としてすべてのネットワークで TLS を有効にすることができます。後者の場合、すべての内部および外部データフローで暗号化を行うことができます。
エッジサイトにはパブリックエンドポイントがないため、エッジスタックでパブリックアクセスを有効にすることはできません。パブリックアクセスの TLS の詳細は、オーバークラウドのパブリックエンドポイントでの SSL/TLS の有効化 を参照してください。
10.1. TLS-e を設定した分散コンピュートノードアーキテクチャーのデプロイ
前提条件
Red Hat Identity Manager (IdM) と共に Red Hat OpenStack Platform (RHOSP) 分散コンピュートノードアーキテクチャーで TLS-e を設定する場合には、Red Hat Identity Manager 用にデプロイされた Red Hat Enterprise Linux のバージョンに基づいて、以下のアクションを実行します。
- Red Hat Enterprise Linux 8.4
-
Red Hat Identity Management ノードで、
ipa-ext.conf
ファイルの ACL に対して信頼されるサブネットを許可します。
acl "trusted_network" { localnets; localhost; 192.168.24.0/24; 192.168.25.0/24; };
/etc/named/ipa-options-ext.conf
ファイルで、再帰とクエリーキャッシュを許可します。allow-recursion { trusted_network; }; allow-query-cache { trusted_network; };
named-pkcs11 サービスを再起動します。
systemctl restart named-pkcs11
-
Red Hat Identity Management ノードで、
- Red Hat Enterprise Linux 8.2
- Red Hat Enterprise Linux (RHEL) 8.2 に Red Hat Identity Manager (IdM) がある場合は、Red Hat Enterprise Linux をアップグレードしてから、RHEL 8.4 の指示に従ってください。
- Red Hat Enterprise Linux 7.x
-
Red Hat Enterprise Linux (RHEL) 7.x に Red Hat Identity Manager (IdM) がある場合は、ドメイン名のアクセス制御手順 (ACI) を手動で追加する必要があります。たとえば、ドメイン名が
redhat.local
の場合は、Red Hat Identity Manager で以下のコマンドを実行して ACI を設定します。
ADMIN_PASSWORD=redhat_01 DOMAIN_LEVEL_1=local DOMAIN_LEVEL_2=redhat cat << EOF | ldapmodify -x -D "cn=Directory Manager" -w ${ADMIN_PASSWORD} dn: cn=dns,dc=${DOMAIN_LEVEL_2},dc=${DOMAIN_LEVEL_1} changetype: modify add: aci aci: (targetattr = "aaaarecord || arecord || cnamerecord || idnsname || objectclass || ptrrecord")(targetfilter = "(&(objectclass=idnsrecord)(|(aaaarecord=)(arecord=)(cnamerecord=)(ptrrecord=)(idnsZoneActive=TRUE)))")(version 3.0; acl "Allow hosts to read DNS A/AAA/CNAME/PTR records"; allow (read,search,compare) userdn = "ldap:///fqdn=*,cn=computers,cn=accounts,dc=${DOMAIN_LEVEL_2},dc=${DOMAIN_LEVEL_1}";) EOF
手順
分散コンピュートノード (DCN) アーキテクチャーで TLS-e を実装する場合は、従来の novajoin
手法ではなく Ansible ベースの tripleo-ipa
手法を使用する必要があります。tripleo-ipa
を使用した TLS-e のデプロイに関する詳細は、Ansible を使用した TLS-e の実装 を参照してください。
tripleo-ipa
を使用して DCN アーキテクチャーに TLS-e をデプロイするには、以下の手順も完了する必要があります。
エッジサイトにストレージをデプロイする場合は、エッジスタック用に変更した tripleo heat テンプレートに以下のパラメーターを追加します。
TEMPLATES=/usr/share/openstack-tripleo-heat-templates resource_registry: OS::TripleO::Services::IpaClient: ${TEMPLATES}/deployment/ipa/ipaservices-baremetal-ansible.yaml parameter_defaults: EnableEtcdInternalTLS: true
中央サイトとエッジロケーションの設計の違いのため、エッジスタックには以下のファイルを含めないでください。
- tls-everywhere-endpoints-dns.yaml
- エッジサイトではこのファイルは無視され、このファイルで設定されるエンドポイントは中央スタックからエクスポートされるエンドポイントによってオーバーライドされます。
- haproxy-public-tls-certmonger.yaml
- エッジサイトにはパブリックエンドポイントがないため、このファイルはデプロイメント失敗の原因になります。