3.12. 무결성 자동 보호 (기술 프리뷰)
무결성 방패는 리소스 생성 또는 업데이트에 대한 서명 확인을 시행하기 위한 무결성 제어를 지원하는 도구입니다. 무결성 중단은OPA(Open Policy Agent) 및 게이트키퍼를 지원하고, 요청에 서명이 있는지 확인하고, 정의된 제약 조건에 따라 인증되지 않은 요청을 차단합니다.
다음 무결성 방패 기능을 참조하십시오.
- 인증된 Kubernetes 매니페스트 배포만 지원합니다.
- 리소스가 허용 목록에 추가되지 않는 한 리소스 구성에서 0drift를 지원합니다.
- 승인 컨트롤러 강제와 같은 클러스터에서 모든 무결성 확인을 수행합니다.
- 인증되지 않은 Kubernetes 리소스가 클러스터에 배포되었는지 보고하기 위해 리소스를 지속적으로 모니터링합니다.
-
Kubernetes 매니페스트 YAML 파일에 서명하기 위해 X509, GPG 및 Sigstore 서명이 지원됩니다. Kubernetes 무결성 분리는
k8s-manifest-sigstore
를 사용하여 Sigstore 서명을 지원합니다.
3.12.1. 무결성 분리 아키텍처 링크 복사링크가 클립보드에 복사되었습니다!
무결성 방패는 API와 Observer의 두 가지 주요 구성 요소로 구성됩니다. 무결성 분리 Operator는 클러스터의 무결성 분리 구성 요소의 설치 및 관리를 지원합니다. 구성 요소에 대한 다음 설명을 확인합니다.
-
무결성 중단 API 는 OPA 또는 게이트키퍼에서 Kubernetes 리소스를 수신하고, 승인 요청에 포함된 리소스를 검증하고, 확인 결과를 OPA 또는 게이트 키퍼로 보냅니다. 무결성 방패 API는
k8s-manifest-sigstore
의verify-resource
기능을 사용하여 Kubernetes 매니페스트 YAML 파일을 확인합니다. 무결성 분리 API는 OPA 또는 게이트 키퍼의 제약 조건 프레임 워크를 기반으로 하는 사용자 정의 리소스인ManifestingIntegrityConstraint
에 따라 리소스를 검증합니다. -
무결성 방위 Observer 는
ManifestingIntegrityConstraint
리소스에 따라 클러스터에서 Kubernetes 리소스를 지속적으로 확인하고 결과를ManifestIntegrityState
라는 리소스로 내보냅니다. 무결성 배양 Observer는 또한k8s-manifest-sigstore
를 사용하여 서명을 확인합니다.
3.12.2. 지원되는 버전 링크 복사링크가 클립보드에 복사되었습니다!
다음 제품 버전은 무결성 보호 기능을 지원합니다.
자세한 내용은 무결성 방위 보호(기술 프리뷰) 를 참조하십시오.
3.12.3. 무결성 방위 보호 활성화 (기술 프리뷰) 링크 복사링크가 클립보드에 복사되었습니다!
Kubernetes 리소스의 무결성을 보호하도록 Red Hat Advanced Cluster Management for Kubernetes 클러스터에서 무결성을 보호합니다.
3.12.3.1. 사전 요구 사항 링크 복사링크가 클립보드에 복사되었습니다!
Red Hat Advanced Cluster Management 관리형 클러스터에서 무결성 분리 보호를 사용하려면 다음과 같은 사전 요구 사항이 필요합니다.
-
oc
또는kubectl
명령을 사용하기 위해 클러스터에 대한 클러스터 관리자 액세스 권한과 함께 하나 이상의 관리형 클러스터가 있는 Red Hat Advanced Cluster Management hub 클러스터를 설치합니다. 무결성 분리를 설치합니다. 무결성 방패를 설치하기 전에 클러스터에 Open Policy Agent 또는 gatekeeper를 설치해야 합니다. 무결성 Operator를 설치하려면 다음 단계를 완료합니다.
다음 명령을 실행하여 무결성 분리를 위해 네임스페이스에 무결성 분리 Operator를 설치합니다.
kubectl create -f https://raw.githubusercontent.com/open-cluster-management/integrity-shield/master/integrity-shield-operator/deploy/integrity-shield-operator-latest.yaml
kubectl create -f https://raw.githubusercontent.com/open-cluster-management/integrity-shield/master/integrity-shield-operator/deploy/integrity-shield-operator-latest.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 무결성 사용자 정의 리소스를 설치합니다.
kubectl create -f https://raw.githubusercontent.com/open-cluster-management/integrity-shield/master/integrity-shield-operator/config/samples/apis_v1_integrityshield.yaml -n integrity-shield-operator-system
kubectl create -f https://raw.githubusercontent.com/open-cluster-management/integrity-shield/master/integrity-shield-operator/config/samples/apis_v1_integrityshield.yaml -n integrity-shield-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 무결성 분리를 위해서는 클러스터에서 보호해야 하는 리소스 서명과 서명에 대한 한 쌍의 키가 필요합니다. 서명 및 확인 키 쌍을 설정합니다.
다음 명령을 사용하여 새 GPG 키를 생성합니다.
gpg --full-generate-key
gpg --full-generate-key
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 사용하여 새 GPG 공개 키를 파일에 내보냅니다.
gpg --export signer@enterprise.com > /tmp/pubring.gpg
gpg --export signer@enterprise.com > /tmp/pubring.gpg
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
yq
를 설치하여 Red Hat Advanced Cluster Management 정책에 서명하기 위한 스크립트를 실행합니다. -
무결성 보호 및 Red Hat Advanced Cluster Management 서명을 사용하려면
무결성 저장소에서 소스를 검색하고 커밋하는 작업이
포함됩니다. Git 을 설치해야 합니다.
3.12.3.2. 무결성 보호 활성화 링크 복사링크가 클립보드에 복사되었습니다!
다음 단계를 완료하여 Red Hat Advanced Cluster Management 관리 클러스터에서 무결성 분리를 활성화합니다.
무결성 분리를 위한 허브 클러스터에 네임스페이스를 생성합니다. 다음 명령을 실행합니다.
oc create ns your-integrity-shield-ns
oc create ns your-integrity-shield-ns
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Red Hat Advanced Cluster Management 관리형 클러스터에 확인 키를 배포합니다. 서명 및 검증 키를 생성해야 합니다. 허브 클러스터에서
acm-verification-key-setup.sh
를 실행하여 확인 키를 설정합니다. 다음 명령을 실행합니다.curl -s https://raw.githubusercontent.com/stolostron/integrity-shield/master/scripts/ACM/acm-verification-key-setup.sh | bash -s \ --namespace integrity-shield-operator-system \ --secret keyring-secret \ --path /tmp/pubring.gpg \ --label environment=dev | oc apply -f -
curl -s https://raw.githubusercontent.com/stolostron/integrity-shield/master/scripts/ACM/acm-verification-key-setup.sh | bash -s \ --namespace integrity-shield-operator-system \ --secret keyring-secret \ --path /tmp/pubring.gpg \ --label environment=dev | oc apply -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 확인 키를 제거하려면 다음 명령을 실행합니다.
curl -s https://raw.githubusercontent.com/stolostron/integrity-shield/master/scripts/ACM/acm-verification-key-setup.sh | bash -s - \ --namespace integrity-shield-operator-system \ --secret keyring-secret \ --path /tmp/pubring.gpg \ --label environment=dev | oc delete -f -
curl -s https://raw.githubusercontent.com/stolostron/integrity-shield/master/scripts/ACM/acm-verification-key-setup.sh | bash -s - \ --namespace integrity-shield-operator-system \ --secret keyring-secret \ --path /tmp/pubring.gpg \ --label environment=dev | oc delete -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow hub 클러스터에
policy-integrity-
weeld라는 Red Hat Advanced Cluster Management 정책을 생성합니다.-
policy-collection
리포지토리에서 policy-integrity -
remediationAction
매개변수 값을 업데이트하여 Red Hat Advanced Cluster Management 관리형 클러스터에 무결성 배전을 배포하도록 네임스페이스를
구성합니다
. -
signerConfig
섹션을 업데이트하여 서명자 및 확인 키에 대한 이메일을 구성합니다. -
PlacementRule
을 구성하여 무결성 분리를 배포해야 하는 Red Hat Advanced Cluster Management 관리 클러스터를 결정합니다. 다음 명령을 실행하여
policy-integrity-weeld.yaml
에 서명합니다.curl -s https://raw.githubusercontent.com/stolostron/integrity-shield/master/scripts/gpg-annotation-sign.sh | bash -s \ signer@enterprise.com \ policy-integrity-shield.yaml
curl -s https://raw.githubusercontent.com/stolostron/integrity-shield/master/scripts/gpg-annotation-sign.sh | bash -s \ signer@enterprise.com \ policy-integrity-shield.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고: 정책을 변경하고 다른 클러스터에 적용할 때마다 새 서명을 생성해야 합니다. 그렇지 않으면 변경 사항이 차단되어 적용되지 않습니다.
-
자세한 내용은 policy-integrity-
weeld 정책을 참조하십시오.