1장. 사용자 정의 인증서 추가
Red Hat Advanced Cluster Security for Kubernetes에서 사용자 지정 TLS 인증서를 사용하는 방법을 알아보십시오. 인증서를 설정한 후 사용자와 API 클라이언트는 Central에 연결할 때 인증서 보안 경고를 바이패스할 필요가 없습니다.
1.1. 사용자 정의 보안 인증서 추가
설치 중 또는 기존 Red Hat Advanced Cluster Security for Kubernetes 배포에 보안 인증서를 적용할 수 있습니다.
1.1.1. 사용자 정의 인증서 추가를 위한 사전 요구 사항
사전 요구 사항
- PEM 인코딩 개인 키와 인증서 파일이 이미 있어야 합니다.
인증서 파일은 사람이 읽을 수 있는 블록으로 시작하고 끝나야 합니다. 예를 들면 다음과 같습니다.
-----BEGIN CERTIFICATE----- MIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... l4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= -----END CERTIFICATE-----
인증서 파일은 단일 (leaf) 인증서 또는 인증서 체인을 포함할 수 있습니다.
주의- 신뢰할 수 있는 루트에서 인증서를 직접 서명하지 않은 경우 중간 인증서를 포함하여 전체 인증서 체인을 제공해야 합니다.
- 리프 인증서가 첫 번째이고 루트 인증서가 체인의 마지막 인증서가 되도록 체인의 모든 인증서가 있어야 합니다.
- 전역적으로 신뢰할 수 없는 사용자 정의 인증서를 사용하는 경우 사용자 정의 인증서를 신뢰하도록 센서를 구성해야 합니다.
1.1.2. 새 설치 중에 사용자 정의 인증서 추가
프로세스
Operator를 사용하여 Red Hat Advanced Cluster Security for Kubernetes를 설치하는 경우:
다음 명령을 입력하여 중앙 서비스가 설치될 네임스페이스에 적절한 TLS 인증서가 포함된
central-default-tls-cert
시크릿을 생성합니다.oc -n <namespace> create secret tls central-default-tls-cert --cert <tls-cert.pem> --key <tls-key.pem>
Helm을 사용하여 Kubernetes용 Red Hat Advanced Cluster Security를 설치하는 경우:
values-private.yaml
파일에 사용자 정의 인증서와 해당 키를 추가합니다.central: # Configure a default TLS certificate (public cert + private key) for central defaultTLS: cert: | -----BEGIN CERTIFICATE----- EXAMPLE!MIIMIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... -----END CERTIFICATE----- key: | -----BEGIN EC PRIVATE KEY----- EXAMPLE!MHcl4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= ... -----END EC PRIVATE KEY-----
설치 중에 구성 파일을 제공합니다.
$ helm install -n stackrox --create-namespace stackrox-central-services rhacs/central-services -f values-private.yaml
roxctl
CLI를 사용하여 Red Hat Advanced Cluster Security for Kubernetes를 설치하는 경우 설치 프로그램을 실행할 때 인증서 및 키 파일을 제공합니다.비대화형 설치 프로그램의 경우
--default-tls-cert
및--default-tls-key
옵션을 사용합니다.$ roxctl central generate --default-tls-cert "cert.pem" --default-tls-key "key.pem"
대화형 설치 프로그램의 경우 프롬프트에 대한 응답을 입력할 때 인증서 및 키 파일을 제공합니다.
... Enter PEM cert bundle file (optional): <cert.pem> Enter PEM private key file (optional): <key.pem> Enter administrator password (default: autogenerated): Enter orchestrator (k8s, openshift): openshift ...
1.1.3. 기존 인스턴스의 사용자 정의 인증서 추가
프로세스
Operator를 사용하여 Kubernetes용 Red Hat Advanced Cluster Security를 설치한 경우:
다음 명령을 입력하여 중앙 서비스가 설치된 네임스페이스에 적절한 TLS 인증서가 포함된
central-default-tls-cert
시크릿을 생성합니다.oc -n <namespace> create secret tls central-default-tls-cert --cert <tls-cert.pem> --key <tls-key.pem>
Helm을 사용하여 Kubernetes용 Red Hat Advanced Cluster Security를 설치한 경우:
values-private.yaml
파일에 사용자 정의 인증서와 해당 키를 추가합니다.central: # Configure a default TLS certificate (public cert + private key) for central defaultTLS: cert: | -----BEGIN CERTIFICATE----- EXAMPLE!MIIMIICLDCCAdKgAwIBAgIBADAKBggqhkjOPQQDAjB9MQswCQYDVQQGEwJCRTEPMA0G ... -----END CERTIFICATE----- key: | -----BEGIN EC PRIVATE KEY----- EXAMPLE!MHcl4wOuDwKQa+upc8GftXE2C//4mKANBC6It01gUaTIpo= ... -----END EC PRIVATE KEY-----
helm upgrade
명령을 사용하여 업데이트된 구성 파일을 제공합니다.$ helm upgrade -n stackrox --create-namespace stackrox-central-services \ rhacs/central-services --reuse-values \1 -f values-private.yaml
- 1
values-private.yaml
파일에는 필요한 모든 구성 값이 포함되어 있지 않기 때문에 이 매개변수를 사용해야 합니다.
roxctl
CLI를 사용하여 Kubernetes용 Red Hat Advanced Cluster Security를 설치한 경우:PEM 인코딩 키 및 인증서 파일에서 TLS 시크릿을 생성하고 적용합니다.
$ oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -
이 명령을 실행한 후 Central은 Pod를 다시 시작할 필요 없이 새 키와 인증서를 자동으로 적용합니다. 변경 사항을 전파하는 데 최대 1분이 걸릴 수 있습니다.
1.1.4. 기존 인스턴스의 사용자 정의 인증서 업데이트
Central에 대한 사용자 지정 인증서를 사용하는 경우 다음 절차를 수행하여 인증서를 업데이트할 수 있습니다.
프로세스
기존 사용자 정의 인증서의 보안을 삭제합니다.
$ oc delete secret central-default-tls-cert
새 보안을 생성합니다.
$ oc -n stackrox create secret tls central-default-tls-cert \ --cert <server_cert.pem> \ --key <server_key.pem> \ --dry-run -o yaml | oc apply -f -
- 중앙 컨테이너를 다시 시작합니다.
1.1.4.1. 중앙 컨테이너 다시 시작
Central 컨테이너를 종료하거나 Central Pod를 삭제하여 Central 컨테이너를 다시 시작할 수 있습니다.
프로세스
다음 명령을 실행하여 중앙 컨테이너를 종료합니다.
참고OpenShift Container Platform이 변경 사항을 전파하고 중앙 컨테이너를 다시 시작할 때까지 1분 이상 기다려야 합니다.
$ oc -n stackrox exec deploy/central -c central -- kill 1
또는 다음 명령을 실행하여 중앙 Pod를 삭제합니다.
$ oc -n stackrox delete pod -lapp=central