범위가 지정된 API 키

NuGet을 패키지 배포를 위한 보다 안전한 환경으로 만들기 위해 범위를 추가하여 API 키를 제어할 수 있습니다.

API 키에 범위를 제공하는 기능을 통해 API를 보다 잘 제어할 수 있습니다. 마케팅 목록의 구성원을 관리할 수 있습니다.

  • 만료 기간이 다양한 여러 패키지에 사용할 수 있는 범위가 지정된 API 키를 만듭니다.
  • API 키를 안전하게 얻습니다.
  • 기존 API 키를 편집하여 패키지 적용 가능성을 변경합니다.
  • 다른 키를 사용하는 작업을 방해하지 않고 기존 API 키를 새로 고치거나 삭제합니다.

범위가 지정된 API 키를 지원하는 이유는?

보다 세분화된 권한을 가질 수 있도록 API 키의 범위를 지원합니다. 이전에 NuGet이 계정에 단일 API 키를 제공했지만 해당 방법에는 다음과 같은 몇 가지 단점이 있었습니다.

  • 모든 패키지를 제어하는 하나의 API 키. 모든 패키지를 관리하는 데 사용되는 단일 API 키를 사용하면 여러 개발자가 서로 다른 패키지와 관련된 경우와 게시자 계정을 공유할 때 키를 안전하게 공유하기가 어렵습니다.
  • 모든 권한 또는 없음. API 키에 대한 액세스 권한이 있는 모든 사용자는 패키지에 대한 모든 권한(게시, 푸시 및 목록 취소)을 가집니다. 이는 여러 팀이 있는 환경에서는 바람직하지 않는 경우가 많습니다.
  • 단일 실패 지점. 단일 API 키는 단일 실패 지점을 의미하기도 합니다. 키가 손상되면 계정과 연결된 모든 패키지가 손상될 수 있습니다. API 키를 새로 고치는 것만이 누출을 막고 CI/CD 워크플로의 중단을 방지할 수 있는 유일한 방법입니다. 또한 개인의 API 키에 대한 액세스 권한을 취소하려는 경우가 있을 수 있습니다(예: 직원이 조직을 떠나는 경우). 현재 이를 깨끗이 처리하는 방법이 없습니다.

범위가 지정된 API 키를 사용하여 기존 워크플로가 중단되지 않도록 하면서 이러한 문제를 해결하려고 합니다.

API 키 획득

  1. nuget.org 계정에 로그인하거나 계정이 없는 경우 계정을 만듭니다.

  2. 오른쪽 위에서 사용자 이름을 선택한 다음, API 키를 선택합니다.

  3. 만들기를 선택하고 키의 이름을 입력합니다.

  4. 범위 선택에서 푸시를 선택합니다.

  5. 패키지>선택 Glob 패턴에서 *를 입력합니다.

  6. 만들기를 실행합니다.

  7. 복사를 선택하여 새 키를 복사합니다.

    Screenshot that shows the new API key with the Copy link.

Important

  • 항상 API 키를 비밀로 유지합니다. API 키는 누구나 사용자를 대신하여 패키지를 관리할 수 있는 암호와 같습니다. 실수로 표시되는 경우 API 키를 삭제하거나 다시 생성합니다.
  • 나중에 키를 다시 복사할 수 없으므로 키를 안전한 위치에 저장합니다. API 키 페이지로 돌아갈 경우 키를 복사하려면 키를 다시 생성해야 합니다. 더 이상 패키지를 푸시하지 않으려는 경우 API 키를 제거할 수도 있습니다.

범위 지정을 사용하면 다양한 용도로 별도의 API 키를 만들 수 있습니다. 각 키에는 만료 기간이 있으며 키 범위를 특정 패키지 또는 glob 패턴으로 지정할 수 있습니다. 또한 각 키의 범위를 특정 작업( 새 패키지 및 패키지 버전 푸시, 새 패키지 버전만 푸시 또는 목록 해제)으로 지정합니다.

범위 지정을 통해 조직의 패키지를 관리하는 다른 사용자에 대한 API 키를 만들어 필요한 권한만 가질 수 있습니다.

범위가 지정된 API 키 만들기

요구 사항에 따라 여러 API 키를 만들 수 있습니다. API 키는 하나 이상의 패키지에 적용할 수 있고, 특정 권한이 부여된 다양한 범위를 가질 수 있으며, 이와 관련된 만료 날짜가 있습니다.

