Translated message

A translation of this page exists in English.

Red Hat Container 레지스트리 인증

업데이트됨 -

Table of Contents

Red Hat은 Registry.access.redhat.com(인증 필요 없음)과 Registry.redhat.io(인증 필요)의 두 위치에서 컨테이너 이미지를 배포합니다. 타사 공급업체의 컨테이너 이미지는 registry.connect.redhat.com에서 제공됩니다. 이 문서에서는 다음을 수행하는 방법을 설명합니다.

  • 인증이 필요하지 않은 registry.access.redhat.com을 사용하세요.
  • registry.redhat.io에서 인증이 작동하는 방식에 대해 알아보세요.
  • 공유 시스템에서 사용할 레지스트리 서비스 계정을 만듭니다.

Red Hat 레지스트리

Red Hat은 세 가지 컨테이너 레지스트리를 통해 컨테이너 이미지를 배포합니다.

레지스트리 콘텐츠 지원
인증되지 않은 액세스
지원
Red Hat 로그인
지원
등록 토큰
registry.access.redhat.com Red Hat 제품 제공됨 제공되지 않음 제공되지 않음
registry.redhat.io Red Hat 제품 제공되지 않음 제공됨 제공됨
registry.connect.redhat.com 타사 제품 제공되지 않음 제공됨 제공됨

registry.access.redhat.com과 registry.redhat.io는 본질적으로 동일한 컨테이너 이미지를 보유하지만 일부 이미지에는 활성 Red Hat 계정이 필요하며 registry.redhat.io에서만 사용할 수 있습니다.

Red Hat 로그인 받기

registry.redhat.io 레지스트리를 사용하려면 Red Hat 로그인이 필요합니다. Red Hat 제품에 대한 사용 권한이 있는 고객이라면 이미 계정이 있습니다. 이는 Red Hat 고객 포털(access.redhat.com)에 로그인하고 Red Hat 서브스크립션을 관리하는 데 사용하는 것과 동일한 유형의 계정입니다.

Red Hat 계정이 없는 경우 다음 중 하나에 가입하여 무료 Red Hat 계정을 얻을 수 있습니다.

약관에 동의하고 Red Hat 계정을 얻으면 해당 계정을 사용하여 새로운 Red Hat 레지스트리에 로그인하고 이미지를 얻을 수 있습니다. yum을 사용하여 이미지를 빌드하거나 업데이트하는 동안 RPM 패키지를 추가하거나 업데이트하려면 Red Hat의 권한이 필요하다는 점을 명심하세요.

인증 사용

인증된 레지스트리에서 콘텐츠를 검색하려면 고객 포털, Red Hat 개발자 또는 레지스트리 서비스 계정 자격 증명을 사용하여 레지스트리에 로그인해야 합니다.

참고: Red Hat OpenShift Container Platform 클러스터에서 이미지를 가져오려면 현재 pull secret이 유효한지 확인해야 합니다. pull secret의 자격 증명이 유효한지 확인하려면 OCP 4 노드 내에서 수동 Podman 풀 실패를 참조하고, 필요한 경우 글로벌 pull secret을 변경하세요.

Registry.redhat.io 레지스트리에 로그인하려면 podman login, skopeo loginbuildah login 명령을 사용할 수 있습니다. 이 문서 전체에서 사용된 docker 명령 예제를 podman 명령으로 바꿀 수 있습니다. OpenShift, Satellite 또는 기타 공유 환경에서는 인증을 위해 서비스 계정을 사용해야 합니다.

Podman을 사용하여 registry.redhat.io에 인증하려면:



\# podman login registry.redhat.io Username: myrhusername Password: ***********

Skopeo를 사용하여 registry.redhat.io에 인증하려면:



\# skopeo login registry.redhat.io Username: myrhusername Password: ***********

docker login 명령을 사용하여 registry.redhat.io에 인증하려면:



\# docker login https://registry.redhat.io Username: myrhusername Password: ***********

다음과 같이 registry.redhat.io 레지스트리에서 이미지를 가져올 수 있습니다:

Skopeo 명령 사용:

skopeo copy docker://registry.redhat.io/rhel8/pcp containers-storage:registry.redhat.io/rhel8/pcp 

Podman 명령 사용:



\# podman pull registry.redhat.io/rhel8/rsyslog Username: myrhusername Password: xxxxxxxxxxx

