9.6. Red Hat OpenShift용 cert-manager 운영자 인증
클라우드 인증 정보를 구성하여 클러스터에서 cert-manager Operator for Red Hat OpenShift를 인증할 수 있습니다.
9.6.1. AWS에서 인증 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Red Hat OpenShift용 cert-manager Operator 버전 1.11.1 이상을 설치했습니다.
 - 클라우드 자격 증명 운영자가 민트 모드 또는 패스스루 모드에서 작동하도록 구성했습니다.
 
프로세스
다음과 같이
sample-credential-request.yaml과 같은CredentialsRequest리소스 YAML 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
CredentialsRequest리소스를 만듭니다.oc create -f sample-credential-request.yaml
$ oc create -f sample-credential-request.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Red Hat OpenShift용 cert-manager Operator에 대한 구독 객체를 업데이트합니다.
oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"aws-creds"}]}}}'$ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"aws-creds"}]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
검증
다음 명령을 실행하여 재배포된 cert-manager 컨트롤러 포드의 이름을 가져옵니다.
oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
mountPath에 지정된 경로 아래에 마운트된 AWS 자격 증명 볼륨으로 cert-manager 컨트롤러 포드가 업데이트되었는지 확인합니다.oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
9.6.2. AWS 보안 토큰 서비스를 통한 인증 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- 
							
ccoctl바이너리를 추출하고 준비했습니다. - 수동 모드에서 Cloud Credential Operator를 사용하여 AWS STS로 OpenShift Container Platform 클러스터를 구성했습니다.
 
프로세스
다음 명령을 실행하여
CredentialsRequest리소스 YAML 파일을 저장할 디렉토리를 만듭니다.mkdir credentials-request
$ mkdir credentials-requestCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 yaml을 적용하여
credentials-request디렉터리 아래에sample-credential-request.yaml과 같은CredentialsRequest리소스 YAML 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
ccoctl도구를 사용하여CredentialsRequest객체를 처리합니다.ccoctl aws create-iam-roles \ --name <user_defined_name> --region=<aws_region> \ --credentials-requests-dir=<path_to_credrequests_dir> \ --identity-provider-arn <oidc_provider_arn> --output-dir=<path_to_output_dir>$ ccoctl aws create-iam-roles \ --name <user_defined_name> --region=<aws_region> \ --credentials-requests-dir=<path_to_credrequests_dir> \ --identity-provider-arn <oidc_provider_arn> --output-dir=<path_to_output_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
2023/05/15 18:10:34 Role arn:aws:iam::XXXXXXXXXXXX:role/<user_defined_name>-cert-manager-aws-creds created 2023/05/15 18:10:34 Saved credentials configuration to: <path_to_output_dir>/manifests/cert-manager-aws-creds-credentials.yaml 2023/05/15 18:10:35 Updated Role policy for Role <user_defined_name>-cert-manager-aws-creds
2023/05/15 18:10:34 Role arn:aws:iam::XXXXXXXXXXXX:role/<user_defined_name>-cert-manager-aws-creds created 2023/05/15 18:10:34 Saved credentials configuration to: <path_to_output_dir>/manifests/cert-manager-aws-creds-credentials.yaml 2023/05/15 18:10:35 Updated Role policy for Role <user_defined_name>-cert-manager-aws-credsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 단계에서 사용할 수 있도록 출력에서
<aws_role_arn>을복사합니다. For example,"arn:aws:iam::XXXXXXXXXXXX:role/<user_defined_name>-cert-manager-aws-creds"다음 명령을 실행하여 서비스 계정에
eks.amazonaws.com/role-arn="<aws_role_arn>"주석을 추가합니다.oc -n cert-manager annotate serviceaccount cert-manager eks.amazonaws.com/role-arn="<aws_role_arn>"
$ oc -n cert-manager annotate serviceaccount cert-manager eks.amazonaws.com/role-arn="<aws_role_arn>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 새로운 Pod를 생성하려면 다음 명령을 실행하여 기존 cert-manager 컨트롤러 Pod를 삭제합니다.
oc delete pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc delete pods -l app.kubernetes.io/name=cert-manager -n cert-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow AWS 인증 정보는 1분 이내에 새 cert-manager 컨트롤러 Pod에 적용됩니다.
검증
다음 명령을 실행하여 업데이트된 cert-manager 컨트롤러 포드의 이름을 가져옵니다.
oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 39sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 AWS 자격 증명이 업데이트되었는지 확인하세요.
oc set env -n cert-manager po/<cert_manager_controller_pod_name> --list
$ oc set env -n cert-manager po/<cert_manager_controller_pod_name> --listCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
pods/cert-manager-57f9555c54-vbcpg, container cert-manager-controller POD_NAMESPACE from field path metadata.namespace
# pods/cert-manager-57f9555c54-vbcpg, container cert-manager-controller # POD_NAMESPACE from field path metadata.namespace AWS_ROLE_ARN=XXXXXXXXXXXX AWS_WEB_IDENTITY_TOKEN_FILE=/var/run/secrets/eks.amazonaws.com/serviceaccount/tokenCopy to Clipboard Copied! Toggle word wrap Toggle overflow 
9.6.3. GCP에서 인증 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- Red Hat OpenShift용 cert-manager Operator 버전 1.11.1 이상을 설치했습니다.
 - 클라우드 자격 증명 운영자가 민트 모드 또는 패스스루 모드에서 작동하도록 구성했습니다.
 
