1장. 사용자 정의 인증서 추가
Red Hat Advanced Cluster Security for Kubernetes에서 사용자 정의 TLS 인증서를 사용하는 방법을 알아봅니다. 인증서를 설정한 후 사용자와 API 클라이언트는 중앙에 연결할 때 인증서 보안 경고를 무시할 필요가 없습니다.
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. 새 설치 시 사용자 정의 인증서 추가
절차
Helm을 사용하여 Red Hat Advanced Cluster Security for Kubernetes를 설치하는 경우 다음을 수행합니다.
사용자 정의 인증서와 해당 키를
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를 사용하여 Kubernetes용 Red Hat Advanced Cluster Security를 설치하는 경우 설치 프로그램을 실행할 때 인증서 및 키 파일을 제공합니다.비대화형 설치 프로그램의 경우
--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. 기존 인스턴스의 사용자 정의 인증서 추가
절차
Helm을 사용하여 Red Hat Advanced Cluster Security for Kubernetes를 설치한 경우 다음을 수행합니다.
사용자 정의 인증서와 해당 키를
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 -f 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. 기존 인스턴스의 사용자 정의 인증서 업데이트
중앙에 사용자 정의 인증서를 사용하는 경우 다음 절차를 수행하여 인증서를 업데이트할 수 있습니다.
절차
기존 사용자 정의 인증서의 보안을 삭제합니다.
$ 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. 중앙 컨테이너 다시 시작
중앙 컨테이너를 종료하거나 중앙 Pod를 삭제하여 중앙 컨테이너를 다시 시작할 수 있습니다.
절차
다음 명령을 실행하여 Central 컨테이너를 종료합니다.
참고OpenShift Container Platform이 변경 사항을 전파하고 중앙 컨테이너를 다시 시작할 때까지 1분 이상 기다려야 합니다.
$ oc -n stackrox exec deploy/central -c central -- kill 1
또는 다음 명령을 실행하여 중앙 Pod를 삭제합니다.
$ oc -n stackrox delete pod -lapp=central