第 11 章 TLS-e 用于 DCN
您可以在为分布式计算节点基础架构设计的云中启用 TLS (传输层安全)。您可以选择启用 TLS 以进行公共访问,或使用 TLS-e 在每个网络上启用 TLS,这允许在所有内部和外部数据流上加密。
您无法在边缘堆栈上启用公共访问,因为边缘站点没有公共端点。有关 TLS 进行公共访问的更多信息,请参阅在 Overcloud 公共端点上启用 SSL/TLS。
11.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) 8.2,您必须升级 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)架构,需要使用基于 ansible 的 tripleo-ipa
方法实施 TLS-e,而不是之前的 novajoin
方法。有关使用 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
- 此文件会导致部署失败,因为边缘没有公共端点。