第9章 DCN への TLS-e の適用

分散コンピュートノードインフラストラクチャー用に設計されたクラウドで、TLS (Transport Layer Security) を有効にすることができます。パブリックアクセスだけに TLS を有効にするか、または TLS-e としてすべてのネットワークで TLS を有効にすることができます。後者の場合、すべての内部および外部データフローで暗号化を行うことができます。

エッジサイトにはパブリックエンドポイントがないため、エッジスタックでパブリックアクセスを有効にすることはできません。パブリックアクセスに対する TLS の詳細は、「オーバークラウドのパブリックエンドポイントでの SSL/TLS の有効化」を参照してください。

9.1. TLS-e を設定した分散コンピュートノードアーキテクチャーのデプロイ

分散コンピュートノード (DCN) アーキテクチャーで TLS-e を実装する場合は、従来の novajoin 手法ではなく Ansible ベースの tripleo-ipa 手法を使用する必要があります。tripleo-ipa を使用した TLS-e デプロイの詳細は、「Implementing TLS-e with Ansible」を参照してください。

tripleo-ipa を使用して DCN アーキテクチャーに TLS-e をデプロイするには、以下の手順も完了する必要があります。

前提条件

オーバークラウドをインストールする前に、以下の ACI を手動でアイデンティティー管理 (IdM) サーバーに追加する必要があります。

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

手順

  1. エッジサイトにストレージをデプロイする場合は、エッジスタック用に変更した 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
エッジサイトにはパブリックエンドポイントがないため、このファイルはデプロイメント失敗の原因になります。