NuGet을 패키지 배포를 위한 보다 안전한 환경으로 만들기 위해 범위를 추가하여 API 키를 제어할 수 있습니다.
API 키에 범위를 제공하는 기능을 사용하면 API를 더 잘 제어할 수 있습니다. 당신은 할 수 있어요:
- 만료 기간이 다양한 여러 패키지에 사용할 수 있는 범위가 지정된 여러 API 키를 만듭니다.
- API 키를 안전하게 가져옵니다.
- 기존 API 키를 편집하여 패키지 적용 가능성을 변경합니다.
- 다른 키를 사용하는 작업을 방해하지 않고 기존 API 키를 새로 고치거나 삭제합니다.
범위가 지정된 API 키를 지원하는 이유는 무엇인가요?
더 세분화된 권한을 가질 수 있도록 API 키에 대한 범위를 지원합니다. 이전에 NuGet은 계정에 단일 API 키를 제공했으며 이러한 접근 방식에는 다음과 같은 몇 가지 단점이 있었습니다.
- 모든 패키지를 제어하는 하나의 API 키입니다. 모든 패키지를 관리하는 데 사용되는 단일 API 키를 사용하면 여러 개발자가 다른 패키지와 관련되어 있고 게시자 계정을 공유할 때 키를 안전하게 공유하기가 어렵습니다.
- 모든 사용 권한 또는 없음 API 키에 액세스할 수 있는 모든 사용자는 패키지에 대한 모든 권한(게시, 푸시 및 목록 해제)을 갖습니다. 여러 팀이 있는 환경에서는 바람직하지 않은 경우가 많습니다.
- 단일 실패 지점입니다. 또한 단일 API 키는 단일 실패 지점을 의미합니다. 키가 손상된 경우 계정과 연결된 모든 패키지가 손상될 수 있습니다. API 키를 새로 고치는 것은 누출을 연결하고 CI/CD 워크플로의 중단을 방지하는 유일한 방법입니다. 또한 개인에 대한 API 키에 대한 액세스 권한을 취소하려는 경우가 있을 수 있습니다(예: 직원이 조직을 떠날 때). 오늘날에는 이 문제를 해결할 수 있는 깨끗한 방법이 없습니다.
범위가 지정된 API 키를 사용하면 기존 워크플로가 중단되지 않도록 하면서 이러한 문제를 해결하려고 합니다.
API 키 획득
nuget.org 계정에 로그인 하거나 계정이 없는 경우 계정을 만듭니 다.
오른쪽 위에서 사용자 이름을 선택한 다음 , API 키를 선택합니다.
만들기를 선택하고 키의 이름을 입력합니다.
범위 선택에서 푸시를 선택합니다.
패키지 선택>글롭 패턴에서 *를 입력합니다.
선택하고생성합니다.
복사를 선택하여 새 키를 복사합니다.
중요합니다
- 항상 API 키를 비밀로 유지합니다. API 키는 누구나 사용자를 대신하여 패키지를 관리할 수 있는 암호와 같습니다. 실수로 표시되는 경우 API 키를 삭제하거나 다시 생성합니다.
- 나중에 키를 다시 복사할 수 없으므로 키를 안전한 위치에 저장합니다. API 키 페이지로 돌아가면 키를 다시 생성하여 복사해야 합니다. 패키지를 더 이상 푸시하지 않으려는 경우 API 키를 제거할 수도 있습니다.
범위 지정을 사용하면 다양한 용도로 별도의 API 키를 만들 수 있습니다. 각 키에는 만료 기간이 있으며 키 범위를 특정 패키지 또는 glob 패턴으로 지정할 수 있습니다. 또한 각 키의 범위를 특정 작업( 새 패키지 및 패키지 버전 푸시, 새 패키지 버전만 푸시 또는 목록 해제)으로 지정합니다.
범위 지정을 통해 조직의 패키지를 관리하는 다른 사용자에 대한 API 키를 만들어 필요한 권한만 가질 수 있습니다.
범위가 지정된 API 키 만들기
요구 사항에 따라 여러 API 키를 만들 수 있습니다. API 키는 하나 이상의 패키지에 적용되고, 특정 권한을 부여하는 다양한 범위를 가지며, 연결된 만료 날짜를 가질 수 있습니다.
다음 예제에서는 Contoso service CI이라는 이름의 API 키가 있으며, 이 키는 특정 Contoso.Service 패키지에 패키지를 푸시하는 데 사용할 수 있고 365일 동안 유효합니다. 이는 동일한 조직 내의 다른 팀이 서로 다른 패키지에서 작업하고 팀 구성원에게 작업 중인 패키지에 대해서만 권한을 부여하는 키를 제공하는 일반적인 시나리오입니다. 만료는 부실하거나 잊어버린 키를 방지하는 메커니즘으로 사용됩니다.
glob 패턴 사용
여러 패키지에서 작업 중이며 관리할 패키지 목록이 많은 경우 globbing 패턴을 사용하여 여러 패키지를 함께 선택하도록 선택할 수 있습니다. 예를 들어 ID가 시작되는 Fabrikam.Service모든 패키지의 키에 특정 범위를 부여하려는 경우 fabrikam.service.* 텍스트 상자에 지정하여 이 작업을 수행할 수 있습니다.
glob 패턴을 사용하여 API 키 권한을 확인하는 것은 glob 패턴과 일치하는 새 패키지에도 적용됩니다. 예를 들어 명명된 Fabrikam.Service.Framework새 패키지를 푸시하려고 하면 패키지가 glob 패턴 fabrikam.service.*과 일치하므로 이전에 만든 키를 사용하여 푸시할 수 있습니다.
안전하게 API 키 가져오기
보안을 위해 새로 만든 키는 화면에 표시되지 않으며 복사 단추를 사용하는 경우에만 사용할 수 있습니다. 마찬가지로 페이지를 새로 고친 후에는 키에 액세스할 수 없습니다.
기존 API 키 편집
키 자체를 변경하지 않고 키 권한 및 범위를 업데이트할 수도 있습니다. 단일 패키지에 대해 특정 범위의 키가 있는 경우 하나 이상의 다른 패키지에 동일한 범위를 적용하도록 선택할 수 있습니다.
기존 API 키 새로 고침 또는 삭제
계정 소유자는 키를 새로 고치도록 선택할 수 있습니다. 이 경우 권한(패키지에 대한), 범위 및 만료는 동일하게 유지되지만 이전 키를 사용할 수 없도록 새 키가 발급됩니다. 이는 부실 키를 관리하거나 API 키 누수 가능성이 있는 경우에 유용합니다.
더 이상 필요하지 않은 경우 이러한 키를 삭제하도록 선택할 수도 있습니다. 키를 삭제하면 키가 제거되고 키를 사용할 수 없게 됩니다.
자주 묻는 질문 (FAQ)
이전(레거시) API 키는 어떻게 되나요?
이전 API 키(레거시)는 계속 작동하며 원하는 만큼 작동할 수 있습니다. 그러나 패키지를 푸시하는 데 365일 이상 사용하지 않은 경우 이러한 키는 사용 중지됩니다. 자세한 내용은 만료되는 API 키에 대한 변경 내용 블로그 게시물을 참조하세요. 이 키를 더 이상 새로 고칠 수 없습니다. 대신 레거시 키를 삭제하고 범위가 지정된 새 키를 만들어야 합니다.
비고
이 키에는 모든 패키지에 대한 모든 권한이 있으며 만료되지 않습니다. 이 키를 삭제하고 범위가 지정된 권한과 명확한 만료를 사용하여 새 키를 만드는 것이 좋습니다.
만들 수 있는 API 키는 몇 개입니까?
만들 수 있는 API 키 수에는 제한이 없습니다. 그러나 관리 가능한 수로 유지하는 것이 좋습니다. 오래되거나 사용되지 않는 키가 많아져서 누가 어디에서 사용하고 있는지 모르는 경우를 방지합니다.
레거시 API 키를 삭제하거나 지금 사용을 중단할 수 있나요?
예. 레거시 API 키를 삭제할 수 있습니다.
실수로 삭제한 API 키를 다시 가져올 수 있나요?
아니요. 삭제된 후에는 새 키만 만들 수 있습니다. 실수로 삭제된 키는 복구할 수 없습니다.
이전 API 키가 API 키 새로 고침 시 계속 작동하나요?
아니요. 키를 새로 고치면 이전 키와 동일한 범위, 권한 및 만료가 있는 새 키가 생성됩니다. 이전 키가 더 이상 존재하지 않습니다.
기존 API 키에 더 많은 권한을 부여할 수 있나요?
범위를 수정할 수는 없지만 적용 가능한 패키지 목록을 편집할 수 있습니다.
내 키가 만료되었거나 만료되었는지 어떻게 알 수 있나요?
키가 만료되면 페이지 맨 위에 있는 경고 메시지를 통해 알려드리겠습니다. 또한 키 만료 10일 전에 계정 소유자에게 경고 전자 메일을 보내 미리 작업을 수행할 수 있습니다.