레지스트리에 로그인하면 자격 증명이 ${XDG_RUNTIME_DIR}/containers/auth.json 파일에 저장됩니다. 해당 자격 증명은 다음에 해당 레지스트리에서 가져올 때 자동으로 사용됩니다. 다음은 해당 파일의 예입니다.

   {
           "auths": {
                   "https://registry.redhat.io": {
                           "auth": "c2xmams6c2RmbGtq"
                   }
           }
   }

이러한 자격 증명을 저장하는 다른 방법은 docker 로그인 페이지의 config.json 설명을 참조하세요.

OpenShift 3.x 노드의 경우 추가 단계가 있습니다. 로그인한 후 ~/.docker/config.json/var/lib/origin/.docker/config.json 에 복사하고 노드를 다시 시작해야 합니다.



\# cp ~/.docker/config.json /var/lib/origin/.docker/config.json; systemctl restart atomic-openshift-node

공유 환경을 위한 레지스트리 서비스 계정

OpenShift와 같은 공유 환경에서 Registry.redhat.io의 컨테이너 이미지를 사용하려면 관리자가 개인의 고객 포털 자격 증명 대신 인증 토큰이라고도 하는 레지스트리 서비스 계정을 사용하는 것이 좋습니다.

서비스 계정은 고객 포털 조직에 제공되는 메커니즘으로, Registry.redhat.io에서 콘텐츠를 인증하고 검색하는 데만 사용됩니다. 공유 시스템에서 고객 포털 자격 증명을 사용할 필요가 없도록 서비스 계정을 사용하는 것이 좋습니다. 고객 포털 계정과 달리 레지스트리 서비스 계정은 필수 비밀번호 재설정과 같이 고객 포털 계정에 적용되는 일부 보안 제어에 탄력적입니다. 일단 생성된 레지스트리 서비스 계정은 만료되지 않으며 제거될 때까지 활성화됩니다.

서비스 계정 관리는 레지스트리 서비스 계정 관리 애플리케이션을 통해 가능합니다. 생성되는 서비스 계정 수와 시스템에서 서비스 계정이 사용되는 방식을 자유롭게 결정할 수 있으며, 지침에 따라 공유 시스템(예: OpenShift Container Platform 클러스터)당 하나의 서비스 계정을 사용하도록 선택할 수 있습니다.

레지스트리 서비스 계정 관리

서비스 계정 관리 애플리케이션에는 토큰 관리를 위한 분할 인증에 대한 간단한 접근 방식이 있습니다. 서비스 계정을 생성, 수정 또는 제거하는 기능은 고객 포털 로그인에 조직 관리자 역할이 할당되어 있는지 여부에 따라 정의됩니다.

고객 포털 조직 관리자는 다음을 수행할 수 있습니다.

  • 조직에 대해 생성된 모든 레지스트리 서비스 계정을 봅니다.
  • 레지스트리 서비스 계정을 만듭니다.
  • 레지스트리 서비스 계정을 수정하거나 제거합니다.

고객 포털 사용자(조직 관리자가 아님)는 다음을 수행할 수 있습니다.

  • 조직의 모든 레지스트리 서비스 계정을 봅니다.
  • 레지스트리 서비스 계정을 만듭니다.
  • 자신이 만든 레지스트리 서비스 계정만 수정하거나 제거하십시오.

어떤 사용자가 서비스 계정을 생성하는지에 관계없이 동일한 조직 내의 다른 고객 포털 사용자가 해당 계정을 볼 수 있습니다. 서비스 계정 및 관련 자격 증명을 조직 내 다른 사람이 볼 수 없도록 숨기는 기능은 없습니다.

레지스트리 서비스 계정 생성

레지스트리 서비스 계정 관리 애플리케이션 으로 이동하여 필요한 경우 로그인합니다.

  1. 레지스트리 서비스 계정 페이지에서 새 서비스 계정 버튼을 클릭합니다.
  2. 서비스 계정의 이름을 제공합니다. 고정된 임의 문자열이 앞에 추가됩니다.
    • 설명을 입력하세요.
    • 생성을 클릭합니다.
  3. 서비스 계정으로 다시 이동합니다.
  4. 생성한 서비스 계정을 클릭합니다.
    • 앞에 추가된 문자열(예: XXXXXXX|username )을 포함하여 사용자 이름을 기록해 두십시오. 이것은 Registry.redhat.io에 로그인하는 데 사용해야 하는 사용자 이름입니다.
    • 비밀번호를 기록해 두세요. 이것은 registry.redhat.io에 로그인하는 데 사용되는 비밀번호입니다.

