# 해당 API 자격 증명 보안 유지

API 자격 증명 및 토큰을 안전하게 유지하려면 다음 모범 사례를 따릅니다.

## 적절한 인증 방법 선택

수행하려는 작업에 적합한 인증 방법을 선택해야 합니다.

* 개인적으로 API를 사용하려면 personal access token을 생성하면 됩니다.
* 조직이나 다른 사용자를 대신하여 API를 사용하려면 GitHub App을(를) 생성해야 합니다.
* 워크플로에서 API를 GitHub Actions 사용하려면 기본 제공 `GITHUB_TOKEN`으로 인증해야 합니다.

자세한 내용은 [GitHub 인증 정보](/ko/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/about-authentication-to-github#authenticating-with-the-api)을(를) 참조하세요.

## 자격 증명의 권한 제한

필요한 최소 사용 권한 또는 범위만 선택하고, personal access token를 만들 때 토큰을 사용하는 데 필요한 최소 시간 동안 만료 날짜를 설정합니다.
GitHub는 fine-grained personal access token 대신 personal access tokens (classic) 복수형을 사용하는 것이 좋습니다. 자세한 내용은 [개인용 액세스 토큰 관리](/ko/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#types-of-personal-access-tokens)을(를) 참조하세요.

토큰은 토큰 소유자가 가지고 있는 리소스에 액세스하고 해당 리소스에 대한 작업을 수행하는 동일한 기능을 가지고 있으며, 토큰에 부여된 범위 또는 권한을 통해 추가로 제한됩니다. 토큰은 사용자에게 추가 액세스 기능을 부여할 수 없습니다.

생성할 GitHub App에 대해 GitHub App에서 필요로 하는 최소 사용 권한을 선택합니다. 자세한 내용은 [GitHub 앱을 만들기 위한 모범 사례](/ko/enterprise-server@3.22/apps/creating-github-apps/about-creating-github-apps/best-practices-for-creating-a-github-app)을(를) 참조하세요.

`GITHUB_TOKEN` 워크플로에서 GitHub Actions으로 인증할 때, 필요한 최소 권한만 지정하십시오. 자세한 내용은 [워크플로에서 인증에 GITHUB\_TOKEN 사용](/ko/enterprise-server@3.22/actions/tutorials/authenticate-with-github_token#modifying-the-permissions-for-the-github_token)을(를) 참조하세요.

## 인증 자격 증명을 안전하게 저장

암호 또는 기타 중요한 자격 증명을 처리하는 방식과 동일한 방식으로 인증 자격 증명을 처리합니다.

* 암호화되지 않은 메시징 또는 이메일 시스템을 사용하여 인증 자격 증명을 공유하지 마세요.
* 명령줄에 personal access token을(를) 일반 텍스트로 전달하지 마세요. 자세한 내용은 [개인용 액세스 토큰 관리](/ko/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens#keeping-your-personal-access-tokens-secure)을(를) 참조하세요.
* 리포지토리가 프라이빗인 경우에도 토큰 또는 키와 같은 암호화되지 않은 인증 자격 증명을 리포지토리에 푸시하지 마세요. 대신 GitHub Actions비밀을 사용하는 것이 좋습니다. 자세한 내용은 [GitHub Actions에서 비밀 사용](/ko/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets).
* 비밀 검색을 사용하여 리포지토리에 푸시된 토큰, 프라이빗 키 및 기타 비밀을 검색하거나 비밀을 포함하는 이후 푸시를 차단할 수 있습니다. 자세한 내용은 [비밀 스캐닝](/ko/enterprise-server@3.22/code-security/concepts/secret-security/secret-scanning)을(를) 참조하세요.

## 인증 자격 증명에 액세스할 수 있는 사용자 제한

다른 사람과 personal access token를 공유하지 마세요.
personal access token를 공유하는 대신, GitHub App를 만드는 것이 좋습니다. 자세한 내용은 [GitHub 앱 만들기 정보](/ko/enterprise-server@3.22/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps)을(를) 참조하세요.

팀과 자격 증명을 공유해야 하는 경우 자격 증명을 안전한 공유 시스템에 저장합니다. 예를 들어 [1Password](https://1password.com/)를 사용하여 안전하게 암호를 저장하고 공유하거나, 키를 [Azure KeyVault](https://azure.microsoft.com/en-gb/products/key-vault)에 저장하고 IAM(ID 및 액세스 관리)을 사용하여 액세스를 관리할 수 있습니다.

API에 액세스해야 하는 워크플로를 GitHub Actions 만드는 경우 암호화된 비밀에 자격 증명을 저장하고 워크플로에서 암호화된 비밀에 액세스할 수 있습니다. 자세한 내용은 [GitHub Actions에서 비밀 사용](/ko/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets) 및 [GitHub Actions 워크플로에서 GitHub 앱을 사용하여 인증된 API 요청 만들기](/ko/enterprise-server@3.22/apps/creating-github-apps/authenticating-with-a-github-app/making-authenticated-api-requests-with-a-github-app-in-a-github-actions-workflow)을(를) 참조하세요.

## 코드에서 인증 자격 증명을 안전하게 사용

토큰, 키 또는 앱 관련 비밀과 같은 인증 자격 증명을 코드에 하드 코딩하지 마세요. 대신 [Azure Key Vault](https://azure.microsoft.com/products/key-vault) 또는 [HashiCorp Vault](https://www.hashicorp.com/products/vault) 같은 비밀 관리자를 사용하는 것이 좋습니다. 자격 증명 보안에 대한 자세한 내용은 GitHub App을 [](/ko/enterprise-server@3.22/apps/creating-github-apps/about-creating-github-apps/best-practices-for-creating-a-github-app) 참조하세요.

스크립트에서 personal access token를 사용할 때, 귀하의 토큰을 GitHub Actions 비밀로 저장하는 것을 고려하고 스크립트를 GitHub Actions 통해 실행하는 것이 좋습니다. 자세한 내용은 [GitHub Actions에서 비밀 사용](/ko/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do/use-secrets).

이러한 옵션을 사용할 수 없는 경우 인증 자격 증명을 `.env` 파일에 저장할 수 있습니다.
`.env` 파일을 암호화하고 리포지토리에 푸시하지 마세요.

## 수정 계획 준비

보안 위반을 적시에 처리하는 계획을 만들어야 합니다. 토큰 또는 기타 인증 자격 증명이 유출된 경우 다음을 수행해야 합니다.

* 자격 증명을 생성합니다.
* 이전 자격 증명을 저장하거나 자격 증명에 액세스하는 모든 위치에서 새 자격 증명으로 바꿉니다.
* 손상된 이전 자격 증명을 삭제합니다.

유출된 GitHub App 자격 증명을 교체하는 방법에 대한 자세한 내용은 [GitHub 앱을 만들기 위한 모범 사례](/ko/enterprise-server@3.22/apps/creating-github-apps/about-creating-github-apps/best-practices-for-creating-a-github-app) 문서를 참고하시기 바랍니다.

s를 만들고 삭제하는 방법에 대한 자세한 내용은 personal access token을 [](/ko/enterprise-server@3.22/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)참조하세요.