다음 예제에서는 특정 Contoso.Service 패키지에 대한 패키지를 푸시하는 데 사용할 수 있는 Contoso service CI라는 API 키가 있으며 365일 동안 유효합니다. 이는 동일한 조직 내의 다른 팀이 서로 다른 패키지에 대해 작업하고, 팀 멤버는 작업하고 있는 패키지에 대해서만 권한을 부여하는 키를 제공받는 일반적인 시나리오입니다. 만료는 부실하거나 잊어버린 키를 방지하는 메커니즘의 역할을 합니다.

Create API keys

GLOB 패턴 사용

여러 패키지에서 작업하고 관리할 패키지 목록이 많은 경우 globbing 패턴을 사용하여 여러 패키지를 함께 선택할 수 있습니다. 예를 들어 ID가 Fabrikam.Service로 시작하는 모든 패키지의 키에 특정 범위를 부여하려는 경우 Glob 패턴 텍스트 상자에 fabrikam.service.*를 지정하여 이 작업을 수행할 수 있습니다.

Create API keys - 2

GLOB 패턴을 사용하여 API 키 사용 권한을 결정하는 것은 GLOB 패턴과 일치하는 새 패키지에도 적용됩니다. 예를 들어 Fabrikam.Service.Framework라는 새 패키지를 푸시하려고 하면 패키지가 GLOB 패턴 fabrikam.service.*와 일치하므로 이전에 만든 키를 사용하여 이 작업을 수행할 수 있습니다.

API 키를 안전하게 얻기

보안을 위해 새로 만든 키는 화면에 표시되지 않으며 복사 단추를 통해서만 사용할 수 있습니다. 마찬가지로 페이지를 새로 고친 후에는 키에 액세스할 수 없습니다.

Create API keys - 3

기존 API 키 편집

키 자체를 변경하지 않고 키 사용 권한 및 범위를 업데이트할 수도 있습니다. 단일 패키지에 대해 특정 범위의 키가 있는 경우 하나 이상의 다른 패키지에 동일한 범위를 적용하도록 선택할 수 있습니다.

Create API keys - 4

기존 API 키 새로 고침 또는 삭제

계정 소유자는 키를 새로 고치도록 선택할 수 있습니다. 이 경우 사용 권한(패키지), 범위 및 만료는 그대로 유지되지만, 새 키가 발급되어 이전 키를 사용할 수 없게 됩니다. 이는 부실한 키를 관리하거나 API 키 누출 가능성이 있는 경우에 유용합니다.

Create API keys - 5

이러한 키가 더 이상 필요하지 않은 경우 삭제할 수도 있습니다. 키를 삭제하면 키가 제거되어 사용할 수 없게 됩니다.

FAQ

내 이전(레거시) API 키는 어떻게 되나요?

이전 API 키(레거시)는 계속 작동하며 원하는 만큼 작동할 수 있습니다. 그러나 이러한 키는 패키지를 푸시하는 데 365일을 초과하여 사용되지 않은 경우 폐기됩니다. 자세한 내용은 블로그 게시물 만료되는 API 키 변경을 참조하세요. 더 이상 이 키를 새로 고칠 수 없습니다. 레거시 키를 삭제하고 대신 새 범위가 지정된 키를 만들어야 합니다.

참고 항목

이 키는 모든 패키지에 대한 모든 권한을 가지고 있으며 만료되지 않습니다. 이 키를 삭제하고 범위가 지정된 사용 권한과 만료 기간이 확실한 새 키를 만드는 것을 고려해야 합니다.

몇 개의 API 키를 만들 수 있나요?

만들 수 있는 API 키의 수에는 제한이 없습니다. 그러나 어디서 누가 사용하고 있는지에 대해 알지 못하는 많은 오래된 키를 가지고 있지 않도록 관리하기 쉬운 수로 유지하는 것이 좋습니다.

지금 내 레거시 API 키를 삭제하거나 사용을 중지할 수 있나요?

예. 레거시 API 키를 삭제할 수 있습니다.

실수로 삭제한 내 API 키를 되돌릴 수 있나요?

아니요. 삭제되면 새 키만 만들 수 있습니다. 실수로 삭제된 키는 복구할 수 없습니다.

API 키 새로 고침 시 이전 API 키가 계속 작동하고 있나요?

아니요. 키를 새로 고치면 이전 키와 범위, 사용 권한 및 만료 기간이 동일한 새 키가 생성됩니다. 이전 키는 사라집니다.

기존 API 키에 추가 권한을 부여할 수 있나요?

범위를 수정할 수 없지만 적용 가능한 패키지 목록을 편집할 수는 있습니다.

내 키가 만료되었거나 만료되는지 확인하는 방법은?

키가 만료되면 페이지 맨 위에 있는 경고 메시지를 통해 알려드립니다. 또한 사전에 잘 대처할 수 있도록 키가 만료되기 10일 전에 계정 소유자에게 경고 이메일을 보냅니다.