GitHub Apps에 대한 프라이빗 키 정보
GitHub App을(를) 만든 후에는 GitHub API를 애플리케이션 자체로 요청하기 위해 프라이빗 키를 생성해야 합니다. 예를 들어 설치 액세스 토큰을 요청하려면 JWT(JSON Web Token)에 서명하는 프라이빗 키가 필요합니다. 자세한 내용은 "GitHub 앱 대한 JWT(JSON 웹 토큰) 생성.
여러 프라이빗 키를 만들고 회전하여 키가 손상되거나 손실되는 경우 가동 중지 시간을 방지할 수 있습니다. 프라이빗 키가 공개 키와 일치하는지 확인하려면 "프라이빗 키 확인"을 참조하세요.
GitHub Apps에 대한 프라이빗 키를 안전하게 유지해야 합니다. 자세한 내용은 "프라이빗 키 저장"을 참조하세요.
프라이빗 키 생성
프라이빗 키를 생성하려면 다음을 수행합니다.
- 계정 설정으로 이동합니다.
- 개인 계정이 소유하는 GitHub App의 경우 페이지 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음, 설정을 클릭합니다.
- 조직이 소유하는 GitHub App의 경우 페이지 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음, 조직을 클릭합니다. 그런 다음, 조직 오른쪽에서 설정을 클릭합니다.
- 왼쪽 사이드바에서 개발자 설정을 클릭합니다.
- 왼쪽 사이드바에서 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 App의 경우 페이지 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음, 설정을 클릭합니다.
- 조직이 소유하는 GitHub App의 경우 페이지 오른쪽 위 모서리에서 프로필 사진을 클릭한 다음, 조직을 클릭합니다. 그런 다음, 조직 오른쪽에서 설정을 클릭합니다.
- 왼쪽 사이드바에서 개발자 설정을 클릭합니다.
- 왼쪽 사이드바에서 GitHub Apps를 클릭합니다.
- 프라이빗 키를 삭제하려는 GitHub App 옆에 있는 편집을 클릭합니다.
- "프라이빗 키"에서 삭제할 프라이빗 키의 오른쪽에 있는 삭제를 클릭합니다.
- 메시지가 표시되면 삭제를 클릭하여 프라이빗 키를 삭제할지 확인합니다. GitHub App에 키가 하나만 있는 경우 이전 키를 삭제하기 전에 새 키를 생성해야 합니다. 자세한 내용은 "프라이빗 키 생성"을 참조하세요.
프라이빗 키 저장
프라이빗 키는 GitHub App에 가장 중요한 단일 비밀입니다. Azure Key Vault 같은 키 자격 증명 모음에 키를 저장하고 서명 전용으로 만드는 것이 좋습니다. 이렇게 하면 프라이빗 키를 잃을 수 없습니다. 프라이빗 키가 키 자격 증명 모음에 업로드되면 여기에서 읽을 수 없습니다. 서명하는 데만 사용할 수 있으며 프라이빗 키에 대한 액세스는 인프라 규칙에 따라 결정됩니다.
또는 키를 환경 변수로 저장할 수 있습니다. 키 자격 증명 모음에 키를 저장하는 것만큼 강력하지는 않습니다. 공격자가 환경에 액세스하는 경우 프라이빗 키를 읽고 GitHub App으로 영구 인증을 받을 수 있습니다.
코드가 프라이빗 리포지토리에 저장되어 있더라도 앱에서 프라이빗 키를 하드 코딩해서는 안 됩니다.
자세한 내용은 "GitHub 앱 만들기 위한 모범 사례"을 참조하세요.