GitHub Apps 프라이빗 키 정보
GitHub App을(를) 만든 후에는 GitHub API를 애플리케이션 자체로 요청하기 위해 프라이빗 키를 생성해야 합니다. 예를 들어 설치 액세스 토큰을 요청하기 위해 JWT(JSON Web Token) 정보에 서명하려면 프라이빗 키가 필요합니다. 자세한 내용은 "GitHub 앱에 대한 JWT(JSON Web Token) 생성"을 참조하세요.
여러 프라이빗 키를 만들고 회전하여 키가 손상되거나 손실되는 경우 가동 중지 시간을 방지할 수 있습니다. 프라이빗 키가 퍼블릭 키와 일치하는지 확인하려면 “프라이빗 키 확인”을 참조하세요.
프라이빗 키는 만료되지 않으며 대신 수동으로 해지해야 합니다. 프라이빗 키를 해지하는 방법에 대한 자세한 내용은 "프라이빗 키 삭제"를 참조하세요.
GitHub Apps에 대한 프라이빗 키를 안전하게 유지해야 합니다. 자세한 내용은 프라이빗 키 저장을 참조하세요.
프라이빗 키 생성
프라이빗 키를 생성하려면 다음을 수행합니다.
- GitHub의 페이지 오른쪽 위 모서리에서 프로필 사진을 클릭합니다.
- 계정 설정으로 이동합니다.
- 개인 계정 소유한 앱의 경우 설정을 클릭합니다.
- 조직이 소유한 앱의 경우:
- 사용자의 조직을 클릭합니다.
- 조직 오른쪽에서 설정을 클릭합니다.
- 왼쪽 사이드바에서 개발자 설정을 클릭합니다.
- 왼쪽 사이드바에서 GitHub Apps 을 클릭합니다.
- 프라이빗 키를 생성하려는 GitHub App 옆에 있는 편집을 클릭합니다.
- "프라이빗 키"에서 프라이빗 키 생성을 클릭합니다.
- 컴퓨터에 다운로드된 PEM 형식의 프라이빗 키가 표시됩니다. GitHub는 키의 공용 부분만 저장하므로 이 파일을 저장해야 합니다. 키를 안전하게 저장하는 방법에 대한 자세한 내용은 "프라이빗 키 저장"을 참조하세요.
참고: 특정 파일 형식이 필요한 라이브러리를 사용하는 경우 다운로드한 PEM 파일은 PKCS#1 RSAPrivateKey
형식이 됩니다.
프라이빗 키 확인
GitHub는 SHA-256 해시 함수를 사용하여 각 프라이빗 키 및 퍼블릭 키 쌍에 대한 지문을 생성합니다. 프라이빗 키의 지문을 생성하고 GitHub에 표시된 지문과 비교하여 프라이빗 키가 GitHub에 저장된 퍼블릭 키와 일치하는지 확인할 수 있습니다.
프라이빗 키를 확인하려면 다음을 수행합니다.
-
GitHub App의 설정 페이지의 "프라이빗 키" 섹션에서 확인하려는 프라이빗 키 및 퍼블릭 키 쌍의 지문을 찾습니다. 자세한 내용은 “프라이빗 키 생성”을 참조하세요.
-
다음 명령을 사용하여 프라이빗 키 지문(PEM)을 로컬로 생성합니다.
openssl rsa -in PATH_TO_PEM_FILE -pubout -outform DER | openssl sha256 -binary | openssl base64
-
로컬로 생성된 지문의 결과를 GitHub에 표시되는 지문과 비교합니다.
프라이빗 키 삭제
삭제하여 손실되거나 손상된 프라이빗 키를 제거할 수 있지만 기존 키를 삭제하려면 먼저 새 키를 다시 생성해야 합니다.
- GitHub의 페이지 오른쪽 위 모서리에서 프로필 사진을 클릭합니다.
- 계정 설정으로 이동합니다.
- 개인 계정 소유한 앱의 경우 설정을 클릭합니다.
- 조직이 소유한 앱의 경우:
- 사용자의 조직을 클릭합니다.
- 조직 오른쪽에서 설정을 클릭합니다.
- 왼쪽 사이드바에서 개발자 설정을 클릭합니다.
- 왼쪽 사이드바에서 GitHub Apps 을 클릭합니다.
- 프라이빗 키를 삭제하려는 GitHub App 옆에 있는 편집을 클릭합니다.
- "프라이빗 키"에서 삭제할 프라이빗 키의 오른쪽에 있는 삭제를 클릭합니다.
- 메시지가 표시되면 삭제를 클릭하여 프라이빗 키를 삭제할지 확인합니다. GitHub App에 키가 하나만 있는 경우 이전 키를 삭제하기 전에 새 키를 생성해야 합니다. 자세한 내용은 “프라이빗 키 생성”을 참조하세요.
프라이빗 키 저장
프라이빗 키는 GitHub App에 대한 가장 중요한 단일 비밀키입니다. Azure Key Vault와 같은 키 자격 증명 모음에 키를 저장하고 서명 전용으로 만드는 것을 고려하세요. 이렇게 하면 프라이빗 키를 잃어버리지 않을 수 있습니다. 프라이빗 키가 키 자격 증명 모음에 업로드되면 여기에서 읽을 수 없습니다. 서명하는 데만 사용할 수 있으며 프라이빗 키에 대한 액세스는 인프라 규칙에 따라 결정됩니다.
또는 키를 환경 변수로 저장할 수 있습니다. 키 자격 증명 모음에 키를 저장하는 것만큼 강력하지는 않습니다. 공격자가 환경에 액세스하는 경우 프라이빗 키를 읽고 GitHub App으(로) 영구 인증을 받을 수 있습니다.
코드가 프라이빗 리포지토리에 저장된 경우에도 앱에서 프라이빗 키를 하드 코딩해서는 안 됩니다.
자세한 내용은 "GitHub App을 만드는 모범 사례"을(를) 참조하세요.