4.3. Operator ベースのブローカーデプロイメント用のセキュリティー設定の作成
4.3.1. Operator ベースのブローカーデプロイメント用のセキュリティー設定の作成 リンクのコピーリンクがクリップボードにコピーされました!
次の手順は、カスタムリソース (CR) インスタンスを使用して、ユーザーおよび関連するセキュリティー設定を Operator ベースのブローカーデプロイメントに追加する方法を示しています。
前提条件
AMQ Broker Operator がすでにインストールされている必要があります。Operator のインストール方法の 2 つの代替方法については、以下を参照してください。
- Securing brokers で説明されているように、ブローカーのセキュリティーについて詳しく理解している必要があります。
- CR インスタンスを使用して基本的なブローカーデプロイメントを作成する方法を理解する必要があります。詳細は、「基本的なブローカーインスタンスのデプロイ」 を参照してください。
ブローカーデプロイメントを作成する前または後に、セキュリティー CR をデプロイできます。ただし、ブローカーデプロイメントの作成後にセキュリティー CR をデプロイメントすると、新しい設定を適用するために、ブローカー Pod が再起動されます。
カスタムリソース (CR) インスタンスの設定を開始して、ブローカーデプロイメントのユーザーと関連するセキュリティー設定を定義します。
OpenShift コマンドラインインターフェイスの使用:
ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとして OpenShift にログインします。
oc login -u <user> -p <password> --server=<host:port>-
ダウンロードした Operator インストールアーカイブの
deploy/crsディレクトリーに含まれるbroker_activemqartemissecurity_cr.yamlというサンプル CR ファイルを開きます。
OpenShift Container Platform Web コンソールの使用
- ブローカーデプロイメントのプロジェクトに CR をデプロイする権限を持つユーザーとしてコンソールにログインします。
-
アドレス CRD に基づいて新規 CR インスタンスを起動します。左側のペインで、
をクリックします。 - Active MQArtemis Security CRDをクリックします。
- Instances タブをクリックします。
ActiveMQArtemisSecurity の作成をクリックします。
コンソールで、YAML エディターが開き、CR インスタンスを設定できます。
CR の
Specセクションで、ユーザーとロールを定義する行を追加します。以下に例を示します。apiVersion: broker.amq.io/v1beta1 kind: ActiveMQArtemisSecurity metadata: name: ex-prop spec: loginModules: propertiesLoginModules: - name: "prop-module" users: - name: "sam" password: "samspassword" roles: - "sender" - name: "rob" password: "robspassword" roles: - "receiver" securityDomains: brokerDomain: name: "activemq" loginModules: - name: "prop-module" flag: "sufficient" securitySettings: broker: - match: "#" permissions: - operationType: "send" roles: - "sender" - operationType: "createAddress" roles: - "sender" - operationType: "createDurableQueue" roles: - "sender" - operationType: "consume" roles: - "receiver" ...注記前の例の要素には常に値を指定してください。たとえば、
securityDomains.brokerDomainの値またはロールの値を指定しないと、設定によって予期しない結果が生じる可能性があります。上記の設定では、ユーザーを 2 つ定義しています。
-
senderのロールが割り当てられたsamという名前のユーザーを定義するprop-moduleというpropertiesLoginModule。 -
receiverのロールが割り当てられたrobという名前のユーザーを定義するprop-moduleというpropertiesLoginModule。
これらのロールのプロパティーは、
securityDomainsセクションのbrokerDomainセクションとbrokerセクションで定義されます。たとえば、sendロールは、そのロールが割り当てられたユーザーが任意のアドレスに永続キューを作成できるように定義されています。デフォルトでは、設定は現在のネームスペースの CR によって定義されたすべてのデプロイ済みブローカーに適用されます。特定のブローカーに設定を限定する場合は、「セキュリティーのカスタムリソースの設定リファレンス」 に記載のapplyToCrNamesオプションを使用します。注記metadataセクションで、namespaceプロパティーを追加し、OpenShift Container Platform Web コンソールを使用して CR インスタンスを作成する場合にのみ値を指定する必要があります。指定する値は、ブローカーデプロイメントの OpenShift プロジェクトの名前です。-
CR インスタンスをデプロイします。
OpenShift コマンドラインインターフェイスの使用:
- CR ファイルを保存します。
ブローカーデプロイメントのプロジェクトに切り替えます。
$ oc project <project_name>CR インスタンスを作成します。
$ oc create -f <path/to/address_custom_resource_instance>.yaml
OpenShift Web コンソールの使用
- CR の設定が完了したら、Create をクリックします。
4.3.2. ユーザーパスワードをシークレットに保存する リンクのコピーリンクがクリップボードにコピーされました!
Operator ベースのブローカーデプロイメントのセキュリティー設定の作成 手順では、ユーザーパスワードは ActiveMQArtemisSecurity CR にクリアテキストで保存されます。パスワードをクリアテキストで CR に保存したくない場合は、パスワードを CR から除外してシークレットに保存できます。CR を適用すると、Operator はシークレットから各ユーザーのパスワードを取得し、ブローカー Pod の artemis-users.properties ファイルに挿入します。
手順
oc create secretコマンドを使用してシークレットを作成し、各ユーザーの名前とパスワードを追加します。シークレット名は、security-properties-module nameの命名規則に従う必要があります。ここで、module name は、CR で設定されたログインモジュールの名前です。以下に例を示します。oc create secret generic security-properties-prop-module \ --from-literal=sam=samspassword \ --from-literal=rob=robspasswordCR の
specセクションで、ロール情報とともにシークレットで指定したユーザー名を追加しますが、各ユーザーのパスワードは含めません。以下に例を示します。apiVersion: broker.amq.io/v1beta1 kind: ActiveMQArtemisSecurity metadata: name: ex-prop spec: loginModules: propertiesLoginModules: - name: "prop-module" users: - name: "sam" roles: - "sender" - name: "rob" roles: - "receiver" securityDomains: brokerDomain: name: "activemq" loginModules: - name: "prop-module" flag: "sufficient" securitySettings: broker: - match: "#" permissions: - operationType: "send" roles: - "sender" - operationType: "createAddress" roles: - "sender" - operationType: "createDurableQueue" roles: - "sender" - operationType: "consume" roles: - "receiver" ...CR インスタンスをデプロイします。
OpenShift コマンドラインインターフェイスの使用:
- CR ファイルを保存します。
ブローカーデプロイメントのプロジェクトに切り替えます。
$ oc project <project_name>CR インスタンスを作成します。
$ oc create -f <path/to/address_custom_resource_instance>.yaml
OpenShift Web コンソールの使用
- CR の設定が完了したら、Create をクリックします。
関連情報
OpenShift Container Platform のシークレットの詳細は、OpenShift Container Platform ドキュメントの Pod への機密データの提供 を参照してください。