
사용 사례: 당기기 허용선택된(예: 태그가 지정됨 *-public
) Docker 이미지는 익명으로 표시됩니다. 그렇지 않으면 자격 증명이 필요합니다.
docker login
참고: 최신 Nexus 3.52.0, 문제 없이 LDAP 자격 증명 과 함께 작동합니다 .
시험을 마친:
- 선택기 + 권한 + 역할(모두 docker-images-public으로 명명됨) > 동일한 사용자 및 로컬 인증 영역을 사용하여 "익명", "익명 액세스"를 사용하도록 제공됩니다.
- 결과: 데몬의 오류 응답: https://HOST/v2/infrastructure/IMAGE/manifests/VERSION-public 가져오기: 기본 인증 자격 증명 없음 예상: 콘텐츠 선택기와 일치하는 docker 가져오기 이미지 기능(예: ".*-public") )
추가로 시도한 것:
로그에서 TRACE 로그 수준 활성화
결과: 출력이 많았지만 거부할 구체적인 이유가 없었습니다(적어도 저는 보지 못했습니다). 문자열 중 하나:
DEBUG [qtp194038341-106] *UNKNOWN org.sonatype.nexus.repository.view.Router - Response: Response{status=Status{successful=false, code=401, message='null'}, payload=StringPayload{size=113, charset=UTF-8, contentType='application/json'}}
앞에 Nginx가 없는 경우(예: docker pull HOST:5000/IMAGE:VERSION-public, HTTP를 통해)
결과: 동일합니다. 이유: 인증 헤더 수정에 대한 StackOverflow 답변을 확인했습니다. 방정식에서 Nginx를 완전히 제외하고 싶었습니다.
단순화된 선택기
선택기는
format == "docker" && ( path == "/v2/" || path =~ ".*public" || path == "/v2/.*")
다음의 조언을 포함하여 몇 번의 시도 끝에 수정되었습니다.https://stackoverflow.com/questions/43354352/nexus-docker-and-restricting-access-via-content-selector(아마도 아닐 가능성이 높음) 그러나 오류는 선택기에 관한 것이 아닙니다.format == "docker" && path =~ ".*"
anonymous
사용자nx-admin
역할 부여anonymous
결과: 동일한 오류이므로 권한 에 이유가 없습니다.Docker Bearer Token Realm
에 따라 활성화 https://help.sonatype.com/repomanager3/nexus-repository-administration/formats/docker-registry/docker-authentication결과: 같은 오류
리포지토리 수준에서 익명 액세스 활성화("익명 docker 풀 허용(Docker Bearer Token Realm 필요)" 확인란)
결과: 전체 저장소에 익명으로 액세스할 수 있습니다. 하지 않습니다.
여기서 내가 볼 수 있는 유일한 대안은 공개 익명 액세스 전용으로 다른 포트에 별도의 도커 저장소를 만드는 것입니다.
답변1
누락된 부분은 사용자 nx-anonymous
로부터 기본 역할을 제거하여 anonymous
전체 저장소를 가져올 수 있다는 것입니다.
일반적으로 구성은 다음과 같습니다.
- 선택기
format == "docker" && path =~ ".*-public"
+ 권한 + 역할 생성(모두 이름이docker-images-public
) - #admin/security/realms - 활성화
Docker Bearer Token Realm
- #admin/repository/repositories:docker-repository,
Allow anonymous docker pull ( Docker Bearer Token Realm required )
docker 저장소에 대한 확인란 활성화 - #관리자/보안/사용자:익명
- 모든 이미지를 가져올 수 있는 액세스 권한을 부여한
nx-anonymous
사용자의 역할을 제거합니다 .anonymous
- 새로운
docker-images-public
역할 부여