第 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
  1. 在 Red Hat Identity Management 节点上,允许信任子网在 ipa-ext.conf 文件中进行 ACL:
 acl "trusted_network" {
   localnets;
   localhost;
   192.168.24.0/24;
   192.168.25.0/24;
 };
  1. /etc/named/ipa-options-ext.conf 文件中,允许递归和查询缓存:

    allow-recursion { trusted_network; };
    allow-query-cache { trusted_network; };
  2. 重启 'named-pkcs11 服务:

    systemctl restart named-pkcs11
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,您还需要完成以下步骤:

  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
此文件会导致部署失败,因为边缘没有公共端点。