19장. 클라우드 공급자 인증 정보 관리


19.1. Cloud Credential Operator 정보

CCO(Cloud Credential Operator)는 클라우드 공급자 인증 정보를 CRD(사용자 지정 리소스 정의)로 관리합니다. CCO가 CredentialsRequest 사용자 정의 리소스(CR)에 동기화되어 OpenShift Container Platform 구성 요소가 클러스터를 실행하는 데 필요한 특정 권한으로 클라우드 공급자 인증 정보를 요청할 수 있습니다.

install-config.yaml 파일에서 credentialsMode 매개변수에 다양한 값을 설정하면 CCO를 여러 모드에서 작동하도록 구성할 수 있습니다. 모드가 지정되지 않거나 credentialsMode 매개변수가 빈 문자열("")로 설정되면 CCO는 기본 모드에서 작동합니다.

19.1.1. 모드

install-config.yaml 파일에서 credentialsMode 매개변수의 다른 값을 설정하면 mint, passthrough 또는 manual 모드에서 CCO를 작동하도록 구성할 수 있습니다. 이러한 옵션은 CCO에서 클라우드 인증 정보를 사용하여 클러스터의 CredentialsRequest CR을 처리하는 방법에 투명성과 유연성을 제공하고 조직의 보안 요구 사항에 맞게 CCO를 구성할 수 있습니다. 모든 클라우드 공급자에서 모든 CCO 모드가 지원되는 것은 아닙니다.

  • Mint: Mint 모드에서 CCO는 제공된 관리자 수준 클라우드 인증 정보를 사용하여 필요한 특정 권한만으로 클러스터의 구성 요소에 대한 새 인증 정보를 생성합니다.
  • passthrough: passthrough 모드에서 CCO는 제공된 클라우드 인증 정보를 클라우드 인증 정보를 요청하는 구성 요소에 전달합니다.
  • 구성 요소에 대한 장기 인증 정보가 있는 수동 모드: 수동 모드에서 CCO 대신 장기 클라우드 인증 정보를 관리할 수 있습니다.
  • 구성 요소에 대한 단기 인증 정보가 있는 수동 모드: 일부 공급자의 경우 설치 중에 CCO 유틸리티(ccoctl)를 사용하여 개별 구성 요소에 대한 단기 인증 정보를 구현할 수 있습니다. 이러한 인증 정보는 OpenShift Container Platform 클러스터 외부에서 생성 및 관리됩니다.
표 19.1. CCO 모드 지원 매트릭스
클라우드 공급자MintPassthrough장기 인증 정보가 있는 수동단기 인증 정보가 있는 수동

AWS(Amazon Web Services)

X

X

X

X

Global Microsoft Azure

 

X

X

X

Microsoft Azure Stack Hub

  

X

 

GCP(Google Cloud Platform)

X

X

X

X

IBM Cloud®

  

X [1]

 

Nutanix

  

X [1]

 

Red Hat OpenStack Platform (RHOSP)

 

X

  

VMware vSphere

 

X

  
  1. 이 플랫폼은 설치 중에 ccoctl 유틸리티를 사용하여 장기 인증 정보를 구성합니다.

19.1.2. Cloud Credential Operator 모드 확인

여러 모드에서 CCO 사용을 지원하는 플랫폼의 경우 웹 콘솔 또는 CLI를 사용하여 CCO가 사용하도록 구성된 모드를 결정할 수 있습니다.

그림 19.1. CCO 구성 확인

클러스터에 대해 구성된 CCO 인증 정보 모드를 결정하는 방법을 보여주는 의사 결정 트리입니다.

19.1.2.1. 웹 콘솔을 사용하여 Cloud Credential Operator 모드 확인

웹 콘솔을 사용하여 CCO(Cloud Credential Operator)가 사용하도록 구성된 모드를 확인할 수 있습니다.

참고

AWS(Amazon Web Services), 글로벌 Microsoft Azure 및 GCP(Google Cloud Platform) 클러스터만 여러 CCO 모드를 지원합니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있는 OpenShift Container Platform 계정에 액세스할 수 있습니다.

