8.11. AWS에서 Red Hat OpenShift용 cert-manager Operator 인증
AWS 클러스터에서 Red Hat OpenShift용 cert-manager Operator에 대한 클라우드 인증 정보를 구성할 수 있습니다. 클라우드 인증 정보는 Cloud Credential Operator에 의해 생성됩니다.
8.11.1. AWS에서 Red Hat OpenShift용 cert-manager Operator에 대한 클라우드 인증 정보 구성
AWS 클러스터에서 Red Hat OpenShift용 cert-manager Operator에 대한 클라우드 인증 정보를 구성하려면 CredentialsRequest
오브젝트를 생성하고 Cloud Credential Operator를 허용하여 클라우드 인증 정보 시크릿을 생성해야 합니다.
사전 요구 사항
- cert-manager Operator for Red Hat OpenShift 1.11.1 이상을 설치했습니다.
- mint 또는 passthrough 모드에서 작동하도록 Cloud Credential Operator를 구성했습니다.
프로세스
다음과 같이
CredentialsRequest
리소스 YAML 파일을 생성합니다(예:sample-credential-request.yaml
).apiVersion: cloudcredential.openshift.io/v1 kind: CredentialsRequest metadata: name: cert-manager namespace: openshift-cloud-credential-operator spec: providerSpec: apiVersion: cloudcredential.openshift.io/v1 kind: AWSProviderSpec statementEntries: - action: - "route53:GetChange" effect: Allow resource: "arn:aws:route53:::change/*" - action: - "route53:ChangeResourceRecordSets" - "route53:ListResourceRecordSets" effect: Allow resource: "arn:aws:route53:::hostedzone/*" - action: - "route53:ListHostedZonesByName" effect: Allow resource: "*" secretRef: name: aws-creds namespace: cert-manager serviceAccountNames: - cert-manager
다음 명령을 실행하여
CredentialsRequest
리소스를 생성합니다.$ oc create -f sample-credential-request.yaml
다음 명령을 실행하여 cert-manager Operator for Red Hat OpenShift의 서브스크립션 오브젝트를 업데이트합니다.
$ 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"}]}}}'
검증
다음 명령을 실행하여 재배포된 cert-manager 컨트롤러 Pod의 이름을 가져옵니다.
$ oc get pods -l app.kubernetes.io/name=cert-manager -n cert-manager
출력 예
NAME READY STATUS RESTARTS AGE cert-manager-bd7fbb9fc-wvbbt 1/1 Running 0 15m39s
다음 명령을 실행하여 cert-manager 컨트롤러 Pod가
mountPath
에 지정된 경로에 마운트된 AWS 인증 정보 볼륨으로 업데이트되었는지 확인합니다.$ oc get -n cert-manager pod/<cert-manager_controller_pod_name> -o yaml
출력 예
... spec: containers: - args: ... - mountPath: /.aws name: cloud-credentials ... volumes: ... - name: cloud-credentials secret: ... secretName: aws-creds