10.4. Zero Trust Workload Identity Manager 피연산자 배포
Zero Trust Workload Identity Manager는 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
각 CR(사용자 정의 리소스)을 생성하여 다음 피연산자를 배포할 수 있습니다. 설치에 성공하려면 다음 순서로 피연산자를 배포해야 합니다.
- SPIRE 서버
- SPIRE 에이전트
- SPIFFE CSI 드라이버
- SPIRE OIDC 검색 공급자
10.4.1. SPIRE 서버 배포 링크 복사링크가 클립보드에 복사되었습니다!
SPIRE 서버를 배포하고 구성하도록 SpireServer
CR(사용자 정의 리소스)을 구성할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - 클러스터에 Zero Trust Workload Identity Manager를 설치했습니다.
프로세스
SpireServer
CR을 생성합니다.SpireServer
CR을 정의하는 YAML 파일을 생성합니다(예:SpireServer.yaml
).Example
SpireServer.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- SPIFFE 식별자에 사용할 신뢰 도메인입니다.
- 2
- 클러스터 이름입니다.
- 3
- SPIRE 서버 CA의 일반 이름입니다.
- 4
- SPIRE 서버 CA 국가입니다.
- 5
- SPIRE 서버 CA 조직입니다.
- 6
- 지속성에 사용할 볼륨 유형입니다. 유효한 옵션은
pvc
및hostPath
입니다. - 7
- 지속성에 사용할 볼륨 크기
- 8
- 지속성에 사용할 액세스 모드입니다. 유효한 옵션은
ReadWriteOnce
,ReadWriteOncePod
및ReadWriteMany
입니다. - 9
- 열려 있는 데이터베이스 연결의 최대 수입니다.
- 10
- 풀의 최대 유휴 연결 수입니다.
- 11
- 연결을 재사용할 수 있는 최대 시간입니다. 무제한 시간을 지정하려면 값을
0
으로 설정할 수 있습니다. - 12
- JSON 웹 토큰(JWT) 발행자 도메인입니다. 값은 유효한 URL이어야 합니다.
다음 명령을 실행하여 구성을 적용합니다.
oc apply -f SpireServer.yaml
$ oc apply -f SpireServer.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 SPIRE Server의 상태 저장 세트가 준비되었으며 사용 가능한지 확인합니다.
oc get statefulset -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
$ oc get statefulset -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY AGE spire-server 1/1 65s
NAME READY AGE spire-server 1/1 65s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 SPIRE 서버 포드의 상태가
Running
인지 확인합니다.oc get po -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
$ oc get po -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE spire-server-0 2/2 Running 1 (108s ago) 111s
NAME READY STATUS RESTARTS AGE spire-server-0 2/2 Running 1 (108s ago) 111s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 PVC(영구 볼륨 클레임)가 바인딩되었는지 확인합니다.
oc get pvc -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
$ oc get pvc -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTECLASS AGE spire-data-spire-server-0 Bound pvc-27a36535-18a1-4fde-ab6d-e7ee7d3c2744 5Gi RW0 gp3-csi <unset> 22m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS VOLUMEATTRIBUTECLASS AGE spire-data-spire-server-0 Bound pvc-27a36535-18a1-4fde-ab6d-e7ee7d3c2744 5Gi RW0 gp3-csi <unset> 22m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.2. SPIRE 에이전트 배포 링크 복사링크가 클립보드에 복사되었습니다!
SPIRE 에이전트를 배포하고 구성하도록 SpireAgent
CR(사용자 정의 리소스)을 구성할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - 클러스터에 Zero Trust Workload Identity Manager를 설치했습니다.
프로세스
SpireAgent
CR을 생성합니다.SpireAgent
CR을 정의하는 YAML 파일을 생성합니다(예:SpireAgent.yaml
).SpireAgent.yaml
의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- SPIFFE 식별자에 사용할 신뢰 도메인입니다.
- 2
- 클러스터 이름입니다.
- 3
- PSAT( projected service account token) Kubernetes 노드를 활성화하거나 비활성화합니다. 유효한 옵션은
true
및false
입니다. - 4
- Kubernetes 워크로드 attestor를 활성화하거나 비활성화합니다. 유효한 옵션은
true
및false
입니다. - 5
- kubelet에 대해 수행할 확인 유형입니다. 유효한 옵션은
auto
,hostCert
,apiServerCA
,skip
입니다.auto
옵션은 처음에hostCert
를 사용하려고 시도한 다음apiServerCA
로 대체됩니다.
다음 명령을 실행하여 구성을 적용합니다.
oc apply -f SpireAgent.yaml
$ oc apply -f SpireAgent.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 SPIRE 에이전트의 데몬 세트가 준비되고 사용 가능한지 확인합니다.
oc get daemonset -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager
$ oc get daemonset -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-agent 3 3 3 3 3 <none> 10m
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-agent 3 3 3 3 3 <none> 10m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 SPIRE 에이전트 Pod의 상태가
Running
인지 확인합니다.oc get po -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager
$ oc get po -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE spire-agent-dp4jb 1/1 Running 0 12m spire-agent-nvwjm 1/1 Running 0 12m spire-agent-vtvlk 1/1 Running 0 12m
NAME READY STATUS RESTARTS AGE spire-agent-dp4jb 1/1 Running 0 12m spire-agent-nvwjm 1/1 Running 0 12m spire-agent-vtvlk 1/1 Running 0 12m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.3. SPIFFE 컨테이너 스토리지 인터페이스 드라이버 배포 링크 복사링크가 클립보드에 복사되었습니다!
SPIFFE CSI(Container Storage Interface) 드라이버를 배포하고 구성하도록 SpiffeCSIDriver
사용자 정의 리소스(CR)를 구성할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - 클러스터에 Zero Trust Workload Identity Manager를 설치했습니다.
프로세스
SpiffeCSIDriver
CR을 생성합니다.SpiffeCSIDriver
CR 오브젝트를 정의하는 YAML 파일을 생성합니다(예:SpiffeCSIDriver.yaml
).예:
SpiffeCSIDriver.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- SPIRE 에이전트의 UNIX 소켓 경로입니다.
다음 명령을 실행하여 구성을 적용합니다.
oc apply -f SpiffeCSIDriver.yaml
$ oc apply -f SpiffeCSIDriver.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 SPIFFE CSI 드라이버의 데몬 세트가 준비되고 사용 가능한지 확인합니다.
oc get daemonset -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager
$ oc get daemonset -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-spiffe-csi-driver 3 3 3 3 3 <none> 114s
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-spiffe-csi-driver 3 3 3 3 3 <none> 114s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 SPIFFE CSI(Container Storage Interface) 드라이버 Pod의 상태가 실행 중인지 확인합니다.
oc get po -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager
$ oc get po -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE spire-spiffe-csi-driver-gpwcp 2/2 Running 0 2m37s spire-spiffe-csi-driver-rrbrd 2/2 Running 0 2m37s spire-spiffe-csi-driver-w6s6q 2/2 Running 0 2m37s
NAME READY STATUS RESTARTS AGE spire-spiffe-csi-driver-gpwcp 2/2 Running 0 2m37s spire-spiffe-csi-driver-rrbrd 2/2 Running 0 2m37s spire-spiffe-csi-driver-w6s6q 2/2 Running 0 2m37s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.4.4. SPIRE OpenID Connect 검색 공급자 배포 링크 복사링크가 클립보드에 복사되었습니다!
OIDCDiscoveryProvider
CR(사용자 정의 리소스)을 구성하고 OIDC(OpenID Connect) 검색 공급자를 구성하고 구성할 수 있습니다.
사전 요구 사항
-
cluster-admin
역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - 클러스터에 Zero Trust Workload Identity Manager를 설치했습니다.
프로세스
SpireOIDCDiscoveryProvider
CR을 생성합니다.SpireOIDCDiscoveryProvider
CR을 정의하는 YAML 파일을 생성합니다(예:SpireOIDCDiscoveryProvider.yaml
).SpireOIDCDiscoveryProvider.yaml
의 예Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 구성을 적용합니다.
oc apply -f SpireOIDCDiscoveryProvider.yaml
$ oc apply -f SpireOIDCDiscoveryProvider.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
다음 명령을 실행하여 OIDC 검색 공급자의 배포가 준비되고 사용 가능한지 확인합니다.
oc get deployment -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager
$ oc get deployment -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY UP-TO-DATE AVAILABLE AGE spire-spiffe-oidc-discovery-provider 1/1 1 1 2m58s
NAME READY UP-TO-DATE AVAILABLE AGE spire-spiffe-oidc-discovery-provider 1/1 1 1 2m58s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 OIDC 검색 공급자 Pod의 상태가
Running
인지 확인합니다.oc get po -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager
$ oc get po -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE spire-spiffe-oidc-discovery-provider-64586d599f-lcc94 2/2 Running 0 7m15s
NAME READY STATUS RESTARTS AGE spire-spiffe-oidc-discovery-provider-64586d599f-lcc94 2/2 Running 0 7m15s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow