4.3. 为基于 Operator 的代理部署创建安全配置
以下流程演示了如何使用自定义资源(CR)实例将用户和关联的安全配置添加到基于 Operator 的代理部署中。
先决条件
您必须已安装 AMQ Broker Operator。有关安装 Operator 的两种替代方法的详情,请参考:
- 您应该熟悉代理安全,如安全 代理所述
- 您应该熟悉如何使用 CR 实例创建基本的代理部署。如需更多信息,请参阅 第 3.4.1 节 “部署基本代理实例”。
您可以在创建代理部署前或之后部署安全 CR。但是,如果您在创建代理部署后部署安全 CR,则代理 Pod 会被重启以接受新配置。
开始配置自定义资源(CR)实例,以定义代理部署的用户和相关安全配置。
使用 OpenShift 命令行界面:
以具有特权的用户身份登录 OpenShift,以便在项目中为代理部署部署 CR。
oc login -u <user> -p <password> --server=<host:port>
oc login -u <user> -p <password> --server=<host:port>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开名为
broker_activemqartemissecurity_cr.yaml的示例 CR 文件,该文件包括在您下载并提取的 Operator 安装的deploy/crs目录中。
使用 OpenShift Container Platform Web 控制台:
- 以具有特权的用户身份登录到控制台,以便在用于代理部署的项目中部署 CR。
-
根据地址 CRD 启动一个新的 CR 实例。在左侧窗格中,单击
。 - 单击 ActiveMQArtemisSecurity CRD。
- 点 实例 选项卡。
单击 Create ActiveMQArtemisSecurity。
在控制台中,会打开 YAML 编辑器,供您配置 CR 实例。
在 CR 的
spec部分中,添加行来定义用户和角色。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上述配置定义了两个用户:
-
个名为
prop-module的propertiesLoginModule,它定义了名为sam的用户,其角色名为sender。 -
个名为
prop-module的propertiesLoginModule,它定义了名为rob的用户,其角色名为receiver。
这些角色的属性在
securityDomains部分的和 broker 部分定义。例如,定义了brokerDomainsend角色,以允许具有该角色的用户在任何地址上创建持久队列。默认情况下,配置会应用到当前命名空间中的 CR 定义的所有已部署代理。要将配置限制为特定的代理部署,请使用 第 8.1.3 节 “安全自定义资源配置参考” 中描述的applyToCrNames选项。注意在
metadata部分中,您需要包含namespace属性,只有在 使用 OpenShift Container Platform Web 控制台创建 CR 实例时才需要指定一个值。您应指定的值是代理部署的 OpenShift 项目的名称。-
个名为
部署 CR 实例。
使用 OpenShift 命令行界面:
- 保存 CR 文件。
切换到代理部署的项目。
oc project <project_name>
$ oc project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 CR 实例。
oc create -f <path/to/address_custom_resource_instance>.yaml
$ oc create -f <path/to/address_custom_resource_instance>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
使用 OpenShift Web 控制台:
- 配置完 CR 后,点 Create。