3.4. 在 OpenShift 服务中提供对 Red Hat OpenStack Services 的安全访问
您必须创建一个 Secret 自定义资源(CR),以提供对 OpenShift (RHOSO)服务 pod 上的 Red Hat OpenStack Services 的安全访问。以下流程为每个服务创建一个具有所需密码格式的 Secret CR。
有关为您生成所需密码和 fernet 密钥的 Secret CR 示例,请参阅示例 Secret CR 以了解有关对 RHOSO 服务 pod 的安全访问。
部署 control plane 后,您无法更改服务密码。如果在部署 control plane 后在 osp-secret 中更改了服务密码,则会重新配置服务以使用新密码,但 Identity 服务(keystone)中不会更新密码。这会导致服务中断。
先决条件
- 已安装 python3-cryptography。
流程
-
在工作站上创建一个
SecretCR,如openstack_service_secret.yaml。 将以下初始配置添加到
openstack_service_secret.yaml:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<base64_password> 替换为 base64 编码的 32 个字符的密钥。注意HeatAuthEncryptionKey密码必须是用于编排服务(heat)加密的 32 个字符的密钥。如果您增加所有其他服务的密码长度,请确保HeatAuthEncryptionKey密码长度为 32。您可以使用以下命令手动生成 base64 编码密码:
echo -n <password> | base64
$ echo -n <password> | base64Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,如果您使用 Linux 工作站,并且您使用 Bash 命令(如
cat)生成SecretCR,您可以将 <base64_password> 替换为为每个服务自动生成随机密码:$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)
$(tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 32 | base64)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 &
lt;base64_fernet_key> 替换为 base64 编码的 fernet 密钥。您可以使用以下命令手动生成它:$(python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode('UTF-8'))" | base64)$(python3 -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode('UTF-8'))" | base64)Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在集群中创建
SecretCR:oc create -f openstack_service_secret.yaml -n openstack
$ oc create -f openstack_service_secret.yaml -n openstackCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证是否已创建
SecretCR:oc describe secret osp-secret -n openstack
$ oc describe secret osp-secret -n openstackCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.1. 安全访问 RHOSO 服务 pod 的 Secret CR 示例 复制链接链接已复制到粘贴板!
您必须创建一个 Secret 自定义资源(CR)文件,以提供对 OpenShift (RHOSO)服务 pod 上的 Red Hat OpenStack Services 的安全访问。
如果使用 Linux 工作站,您可以使用以下 Bash cat 命令创建一个名为 openstack_service_secret.yaml 的 Secret CR 文件,为您生成所需的密码和 fernet 密钥: