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를 설치했습니다.
프로세스
SpireServerCR을 생성합니다.SpireServerCR을 정의하는 YAML 파일을 생성합니다(예:SpireServer.yaml).Example
SpireServer.yamlapiVersion: operator.openshift.io/v1alpha1 kind: SpireServer metadata: name: cluster spec: trustDomain: <trust_domain>1 clusterName: <cluster_name>2 caSubject: commonName: example.org3 country: "US"4 organization: "RH"5 persistence: type: pvc6 size: "5Gi"7 accessMode: ReadWriteOnce8 datastore: databaseType: sqlite3 connectionString: "/run/spire/data/datastore.sqlite3" maxOpenConns: 1009 maxIdleConns: 210 connMaxLifetime: 360011 jwtIssuer: <jwt_issuer_domain>12 - 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
검증
다음 명령을 실행하여 SPIRE Server의 상태 저장 세트가 준비되었으며 사용 가능한지 확인합니다.
$ oc get statefulset -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager출력 예
NAME READY AGE spire-server 1/1 65s다음 명령을 실행하여 SPIRE 서버 포드의 상태가
Running인지 확인합니다.$ oc get po -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager출력 예
NAME READY STATUS RESTARTS AGE spire-server-0 2/2 Running 1 (108s ago) 111s다음 명령을 실행하여 PVC(영구 볼륨 클레임)가 바인딩되었는지 확인합니다.
$ oc get pvc -l app.kubernetes.io/name=server -n zero-trust-workload-identity-manager출력 예
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
10.4.2. SPIRE 에이전트 배포 링크 복사링크가 클립보드에 복사되었습니다!
SPIRE 에이전트를 배포하고 구성하도록 SpireAgent CR(사용자 정의 리소스)을 구성할 수 있습니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - 클러스터에 Zero Trust Workload Identity Manager를 설치했습니다.
프로세스
SpireAgentCR을 생성합니다.SpireAgentCR을 정의하는 YAML 파일을 생성합니다(예:SpireAgent.yaml).SpireAgent.yaml의 예apiVersion: operator.openshift.io/v1alpha1 kind: SpireAgent metadata: name: cluster spec: trustDomain: <trust_domain>1 clusterName: <cluster_name>2 nodeAttestor: k8sPSATEnabled: "true"3 workloadAttestors: k8sEnabled: "true"4 workloadAttestorsVerification: type: "auto"5 - 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
검증
다음 명령을 실행하여 SPIRE 에이전트의 데몬 세트가 준비되고 사용 가능한지 확인합니다.
$ oc get daemonset -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager출력 예
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-agent 3 3 3 3 3 <none> 10m다음 명령을 실행하여 SPIRE 에이전트 Pod의 상태가
Running인지 확인합니다.$ oc get po -l app.kubernetes.io/name=agent -n zero-trust-workload-identity-manager출력 예
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
10.4.3. SPIFFE 컨테이너 스토리지 인터페이스 드라이버 배포 링크 복사링크가 클립보드에 복사되었습니다!
SPIFFE CSI(Container Storage Interface) 드라이버를 배포하고 구성하도록 SpiffeCSIDriver 사용자 정의 리소스(CR)를 구성할 수 있습니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - 클러스터에 Zero Trust Workload Identity Manager를 설치했습니다.
프로세스
SpiffeCSIDriverCR을 생성합니다.SpiffeCSIDriverCR 오브젝트를 정의하는 YAML 파일을 생성합니다(예:SpiffeCSIDriver.yaml).예:
SpiffeCSIDriver.yamlapiVersion: operator.openshift.io/v1alpha1 kind: SpiffeCSIDriver metadata: name: cluster spec: agentSocketPath: '/run/spire/agent-sockets/spire-agent.sock'1 - 1
- SPIRE 에이전트의 UNIX 소켓 경로입니다.
다음 명령을 실행하여 구성을 적용합니다.
$ oc apply -f SpiffeCSIDriver.yaml
검증
다음 명령을 실행하여 SPIFFE CSI 드라이버의 데몬 세트가 준비되고 사용 가능한지 확인합니다.
$ oc get daemonset -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager출력 예
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE spire-spiffe-csi-driver 3 3 3 3 3 <none> 114s다음 명령을 실행하여 SPIFFE CSI(Container Storage Interface) 드라이버 Pod의 상태가 실행 중인지 확인합니다.
$ oc get po -l app.kubernetes.io/name=spiffe-csi-driver -n zero-trust-workload-identity-manager출력 예
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
10.4.4. SPIRE OpenID Connect 검색 공급자 배포 링크 복사링크가 클립보드에 복사되었습니다!
OIDCDiscoveryProvider CR(사용자 정의 리소스)을 구성하고 OIDC(OpenID Connect) 검색 공급자를 구성하고 구성할 수 있습니다.
사전 요구 사항
-
cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다. - 클러스터에 Zero Trust Workload Identity Manager를 설치했습니다.
프로세스
SpireOIDCDiscoveryProviderCR을 생성합니다.SpireOIDCDiscoveryProviderCR을 정의하는 YAML 파일을 생성합니다(예:SpireOIDCDiscoveryProvider.yaml).SpireOIDCDiscoveryProvider.yaml의 예apiVersion: operator.openshift.io/v1alpha1 kind: SpireOIDCDiscoveryProvider metadata: name: cluster spec: trustDomain: <trust_domain>1 agentSocketName: 'spire-agent.sock'2 jwtIssuer: <jwt_issuer_domain>3 다음 명령을 실행하여 구성을 적용합니다.
$ oc apply -f SpireOIDCDiscoveryProvider.yaml
검증
다음 명령을 실행하여 OIDC 검색 공급자의 배포가 준비되고 사용 가능한지 확인합니다.
$ oc get deployment -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager출력 예
NAME READY UP-TO-DATE AVAILABLE AGE spire-spiffe-oidc-discovery-provider 1/1 1 1 2m58s다음 명령을 실행하여 OIDC 검색 공급자 Pod의 상태가
Running인지 확인합니다.$ oc get po -l app.kubernetes.io/name=spiffe-oidc-discovery-provider -n zero-trust-workload-identity-manager출력 예
NAME READY STATUS RESTARTS AGE spire-spiffe-oidc-discovery-provider-64586d599f-lcc94 2/2 Running 0 7m15s