레지스트리 접근 관리

레지스트리 접근 관리 (Registry Access Management)

개발자가 Docker Desktop을 통해 접근할 수 있는 컨테이너 레지스트리를 제어하고, 승인된 레지스트리로 풀·푸시를 제한하는 방법을 배워볼게요.

출처: 문서

본문

Registry Access Management(RAM)는 관리자가 개발자가 Docker Desktop을 통해 접근할 수 있는 컨테이너 레지스트리를 제어할 수 있게 해줘요. 이 DNS 수준 필터링은 풀·푸시를 승인된 레지스트리로 제한해요.

RAM은 클라우드 레지스트리, 온프레미스 레지스트리, 레지스트리 미러와 함께 작동해요. 모든 호스트 이름이나 도메인을 허용할 수 있지만, 허용 목록에 리다이렉트 도메인(예: 일부 레지스트리의 경우 s3.amazonaws.com)도 포함해야 해요.

지원되는 레지스트리

Registry Access Management는 다음을 포함한 모든 컨테이너 레지스트리와 작동해요:

  • Docker Hub (기본적으로 허용)
  • 클라우드 레지스트리: Amazon ECR, Google Artifact Registry, Azure Container Registry
  • Git 기반 레지스트리: GitHub Container Registry, GitLab Container Registry
  • 온프레미스 솔루션: Nexus, Artifactory, Harbor
  • 레지스트리 미러: Docker Hub 미러 포함

사전 요구 사항

Registry Access Management를 구성하기 전에 다음을 해야 해요:

  • Enforce sign-in. Registry Access Management는 사용자가 조직 자격 증명으로 Docker Desktop에 로그인할 때만 적용돼요.
  • 인증에 Organization access tokens(OAT) 사용
  • Docker Business 구독 보유

레지스트리 권한 구성

  1. Docker Home 에 로그인하고 왼쪽 위 계정 드롭다운에서 조직을 선택해요.
  2. Docker Desktop, 다음 Registry Access 를 선택해요.
  3. toggle 을 사용해 레지스트리 접근을 켜요. 기본적으로 Docker Hub가 레지스트리 목록에서 활성화돼 있어요.
  4. 레지스트리를 추가하려면 Add registry 를 선택하고 Registry address 와 Registry nickname 을 제공해요.
  5. Create 를 선택해요. 최대 100개의 레지스트리를 추가할 수 있어요.
  6. 레지스트리가 레지스트리 목록에 나타나는지 확인하고 Save changes 를 선택해요.

참고: 정책 변경은 적용되는 데 최대 24시간이 걸릴 수 있어요. 변경 사항을 즉시 적용하려면 개발자에게 Docker Desktop에서 로그아웃했다가 다시 로그인하도록 요청해요.

개발자가 서로 다른 RAM 정책이 있는 여러 조직에 속해 있다면, 구성 파일에서 첫 번째 조직의 정책만 적용돼요.

팁: RAM 제한은 URL로 콘텐츠를 가져오는 Dockerfile ADD 지시문에도 적용돼요. ADD를 URL과 함께 사용할 때 허용 목록에 신뢰할 수 있는 레지스트리 도메인을 포함해요. RAM은 컨테이너 레지스트리를 위해 설계된 것으로, 패키지 미러나 스토리지 서비스 같은 범용 URL용이 아니에요. 도메인을 너무 많이 추가하면 오류가 발생하거나 시스템 한도에 도달할 수 있어요.

제한이 작동하는지 검증

사용자가 조직 자격 증명으로 Docker Desktop에 로그인하면 Registry Access Management가 즉시 적용돼요. 사용자가 차단된 레지스트리에서 풀하려고 하면:

$ docker pull blocked-registry.com/image:tag
Error response from daemon: registry access to blocked-registry.com is not allowed

허용된 레지스트리 접근은 정상적으로 작동해요:

$ docker pull allowed-registry.com/image:tag
# 풀 성공

레지스트리 제한은 외부 레지스트리를 참조하는 풀, 푸시, 빌드를 포함한 모든 Docker 작업에 적용돼요.

레지스트리 제한 및 기타

(원문 문서에는 레지스트리 한도, 모범 사례, 다음 단계에 대한 추가 내용이 이어지지만, 핵심 설정·검증 사항은 위와 같아요.)

더 알아보기 (Learn more)