Nexus docker 저장소 - 선택된 아티팩트에 대한 익명 액세스

Nexus docker 저장소 - 선택된 아티팩트에 대한 익명 액세스

사용 사례: 당기기 허용선택된(예: 태그가 지정됨 *-public) Docker 이미지는 익명으로 표시됩니다. 그렇지 않으면 자격 증명이 필요합니다.

docker login참고: 최신 Nexus 3.52.0, 문제 없이 LDAP 자격 증명 과 함께 작동합니다 .

시험을 마친:

  • 선택기 + 권한 + 역할(모두 docker-images-public으로 명명됨) > 동일한 사용자 및 로컬 인증 영역을 사용하여 "익명", "익명 액세스"를 사용하도록 제공됩니다.
  • 결과: 데몬의 오류 응답: https://HOST/v2/infrastructure/IMAGE/manifests/VERSION-public 가져오기: 기본 인증 자격 증명 없음 예상: 콘텐츠 선택기와 일치하는 docker 가져오기 이미지 기능(예: ".*-public") )

추가로 시도한 것:

  1. 로그에서 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'}}

  2. 앞에 Nginx가 없는 경우(예: docker pull HOST:5000/IMAGE:VERSION-public, HTTP를 통해)

    결과: 동일합니다. 이유: 인증 ​​헤더 수정에 대한 StackOverflow 답변을 확인했습니다. 방정식에서 Nginx를 완전히 제외하고 싶었습니다.

  3. 단순화된 선택기

    선택기는 format == "docker" && ( path == "/v2/" || path =~ ".*public" || path == "/v2/.*") 다음의 조언을 포함하여 몇 번의 시도 끝에 수정되었습니다.https://stackoverflow.com/questions/43354352/nexus-docker-and-restricting-access-via-content-selector(아마도 아닐 가능성이 높음) 그러나 오류는 선택기에 관한 것이 아닙니다.format == "docker" && path =~ ".*"

  4. anonymous사용자 nx-admin역할 부여

    anonymous결과: 동일한 오류이므로 권한 에 이유가 없습니다.

  5. Docker Bearer Token Realm에 따라 활성화 https://help.sonatype.com/repomanager3/nexus-repository-administration/formats/docker-registry/docker-authentication

    결과: 같은 오류

  6. 리포지토리 수준에서 익명 액세스 활성화("익명 docker 풀 허용(Docker Bearer Token Realm 필요)" 확인란)

    결과: 전체 저장소에 익명으로 액세스할 수 있습니다. 하지 않습니다.

여기서 내가 볼 수 있는 유일한 대안은 공개 익명 액세스 전용으로 다른 포트에 별도의 도커 저장소를 만드는 것입니다.

답변1

누락된 부분은 사용자 nx-anonymous로부터 기본 역할을 제거하여 anonymous전체 저장소를 가져올 수 있다는 것입니다.

일반적으로 구성은 다음과 같습니다.

  1. 선택기 format == "docker" && path =~ ".*-public"+ 권한 + 역할 생성(모두 이름이 docker-images-public)
  2. #admin/security/realms - 활성화Docker Bearer Token Realm
  3. #admin/repository/repositories:docker-repository, Allow anonymous docker pull ( Docker Bearer Token Realm required )docker 저장소에 대한 확인란 활성화
  4. #관리자/보안/사용자:익명
  • 모든 이미지를 가져올 수 있는 액세스 권한을 부여한 nx-anonymous사용자의 역할을 제거합니다 .anonymous
  • 새로운 docker-images-public역할 부여

관련 정보