이 자습서에서는 작업에 토큰을 전달하고, API 요청을 수행하고, 보안 자동화에 대한 사용 권한을 구성하는 예제를 포함하여 GitHub Actions 워크플로에서 인증에 GITHUB_TOKEN
을 사용하는 방법을 안내합니다.
참조 정보는 GitHub Actions에 대한 워크플로 구문을(를) 참조하세요.
워크플로에서 GITHUB_TOKEN
사용
다음과 같이 비밀을 참조하는 데 표준 구문을 사용하면 GITHUB_TOKEN
을 사용할 수 있습니다. ${{ secrets.GITHUB_TOKEN }}
. GITHUB_TOKEN
을 사용하는 예시는 토큰을 작업에 대한 입력으로 전달하거나 인증된 GitHub API 요청을 만드는 데 사용합니다.
중요
워크플로가 GITHUB_TOKEN
을 작업에 명시적으로 전달하지 않더라도 작업은 github.token
컨텍스트를 통해 GITHUB_TOKEN
에 액세스할 수 있습니다. 좋은 보안 사례로, 항상 GITHUB_TOKEN
에 부여된 권한을 제한하여 필요한 최소 액세스 권한만 갖도록 해야 합니다. 자세한 내용은 GitHub Actions에 대한 워크플로 구문을(를) 참조하세요.
예제 1: 입력으로 GITHUB_TOKEN
전달
이 예제 워크플로는 GH_TOKEN
입력 매개 변수의 값으로 GITHUB_TOKEN
이 필요한 GitHub CLI를 사용합니다.
name: Open new issue on: workflow_dispatch jobs: open-issue: runs-on: ubuntu-latest permissions: contents: read issues: write steps: - run: | gh issue --repo ${{ github.repository }} \ create --title "Issue title" --body "Issue body" env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
name: Open new issue
on: workflow_dispatch
jobs:
open-issue:
runs-on: ubuntu-latest
permissions:
contents: read
issues: write
steps:
- run: |
gh issue --repo ${{ github.repository }} \
create --title "Issue title" --body "Issue body"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
예제 2: REST API 호출
GITHUB_TOKEN
은 인증된 API 호출을 수행하는 데 사용할 수 있습니다. 이 예제 워크플로는 GitHub REST API를 사용하여 이슈를 만듭니다.
name: Create issue on commit
on: [ push ]
jobs:
create_issue:
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Create issue using REST API
run: |
curl --request POST \
--url https://api.github.com/repos/${{ github.repository }}/issues \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
--data '{
"title": "Automated issue for commit: ${{ github.sha }}",
"body": "This issue was automatically created by the GitHub Action workflow **${{ github.workflow }}**. \n\n The commit hash was: _${{ github.sha }}_."
}' \
--fail
GITHUB_TOKEN
에 대한 권한 수정
워크플로 파일의 permissions
키를 사용하여 전체 워크플로 또는 개별 작업에 대한 GITHUB_TOKEN
의 권한을 수정할 수 있습니다. 이렇게 하면 워크플로 또는 작업에 필요한 최소 권한을 구성할 수 있습니다. 적절한 보안 사례로, GITHUB_TOKEN
에 최소한의 액세스 권한을 부여해야 합니다.
이 문서의 앞부분에 있는 워크플로 예제 두 개는 워크플로 수준과 작업 수준에서 사용 중인 permissions
키를 보여 줍니다.
추가 권한 부여
GITHUB_TOKEN
에서 사용할 수 없는 권한이 필요한 토큰이 필요한 경우, GitHub App을 만들고 워크플로 내에서 설치 액세스 토큰을 생성할 수 있습니다. 자세한 내용은 GitHub Actions 워크플로에서 GitHub 앱을 사용하여 인증된 API 요청 만들기을(를) 참조하세요. 또는 personal access token을 만들고, 리포지토리에 비밀로 저장하고, ${{ secrets.SECRET_NAME }}
구문을 사용하여 워크플로의 토큰을 사용할 수 있습니다. 자세한 내용은 개인용 액세스 토큰 관리 및 GitHub Actions에서 비밀 사용을(를) 참조하세요.