프로세스

  1. cluster-admin 역할의 사용자로 OpenShift Container Platform 웹 콘솔에 로그인합니다.
  2. 관리 클러스터 설정으로 이동합니다.
  3. 클러스터 설정 페이지에서 구성 탭을 선택합니다.
  4. 구성 리소스에서 클라우드 인을 선택합니다.
  5. 클라우드 인증 세부 정보 페이지에서 YAML 탭을 선택합니다.
  6. YAML 블록에서 spec.credentialsMode의 값을 확인합니다. 다음 값이 모든 플랫폼에서 지원되지는 않지만 모두 지원되는 것은 아닙니다.

    • '': CCO가 기본 모드에서 작동합니다. 이 구성에서 CCO는 설치 중에 제공된 인증 정보에 따라 Mint 또는 passthrough 모드에서 작동합니다.
    • Mint: CCO가 Mint 모드에서 작동합니다.
    • passthrough: CCO가 passthrough 모드에서 작동합니다.
    • Manual: CCO가 수동 모드에서 작동합니다.
    중요

    '', Mint 또는 Manualspec.credentialsMode 가 있는 AWS, GCP 또는 글로벌 Microsoft Azure 클러스터의 특정 구성을 확인하려면 추가 조사를 수행해야 합니다.

    AWS 및 GCP 클러스터는 루트 시크릿이 삭제된 상태에서 Mint 모드 사용을 지원합니다.

    수동 모드를 사용하는 AWS, GCP 또는 글로벌 Microsoft Azure 클러스터는 AWS STS, GCP Workload Identity 또는 Microsoft Entra Workload ID를 사용하여 클러스터 외부에서 클라우드 인증 정보를 생성하고 관리하도록 구성할 수 있습니다. 클러스터 Authentication 오브젝트를 검사하여 클러스터에서 이 전략을 사용하는지 확인할 수 있습니다.

  7. 기본('')만 사용하는 AWS 또는 GCP 클러스터: 클러스터가 Mint 또는 passthrough 모드에서 작동하는지 확인하려면 클러스터 루트 시크릿의 주석을 검사합니다.

    1. 워크로드 시크릿 으로 이동하여 클라우드 공급자의 루트 시크릿을 찾습니다.

      참고

      프로젝트 드롭다운이 모든 프로젝트로 설정되어 있는지 확인합니다.

      플랫폼시크릿 이름

      AWS

      aws-creds

      GCP

      gcp-credentials

    2. 클러스터가 사용 중인 CCO 모드를 보려면 주석 에서 1 annotation을 클릭하고 값 필드를 확인합니다. 다음 값을 사용할 수 있습니다.

      • Mint: CCO가 Mint 모드에서 작동합니다.
      • passthrough: CCO가 passthrough 모드에서 작동합니다.

      클러스터에서 Mint 모드를 사용하는 경우 루트 시크릿 없이 클러스터가 작동하는지 확인할 수도 있습니다.

  8. AWS 또는 GCP 클러스터만 Mint 모드를 사용하는: 클러스터가 루트 시크릿없이 작동하는지 확인하려면 워크로드 시크릿으로 이동하여 클라우드 공급자의 루트 시크릿을 찾습니다.

    참고

    프로젝트 드롭다운이 모든 프로젝트로 설정되어 있는지 확인합니다.

    플랫폼시크릿 이름

    AWS

    aws-creds

    GCP

    gcp-credentials

    • 이러한 값 중 하나가 표시되면 클러스터에서 root 시크릿이 있는 mint 또는 passthrough 모드를 사용하는 것입니다.
    • 이러한 값이 표시되지 않으면 클러스터는 루트 시크릿이 제거된 Mint 모드에서 CCO를 사용하는 것입니다.
  9. 수동 모드를 사용하는 AWS, GCP 또는 글로벌 Microsoft Azure 클러스터: 클러스터 외부에서 클라우드 인증 정보를 생성하고 관리하도록 클러스터가 구성되었는지 확인하려면 클러스터 인증 오브젝트 YAML 값을 확인해야 합니다.

    1. 관리 클러스터 설정으로 이동합니다.
    2. 클러스터 설정 페이지에서 구성 탭을 선택합니다.
    3. 구성 리소스에서 인증을 선택합니다.
    4. 인증 세부 정보 페이지에서 YAML 탭을 선택합니다.
    5. YAML 블록에서 .spec.serviceAccountIssuer 매개변수 값을 확인합니다.

      • 클라우드 공급자와 연결된 URL이 포함된 값은 CCO가 구성 요소에 대한 단기 인증 정보가 있는 수동 모드를 사용하고 있음을 나타냅니다. 이러한 클러스터는 클러스터 외부에서 클라우드 인증 정보를 생성하고 관리하는 데 ccoctl 유틸리티를 사용하여 구성됩니다.
      • 빈 값('')은 클러스터가 수동 모드에서 CCO를 사용하고 있지만 ccoctl 유틸리티를 사용하여 구성되지 않았음을 나타냅니다.

