레지스트리 접근 관리
레지스트리 접근 관리 (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 구독 보유
레지스트리 권한 구성
- Docker Home 에 로그인하고 왼쪽 위 계정 드롭다운에서 조직을 선택해요.
- Docker Desktop, 다음 Registry Access 를 선택해요.
- toggle 을 사용해 레지스트리 접근을 켜요. 기본적으로 Docker Hub가 레지스트리 목록에서 활성화돼 있어요.
- 레지스트리를 추가하려면 Add registry 를 선택하고 Registry address 와 Registry nickname 을 제공해요.
- Create 를 선택해요. 최대 100개의 레지스트리를 추가할 수 있어요.
- 레지스트리가 레지스트리 목록에 나타나는지 확인하고 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 작업에 적용돼요.
레지스트리 제한 및 기타
(원문 문서에는 레지스트리 한도, 모범 사례, 다음 단계에 대한 추가 내용이 이어지지만, 핵심 설정·검증 사항은 위와 같아요.)