3.4. 모든 보안 클러스터 업그레이드
중앙 서비스를 업그레이드한 후 모든 보안 클러스터를 업그레이드해야 합니다.
자동 업그레이드를 사용하는 경우:
자동 업그레이드를 사용하지 않는 경우 Central 클러스터를 포함한 모든 보안 클러스터에 대한 이 섹션의 지침을 실행해야 합니다.
- 최적의 기능을 유지하려면 보안 클러스터에 동일한 RHACS 버전을 사용하고 Central이 설치된 클러스터를 사용합니다.
센서, 수집기 및 Admission 컨트롤러를 실행하는 각 보안 클러스터의 수동 업그레이드를 완료하려면 이 섹션의 지침을 따르십시오.
3.4.1. 다른 이미지 업데이트
자동 업그레이드를 사용하지 않는 경우 각 보안 클러스터에서 센서, 수집기 및 규정 준수 이미지를 업데이트해야 합니다.
Kubernetes를 사용하는 경우 이 절차에 나열된 명령에 oc
대신 kubectl
을 사용합니다.
프로세스
센서 이미지를 업데이트합니다.
$ oc -n stackrox set image deploy/sensor sensor=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.5.4 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
Compliance 이미지를 업데이트합니다.
$ oc -n stackrox set image ds/collector compliance=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.5.4 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
수집기 이미지를 업데이트합니다.
$ oc -n stackrox set image ds/collector collector=registry.redhat.io/advanced-cluster-security/rhacs-collector-rhel8:4.5.4 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
참고수집기 슬림 이미지를 사용하는 경우 다음 명령을 실행합니다.
$ oc -n stackrox set image ds/collector collector=registry.redhat.io/advanced-cluster-security/rhacs-collector-slim-rhel8:{rhacs-version}
승인 제어 이미지를 업데이트합니다.
$ oc -n stackrox set image deploy/admission-control admission-control=registry.redhat.io/advanced-cluster-security/rhacs-main-rhel8:4.5.4
roxctl
CLI를 사용하여 Red Hat OpenShift에 RHACS를 설치한 경우 SCC(보안 컨텍스트 제약 조건)를 마이그레이션해야 합니다.
자세한 내용은 "추가 리소스" 섹션의 "수동 업그레이드 중 SCC 마이그레이션"을 참조하십시오.
다음 단계
추가 리소스
3.4.2. 수동 업그레이드 중 SCC 마이그레이션
roxctl
CLI를 사용하여 수동 업그레이드 중에 SCC(보안 컨텍스트 제약 조건)를 마이그레이션하면 RHACS(Red Hat Advanced Cluster Security for Kubernetes) 서비스를 원활하게 전환하여 Red Hat OpenShift SCC를 사용하여 중앙 및 모든 보안 클러스터 전체에서 호환성과 최적의 보안 구성을 보장할 수 있습니다.
프로세스
중앙 및 모든 보안 클러스터에 배포된 모든 RHACS 서비스를 나열합니다.
$ oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
출력 예
Name: admission-control-6f4dcc6b4c-2phwd openshift.io/scc: stackrox-admission-control #... Name: central-575487bfcb-sjdx8 openshift.io/scc: stackrox-central Name: central-db-7c7885bb-6bgbd openshift.io/scc: stackrox-central-db Name: collector-56nkr openshift.io/scc: stackrox-collector #... Name: scanner-68fc55b599-f2wm6 openshift.io/scc: stackrox-scanner Name: scanner-68fc55b599-fztlh #... Name: sensor-84545f86b7-xgdwf openshift.io/scc: stackrox-sensor #...
이 예에서는 각 Pod에
openshift.io/scc
필드를 통해 지정된 고유한 사용자 지정 SCC가 있음을 확인할 수 있습니다.RHACS 사용자 지정 SCC 대신 Red Hat OpenShift SCC를 사용하는 데 필요한 역할 및 역할 바인딩을 추가합니다.
중앙 클러스터에 Red Hat OpenShift SCC를 사용하기 위해 필요한 역할 및 역할 바인딩을 추가하려면 다음 단계를 완료하십시오.
다음 콘텐츠를 사용하여 역할 및 역할 바인딩 리소스를 정의하는
update-central.yaml
파일을 생성합니다.예 3.1. YAML 파일의 예
apiVersion: rbac.authorization.k8s.io/v1 kind: Role 1 metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: central app.kubernetes.io/instance: stackrox-central-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-central-services app.kubernetes.io/version: 4.4.0 name: use-central-db-scc 2 namespace: stackrox 3 Rules: 4 - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 resources: - securitycontextconstraints verbs: - use - - - apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: central app.kubernetes.io/instance: stackrox-central-services app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-central-services app.kubernetes.io/version: 4.4.0 name: use-central-scc namespace: stackrox rules: - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 resources: - securitycontextconstraints verbs: - use - - - apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: scanner app.kubernetes.io/instance: stackrox-central-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-central-services app.kubernetes.io/version: 4.4.0 name: use-scanner-scc namespace: stackrox rules: - apiGroups: - security.openshift.io resourceNames: - nonroot-v2 resources: - securitycontextconstraints verbs: - use - - - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding 5 metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: central app.kubernetes.io/instance: stackrox-central-services app.kubernetes.io/name: stackrox app.k ubernetes.io/part-of: stackrox-central-services app.kubernetes.io/version: 4.4.0 name: central-db-use-scc 6 namespace: stackrox roleRef: 7 apiGroup: rbac.authorization.k8s.io kind: Role name: use-central-db-scc subjects: 8 - kind: ServiceAccount name: central-db namespace: stackrox - - - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: central app.kubernetes.io/instance: stackrox-central-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-central-services app.kubernetes.io/version: 4.4.0 name: central-use-scc namespace: stackrox roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: use-central-scc subjects: - kind: ServiceAccount name: central namespace: stackrox - - - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: scanner app.kubernetes.io/instance: stackrox-central-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-central-services app.kubernetes.io/version: 4.4.0 name: scanner-use-scc namespace: stackrox roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: use-scanner-scc subjects: - kind: ServiceAccount name: scanner namespace: stackrox - - -
다음 명령을 실행하여
update-central.yaml
파일에 지정된 역할 및 역할 바인딩 리소스를 생성합니다.$ oc -n stackrox create -f ./update-central.yaml
모든 보안 클러스터에 Red Hat OpenShift SCC를 사용하기 위해 필요한 역할 및 역할 바인딩을 추가하려면 다음 단계를 완료하십시오.
다음 콘텐츠를 사용하여 역할 및 역할 바인딩 리소스를 정의하는
upgrade-scs.yaml
이라는 파일을 생성합니다.예 3.2. YAML 파일의 예
apiVersion: rbac.authorization.k8s.io/v1 kind: Role 1 metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: collector app.kubernetes.io/instance: stackrox-secured-cluster-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-secured-cluster-services app.kubernetes.io/version: 4.4.0 auto-upgrade.stackrox.io/component: sensor name: use-privileged-scc 2 namespace: stackrox 3 rules: 4 - apiGroups: - security.openshift.io resourceNames: - privileged resources: - securitycontextconstraints verbs: - use - - - apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding 5 metadata: annotations: email: support@stackrox.com owner: stackrox labels: app.kubernetes.io/component: collector app.kubernetes.io/instance: stackrox-secured-cluster-services app.kubernetes.io/name: stackrox app.kubernetes.io/part-of: stackrox-secured-cluster-services app.kubernetes.io/version: 4.4.0 auto-upgrade.stackrox.io/component: sensor name: collector-use-scc 6 namespace: stackrox roleRef: 7 apiGroup: rbac.authorization.k8s.io kind: Role name: use-privileged-scc subjects: 8 - kind: ServiceAccount name: collector namespace: stackrox - - -
다음 명령을 실행하여
upgrade-scs.yaml
파일에 지정된 역할 및 역할 바인딩 리소스를 생성합니다.$ oc -n stackrox create -f ./update-scs.yaml
중요upgrade-scs.yaml
파일에 지정된 역할 및 역할 바인딩을 생성하려면 각 보안 클러스터에서 이 명령을 실행해야 합니다.
RHACS와 관련된 SCC를 삭제합니다.
중앙 클러스터와 관련된 SCC를 삭제하려면 다음 명령을 실행합니다.
$ oc delete scc/stackrox-central scc/stackrox-central-db scc/stackrox-scanner
모든 보안 클러스터에 고유한 SCC를 삭제하려면 다음 명령을 실행합니다.
$ oc delete scc/stackrox-admission-control scc/stackrox-collector scc/stackrox-sensor
중요보안된 각 클러스터에서 이 명령을 실행하여 보안된 각 클러스터에 고유한 SCC를 삭제해야 합니다.
검증
다음 명령을 실행하여 모든 Pod가 올바른 SCC를 사용하고 있는지 확인합니다.
$ oc -n stackrox describe pods | grep 'openshift.io/scc\|^Name:'
다음 표와 출력을 비교합니다.
Component 이전 사용자 정의 SCC 새로운 Red Hat OpenShift 4 SCC Central
stackrox-central
nonroot-v2
Central-db
stackrox-central-db
nonroot-v2
스캐너
stackrox-scanner
nonroot-v2
scanner-db
stackrox-scanner
nonroot-v2
Admission Controller
stackrox-admission-control
restricted-v2
수집기
stackrox-collector
privileged
센서
stackrox-sensor
restricted-v2
3.4.2.1. 센서 배포에 대한 GOMEMLIMIT 환경 변수 편집
버전 4.4로 업그레이드하려면 GOMEMLIMIT
환경 변수를 ROX_MEMLIMIT
환경 변수로 교체해야 합니다. 각 배포에 대해 이 변수를 편집해야 합니다.
프로세스
다음 명령을 실행하여 센서 배포에 대한 변수를 편집합니다.
$ oc -n stackrox edit deploy/sensor 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
-
GOMEMLIMIT
변수를ROX_MEMLIMIT
로 바꿉니다. - 파일을 저장합니다.
3.4.2.2. 수집기 배포에 대한 GOMEMLIMIT 환경 변수 편집
버전 4.4로 업그레이드하려면 GOMEMLIMIT
환경 변수를 ROX_MEMLIMIT
환경 변수로 교체해야 합니다. 각 배포에 대해 이 변수를 편집해야 합니다.
프로세스
다음 명령을 실행하여 수집기 배포에 대한 변수를 편집합니다.
$ oc -n stackrox edit deploy/collector 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
-
GOMEMLIMIT
변수를ROX_MEMLIMIT
로 바꿉니다. - 파일을 저장합니다.
3.4.2.3. Admission Controller 배포를 위한 GOMEMLIMIT 환경 변수 편집
버전 4.4로 업그레이드하려면 GOMEMLIMIT
환경 변수를 ROX_MEMLIMIT
환경 변수로 교체해야 합니다. 각 배포에 대해 이 변수를 편집해야 합니다.
프로세스
다음 명령을 실행하여 Admission Controller 배포의 변수를 편집합니다.
$ oc -n stackrox edit deploy/admission-control 1
- 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
-
GOMEMLIMIT
변수를ROX_MEMLIMIT
로 바꿉니다. - 파일을 저장합니다.
3.4.2.4. 보안 클러스터 업그레이드 확인
보안 클러스터를 업그레이드한 후 업데이트된 Pod가 작동하는지 확인합니다.