19.1.2.2. CLI를 사용하여 Cloud Credential Operator 모드 확인

CLI를 사용하여 CCO(Cloud Credential Operator)가 사용하도록 구성된 모드를 확인할 수 있습니다.

참고

AWS(Amazon Web Services), 글로벌 Microsoft Azure 및 GCP(Google Cloud Platform) 클러스터만 여러 CCO 모드를 지원합니다.

사전 요구 사항

  • 클러스터 관리자 권한이 있는 OpenShift Container Platform 계정에 액세스할 수 있습니다.
  • OpenShift CLI(oc)가 설치되어 있습니다.

프로세스

  1. cluster-admin 역할의 사용자로 클러스터에서 oc 에 로그인합니다.
  2. CCO가 사용하도록 구성된 모드를 결정하려면 다음 명령을 입력합니다.

    $ oc get cloudcredentials cluster \
      -o=jsonpath={.spec.credentialsMode}

    다음 출력 값을 사용할 수 있지만 모든 플랫폼에서 모두 지원되는 것은 아닙니다.

    • '': CCO가 기본 모드에서 작동합니다. 이 구성에서 CCO는 설치 중에 제공된 인증 정보에 따라 Mint 또는 passthrough 모드에서 작동합니다.
    • Mint: CCO가 Mint 모드에서 작동합니다.
    • passthrough: CCO가 passthrough 모드에서 작동합니다.
    • Manual: CCO가 수동 모드에서 작동합니다.
    중요

    '', Mint 또는 Manualspec.credentialsMode 가 있는 AWS, GCP 또는 글로벌 Microsoft Azure 클러스터의 특정 구성을 확인하려면 추가 조사를 수행해야 합니다.

    AWS 및 GCP 클러스터는 루트 시크릿이 삭제된 상태에서 Mint 모드 사용을 지원합니다.

    수동 모드를 사용하는 AWS, GCP 또는 글로벌 Microsoft Azure 클러스터는 AWS STS, GCP Workload Identity 또는 Microsoft Entra Workload ID를 사용하여 클러스터 외부에서 클라우드 인증 정보를 생성하고 관리하도록 구성할 수 있습니다. 클러스터 Authentication 오브젝트를 검사하여 클러스터에서 이 전략을 사용하는지 확인할 수 있습니다.

  3. 기본 ('')만 사용하는 AWS 또는 GCP 클러스터: 클러스터가 Mint 또는 passthrough 모드에서 작동하는지 확인하려면 다음 명령을 실행합니다.

    $ oc get secret <secret_name> \
      -n kube-system \
      -o jsonpath \
      --template '{ .metadata.annotations }'

    여기서 <secret_name>은 AWS의 aws-creds 이거나 GCP의 gcp-credentials 입니다.

    이 명령은 클러스터 루트 시크릿 오브젝트에 .metadata.annotations 매개변수 값을 표시합니다. 다음 출력 값을 사용할 수 있습니다.

    • Mint: CCO가 Mint 모드에서 작동합니다.
    • passthrough: CCO가 passthrough 모드에서 작동합니다.

    클러스터에서 Mint 모드를 사용하는 경우 루트 시크릿 없이 클러스터가 작동하는지 확인할 수도 있습니다.

  4. AWS 또는 GCP 클러스터만 Mint 모드를 사용하는: 클러스터가 루트 시크릿없이 작동하는지 확인하려면 다음 명령을 실행합니다.

    $ oc get secret <secret_name> \
      -n=kube-system

    여기서 <secret_name>은 AWS의 aws-creds 이거나 GCP의 gcp-credentials 입니다.

    루트 시크릿이 있으면 이 명령의 출력에서 보안에 대한 정보를 반환합니다. root 보안이 클러스터에 존재하지 않음을 나타내는 오류가 있습니다.

  5. 수동 모드를 사용하는 AWS, GCP 또는 글로벌 Microsoft Azure 클러스터: 클러스터 외부에서 클라우드 인증 정보를 생성하고 관리하도록 클러스터가 구성되었는지 확인하려면 다음 명령을 실행합니다.

    $ oc get authentication cluster \
      -o jsonpath \
      --template='{ .spec.serviceAccountIssuer }'

    이 명령은 클러스터 Authentication 오브젝트에서 .spec.serviceAccountIssuer 매개변수 값을 표시합니다.

    • 클라우드 공급자와 연결된 URL의 출력은 CCO가 구성 요소에 대한 단기 인증 정보가 있는 수동 모드를 사용하고 있음을 나타냅니다. 이러한 클러스터는 클러스터 외부에서 클라우드 인증 정보를 생성하고 관리하는 데 ccoctl 유틸리티를 사용하여 구성됩니다.
    • 빈 출력은 클러스터가 수동 모드에서 CCO를 사용하고 있지만 ccoctl 유틸리티를 사용하여 구성되지 않았음을 나타냅니다.

