npm Classic Tokens 사라짐: 배포를 지속하는 두 가지 저 유지보수 방법
Source: Dev.to
배경
npm이 최근 클래식 npm 토큰이 폐기되고 취소된다고 발표했습니다. 모든 사용자는 만료 날짜가 포함된 세분화된 토큰으로 마이그레이션해야 합니다. 퍼블리시/쓰기 용도에서는 사실상 정기적인 토큰 교체가 필요합니다.
UI에서는 토큰을 갱신하는 옵션조차 없으며, 매번 새 토큰을 만들고(그리고 오래된 토큰을 삭제) 해야 합니다.
퍼블리시를 유지하기 위한 두 가지 저‑유지보수 방법
1. npm CLI로 토큰 교체 자동화
토큰 생성과 폐기를 스크립트로 작성한 뒤 일정에 따라 실행할 수 있습니다(예: 90일마다). 간단한 예시:
# renew-token.sh
# 퍼블리시 권한이 있는 새 토큰 생성
npm token create --read-write --expires=90d
# (선택) 기존 토큰 ID가 있다면 삭제
# npm token revoke
package.json에 스크립트 항목을 추가합니다:
{
"scripts": {
"renew-token": "bash renew-token.sh"
}
}
다음 명령으로 실행합니다:
npm run renew-token
이렇게 하면 토큰이 만료될 때마다 npm 웹사이트를 클릭할 필요가 없어집니다.
2. CI/CD에서 OpenID Connect (OIDC) 사용
워크플로가 GitHub Actions, GitLab CI/CD 또는 다른 OIDC 호환 플랫폼에서 실행된다면, 장기 토큰을 저장하지 않고도 npm에 인증할 수 있습니다.
- 패키지를 npm 설정에서 레포지토리와 워크플로 파일에 연결합니다.
- CI/CD 파이프라인에서 OIDC를 구성해 짧은 수명의 ID 토큰을 요청합니다.
npm publish명령으로 퍼블리시합니다; npm은 신뢰된 소스에서 온 경우 퍼블리시를 허용합니다.
이 방법은 초기 설정 이후 유지보수가 전혀 필요 없으며, 지속적인 토큰이 저장되지 않기 때문에 보안도 강화됩니다.
결론
npm CLI로 토큰 교체를 자동화하거나 CI/CD 파이프라인에서 OIDC를 활용하면, 수동 토큰 관리의 번거로움 없이 패키지를 퍼블리시할 수 있습니다. 두 방법 모두 워크플로를 단순화하고 보안을 향상시킵니다.