토큰 정보 페이지에는 다양한 시나리오에서 인증 토큰을 사용하는 방법에 대한 지침을 제공하는 탭이 있습니다. 예를 들어 Docker 로그인 탭은 Docker CLI에서 토큰을 사용하는 방법을 보여줍니다.

인증 토큰 수정

서비스 계정 생성과 마찬가지로 관리 애플리케이션에서 제공하는 기능의 일부로 계정을 수정하거나 삭제할 수 있습니다. 이는 각 인증 토큰 오른쪽에 있는 팝업 메뉴를 사용하여 레지스트리 서비스 계정 페이지에서 각각 호출할 수 있습니다. 각 기능에 대한 설명은 다음과 같습니다.

  • 토큰 다시 생성: 승인된 사용자가 서비스 계정과 관련된 비밀번호를 재설정할 수 있도록 허용합니다. 서비스 계정의 사용자 이름은 변경되지 않습니다.
  • 설명 업데이트: 승인된 사용자가 서비스 계정에 대한 설명을 업데이트할 수 있습니다.
  • 계정 삭제: 승인된 사용자가 서비스 계정을 제거할 수 있도록 허용합니다.

경고: 서비스 계정의 재생성 또는 제거는 토큰을 사용하여 registry.redhat.io에서 콘텐츠를 인증하고 검색하는 모든 시스템에 영향을 미칩니다.

Pod가 다른 보안 레지스트리의 이미지를 참조하도록 허용

.dockercfg 파일(또는 최신 Docker 클라이언트의 경우 $HOME/.docker/config.json )은 이전에 보안되거나 안전하지 않은 레지스트리에 로그인한 경우 정보를 저장하는 Docker 자격 증명 파일입니다.

OpenShift Container Platform의 내부 레지스트리가 아닌 다른 위치에서 보안 컨테이너 이미지를 가져오려면 Docker 인증 정보에서 풀 시크릿을 생성하여 서비스 계정에 추가해야 합니다.

보안 레지스트리의 .dockercfg 파일이 이미 있는 경우 다음을 실행하여 해당 파일에서 시크릿을 생성할 수 있습니다.

$ oc create secret generic <pull_secret_name> \
    --from-file=.dockercfg=<path/to/.dockercfg> \
    --type=kubernetes.io/dockercfg

$HOME/.docker/config.json 파일이 있는 경우 다음을 실행합니다.

$ oc create secret generic <pull_secret_name> \
    --from-file=.dockerconfigjson=<path/to/.docker/config.json> \
    --type=kubernetes.io/dockerconfigjson

보안 레지스트리의 Docker 인증 정보 파일이 아직 없는 경우 다음을 실행하여 시크릿을 생성할 수 있습니다.

$ oc create secret docker-registry <pull_secret_name> \
    --docker-server=<registry_server> \
    --docker-username=<user_name> \
    --docker-password=<password> \
    --docker-email=<email>

Pod의 이미지 가져오기에 시크릿을 사용하려면 서비스 계정에 이 시크릿을 추가해야 합니다. 이 예에서 서비스 계정의 이름은 포드가 사용하는 서비스 계정의 이름과 일치해야 합니다. default는 기본 서비스 계정입니다.

$ oc secrets link default <pull_secret_name> --for=pull

빌드 이미지를 푸시하고 가져오기 위해 보안 비밀을 사용하려면 해당 보안 비밀이 Pod 내부에 마운트 가능해야 합니다. 다음을 실행하여 이 작업을 수행할 수 있습니다.

$ oc secrets link builder <pull_secret_name>

빌드의 경우 빌드 구성 내에서 비밀을 끌어오기 비밀로 참조해야 합니다.

Red Hat 레지스트리에 대해 자세히 알아보기

다음은 registry.redhat.io를 시작하는 데 도움이 되는 몇 가지 다른 리소스입니다:

  • 문제 해결: 보안이 강화된 환경에 있는 경우 프록시의 화이트리스트 Registry.redhat.io를 내부적으로 변경해야 할 수도 있습니다. registry.redhat.io를 통한 인증 문제 해결 문서에 따라 Registry.redhat.io와의 연결을 확인할 수 있습니다.
  • 추가 도움을 받을 수 있는 곳: 추가 도움이 필요한 경우 Red Hat 고객 포털을 통해 제품에 대한 지원 티켓을 개설하세요.

Comments