19.1.3. 기본 동작

여러 모드가 지원되는 플랫폼의 경우(AWS, Azure 및 GCP) CCO가 기본 모드에서 실행되면 CredentialsRequest CR을 충분히 처리할 수 있는 모드를 결정하도록 제공된 인증 정보를 동적으로 확인합니다.

기본적으로 CCO는 인증 정보가 기본 작동 모드인 mint 모드에 충분한지 결정하고 해당 인증 정보를 사용하여 클러스터의 구성 요소에 적절한 인증 정보를 생성합니다. 인증 정보가 Mint 모드에 충분하지 않으면 passthrough 모드에 충분한지 여부를 결정합니다. 인증 정보가 passthrough 모드에 충분하지 않으면 CCO에서 CredentialsRequest CR을 적절하게 처리할 수 없습니다.

설치 중에 제공된 인증 정보가 충분하지 않다고 판단되면 설치에 실패합니다. AWS의 경우 설치 프로그램이 프로세스 초기에 실패하고 필요한 권한이 누락된 것을 나타냅니다. 다른 공급자는 오류가 발생할 때까지 오류 발생 원인에 대한 구체적인 정보를 제공하지 않을 수 있습니다.

성공적인 설치 후 인증 정보가 변경되고 CCO가 새 인증 정보가 충분하지 않다고 판단하면 CCO에서 새 CredentialsRequest CR에 조건을 배치하여 충분하지 않은 인증 정보로 인해 이를 처리할 수 없음을 나타냅니다.

충분하지 않은 인증 정보 문제를 해결하려면 충분한 권한이 있는 인증 정보를 제공하십시오. 설치 중에 오류가 발생한 경우 다시 설치해보십시오. 새로운 CredentialsRequest CR 문제의 경우 CCO가 CR을 다시 처리할 때까지 기다립니다. 또는 클라우드 공급자에 지원되는 다른 CCO 모드를 사용하도록 클러스터를 구성할 수 있습니다.

19.1.4. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.