4.3. Operator 기반 브로커 배포에 대한 보안 구성 생성
4.3.1. Operator 기반 브로커 배포에 대한 보안 구성 생성 링크 복사링크가 클립보드에 복사되었습니다!
다음 절차에서는 CR(사용자 정의 리소스) 인스턴스를 사용하여 Operator 기반 브로커 배포에 사용자 및 관련 보안 구성을 추가하는 방법을 보여줍니다.
사전 요구 사항
AMQ Broker Operator가 설치되어 있어야 합니다. Operator를 설치하는 두 가지 다른 방법에 대한 자세한 내용은 다음을 참조하십시오.
- 보안 브로커에 설명된 대로 브로커 보안에 대해 잘 알고 있어야 합니다. https://access.redhat.com/documentation/en-us/red_hat_amq_broker/7.10/html-single/configuring_amq_broker/#assembly-br-securing-brokers_configuring
- CR 인스턴스를 사용하여 기본 브로커 배포를 생성하는 방법에 대해 잘 알고 있어야 합니다. 자세한 내용은 3.4.1절. “기본 브로커 인스턴스 배포”의 내용을 참조하십시오.
브로커 배포를 생성하기 전이나 후에 보안 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 웹 콘솔 사용:
- 브로커 배포를 위해 프로젝트에 CR을 배포할 수 있는 권한이 있는 사용자로 콘솔에 로그인합니다.
-
주소 CRD를 기반으로 새 CR 인스턴스를 시작합니다. 왼쪽 창에서
를 클릭합니다. - ActiveMQArtemisSecurity CRD를 클릭합니다.
- Instances 탭을 클릭합니다.
Create 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또는 역할의 값을 지정하지 않으면 결과 구성으로 인해 예기치 않은 결과가 발생할 수 있습니다.앞의 구성은 두 사용자를 정의합니다.
-
sender라는 역할로sam이라는 사용자를 정의하는propertiesLoginModule이라는prop-module. -
receiver라는 역할이 있는 developer라는 사용자를 정의하는prop-이라는modulepropertiesLoginModule입니다.
이러한 역할의 속성은
securityDomains섹션의및 broker 섹션에 정의되어 있습니다. 예를 들어brokerDomainsend역할은 해당 역할을 가진 사용자가 모든 주소에 있는 영구 대기열을 생성할 수 있도록 정의되었습니다. 기본적으로 구성은 현재 네임스페이스의 CR에 정의된 모든 배포된 브로커에 적용됩니다. 특정 브로커 배포로 구성을 제한하려면 8.1.3절. “보안 사용자 정의 리소스 구성 참조” 에 설명된applyToCrNames옵션을 사용합니다.참고metadata섹션에서namespace속성을 포함하고 OpenShift Container Platform 웹 콘솔을 사용하여 CR 인스턴스를 생성하는 경우에만 값을 지정해야 합니다. 지정해야 하는 값은 브로커 배포를 위한 OpenShift 프로젝트의 이름입니다.-
CR 인스턴스를 배포합니다.
OpenShift 명령줄 인터페이스 사용:
- CR 파일을 저장합니다.
브로커 배포를 위해 프로젝트로 전환합니다.
$ oc project <project_name>CR 인스턴스를 생성합니다.
$ oc create -f <path/to/address_custom_resource_instance>.yaml
OpenShift 웹 콘솔 사용:
- CR 구성을 마쳤으면 생성을 클릭합니다.
4.3.2. 시크릿에 사용자 암호 저장 링크 복사링크가 클립보드에 복사되었습니다!
Operator 기반 브로커 배포 절차에 대한 보안 구성 생성 절차에서 사용자 암호는 ActiveMQArtemisSecurity CR에 일반 텍스트로 저장됩니다. CR에 암호를 일반 텍스트로 저장하지 않으려면 CR에서 암호를 제외하여 시크릿에 저장할 수 있습니다. CR을 적용하면 Operator는 시크릿에서 각 사용자의 암호를 검색하여 브로커 Pod의 artemis-users.properties 파일에 삽입합니다.
절차
oc create secret명령을 사용하여 보안을 생성하고 각 사용자의 이름과 암호를 추가합니다. 보안 이름은security-properties-모듈 이름지정 규칙을 따라야 합니다. 여기서 모듈 이름은 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 웹 콘솔 사용:
- CR 구성을 완료하면 생성을 클릭합니다.
추가 리소스
OpenShift Container Platform의 보안에 대한 자세한 내용은 OpenShift Container Platform 설명서의 Pod에 중요한 데이터 제공을 참조하십시오.