프로세스
다음 yaml을 적용하여
sample-credential-request.yaml과 같은CredentialsRequest리소스 YAML 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고dns.admin역할은 Google Cloud DNS 리소스를 관리하기 위한 서비스 계정에 관리자 권한을 제공합니다. cert-manager가 최소한의 권한을 가진 서비스 계정으로 실행되도록 하려면 다음 권한이 있는 사용자 지정 역할을 만들 수 있습니다.- 
										
dns.resourceRecordSets.* - 
										
dns.changes.* - 
										
dns.managedZones.list 
- 
										
 다음 명령을 실행하여
CredentialsRequest리소스를 만듭니다.oc create -f sample-credential-request.yaml
$ oc create -f sample-credential-request.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Red Hat OpenShift용 cert-manager Operator에 대한 구독 객체를 업데이트합니다.
oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"gcp-credentials"}]}}}'$ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"gcp-credentials"}]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
검증
다음 명령을 실행하여 재배포된 cert-manager 컨트롤러 포드의 이름을 가져옵니다.
oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
mountPath에 지정된 경로 아래에 마운트된 GCP 자격 증명 볼륨으로 cert-manager 컨트롤러 포드가 업데이트되었는지 확인합니다.oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
9.6.4. GCP 워크로드 ID로 인증 링크 복사링크가 클립보드에 복사되었습니다!
사전 요구 사항
- 
							
ccoctl바이너리를 추출하고 준비했습니다. - Red Hat OpenShift용 cert-manager Operator 버전 1.11.1 이상을 설치했습니다.
 - 수동 모드에서 Cloud Credential Operator를 사용하여 GCP 워크로드 ID로 OpenShift Container Platform 클러스터를 구성했습니다.
 
프로세스
다음 명령을 실행하여
CredentialsRequest리소스 YAML 파일을 저장할 디렉토리를 만듭니다.mkdir credentials-request
$ mkdir credentials-requestCopy to Clipboard Copied! Toggle word wrap Toggle overflow credentials-request디렉토리에서 다음CredentialsRequest매니페스트를 포함하는 YAML 파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고dns.admin역할은 Google Cloud DNS 리소스를 관리하기 위한 서비스 계정에 관리자 권한을 제공합니다. cert-manager가 최소한의 권한을 가진 서비스 계정으로 실행되도록 하려면 다음 권한이 있는 사용자 지정 역할을 만들 수 있습니다.- 
										
dns.resourceRecordSets.* - 
										
dns.changes.* - 
										
dns.managedZones.list 
- 
										
 다음 명령을 실행하여
ccoctl도구를 사용하여CredentialsRequest객체를 처리합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 명령 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 클러스터의 매니페스트 디렉토리에 생성된 비밀을 적용합니다.
ls <path_to_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}$ ls <path_to_output_dir>/manifests/*-credentials.yaml | xargs -I{} oc apply -f {}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여 Red Hat OpenShift용 cert-manager Operator에 대한 구독 객체를 업데이트합니다.
oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"gcp-credentials"}]}}}'$ oc -n cert-manager-operator patch subscription openshift-cert-manager-operator --type=merge -p '{"spec":{"config":{"env":[{"name":"CLOUD_CREDENTIALS_SECRET_NAME","value":"gcp-credentials"}]}}}'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 
검증
다음 명령을 실행하여 재배포된 cert-manager 컨트롤러 포드의 이름을 가져옵니다.
oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-managerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39sCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 실행하여
mountPath에 지정된 경로 아래에 마운트된 GCP 워크로드 ID 자격 증명 볼륨으로 cert-manager 컨트롤러 포드가 업데이트되었는지 확인합니다.oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow