이제 PyPI를 사용하면 암호 및 토큰에 묶이지 않고 패키지를 게시할 수 있습니다.

PyPI

PyPI는 Python 프로그래밍 언어의 타사 응용 프로그램을 위한 공식 소프트웨어 저장소입니다.

며칠 전 뉴스가 터졌다. Python PyPI 패키지 저장소 (파이썬 패키지 인덱스) 이미 패키지를 게시하는 새로운 보안 방법을 사용할 수 있는 기능을 제공합니다., 외부 시스템(예: GitHub Actions)에 하드 암호 및 API 액세스 토큰을 저장할 필요가 없습니다.

새 인증 방법의 이름은'신뢰할 수 있는 게시자' 외부 시스템이 손상되고 미리 정의된 암호 또는 토큰이 잘못된 손에 넘어가서 악의적인 업데이트가 릴리스되는 문제를 해결하도록 설계되었습니다.

오늘부터 PyPI 패키지 관리자는 외부 시스템과 공유하기 위해 수명이 긴 암호나 API 토큰이 필요하지 않은 새롭고 더 안전한 게시 방법을 채택할 수 있습니다.

이 새로운 인증 방법은 다른 기존 PyPI 인증 방법에 비해 상당한 유용성과 보안 이점을 제공한다고 언급됩니다.

  • 유용성 : 신뢰할 수 있는 게시를 통해 사용자는 더 이상 PyPI에서 수동으로 API 토큰을 생성하고 복사하여 CI 공급자에 붙여넣을 필요가 없습니다. 유일한 수동 단계는 PyPI에서 편집기를 구성하는 것입니다.
  • 보안 : 일반 PyPI API 토큰은 오래 지속됩니다. 즉, 패키지 릴리스를 손상시키는 공격자가 합법적인 사용자가 이를 인지하고 수동으로 취소할 때까지 이를 사용할 수 있습니다. 마찬가지로 비밀번호를 사용하여 업로드하면 공격자가 계정과 연결된 모든 프로젝트를 업로드할 수 있습니다. Trusted Publishing은 다음 두 가지 문제를 모두 방지합니다. 발급된 토큰은 자동으로 만료되며 업로드 권한이 있는 패키지로만 제한됩니다.

이 새로운 인증 방법에 대해 다음과 같이 언급됩니다. OpenID Connect 표준(OIDC), 교환된 시간 제한 인증 토큰을 사용합니다. 기존 로그인/비밀번호 또는 액세스 토큰에 의해 수동으로 생성된 영구 API를 사용하는 대신 외부 서비스와 PyPI 디렉터리 사이에서 패키지 게시 작업의 유효성을 검사합니다.

"신뢰할 수 있는 발행물"은 OIDC(OpenID Connect) 표준을 사용하여 신뢰할 수 있는 타사 서비스와 PyPI 간에 단기 ID 토큰을 교환하는 용어입니다. 이 방법은 자동화된 환경에서 사용할 수 있으며 사용자 이름/암호 조합 또는 수동으로 생성된 API 토큰을 사용하여 게시할 때 PyPI로 인증할 필요가 없습니다.

한편, 패키지 관리자는 PyPI 측에서 외부 서비스가 비활성 토큰을 요청하는 데 사용할 외부 OpenID 제공자(IdP)에 제공된 식별자를 신뢰할 수 있다고 언급됩니다.

생성된 OpenID Connect 토큰은 프로젝트와 컨트롤러 간의 관계를 확인하고, 이를 통해 PyPI는 게시된 패키지가 특정 리포지토리와 연결되어 있는지 확인하는 것과 같은 추가 메타데이터 확인을 수행할 수 있습니다. 토큰은 영구적이지 않고 특정 API에 연결되어 있으며 짧은 수명 후에 자동으로 만료됩니다.

대신 PyPI 관리자는 지정된 OpenID Connect ID 공급자(IdP)가 제공하는 ID를 신뢰하도록 PyPI를 구성할 수 있습니다. 이를 통해 PyPI는 해당 ID에 대한 신뢰를 확인하고 위임할 수 있으며, 그러면 PyPI에서 제한된 범위의 단기 API 토큰을 요청할 수 있는 권한이 부여됩니다. 이러한 API 토큰은 저장하거나 공유할 필요가 없으며 빠른 만료 시 자동으로 회전하고 게시된 패키지와 해당 소스 간에 확인 가능한 링크를 제공합니다.

지금 메커니즘을 사용하는 능력 "신뢰할 수 있는 게시자" 이미 구현되어 실행 중입니다. GitHub Actions에서 시작된 컨트롤러용. 마지막으로 다른 외부 서비스에 대한 Trusted Publishers와의 호환성도 향후 기대된다고 언급했습니다.

최종적으로 그것에 대해 더 많이 알고 싶다면, 당신은 세부 사항을 확인할 수 있습니다 다음 링크에서.


Google에서 선호하는 검색 엔진으로 추가