개요
permissions
를 사용하여 GITHUB_TOKEN
에 부여된 기본 사용 권한을 수정하면 필요에 따라 액세스를 추가하거나 제거하여 필요한 최소 액세스만 허용할 수 있습니다. 자세한 내용은 "자동 토큰 인증"을(를) 참조하세요.
permissions
를 최상위 키로 사용하거나, 워크플로의 모든 작업에 적용하거나, 특정 작업 내에서 적용할 수 있습니다. 특정 작업 내에 permissions
키를 추가하면 GITHUB_TOKEN
을 사용하는 해당 작업 내의 모든 동작 및 실행 명령이 지정한 액세스 권한을 얻게 됩니다. 자세한 내용은 jobs.<job_id>.permissions
를 참조하세요.
아래 표에 표시된 사용 가능한 각 권한에 대해 read
(해당되는 경우), write
또는 none
액세스 수준 중 하나를 할당할 수 있습니다. write
에는 read
가 포함됩니다. 이러한 권한에 대한 액세스를 지정하면 지정되지 않은 모든 권한은 none
으로 설정됩니다.
사용 가능한 권한 및 각 작업에서 수행할 수 있는 작업에 대한 세부 정보:
Permission | GITHUB_TOKEN 을(를) 사용하여 작업을 허용합니다. |
---|---|
actions | GitHub Actions으로 실행 예를 들어, actions: write 이(가) 워크플로 실행을 취소하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
attestations | 아티팩트 증명을 사용합니다. 예를 들어 attestations: write 는 작업에서 빌드에 대한 아티팩트 증명을 생성하도록 허용합니다. 자세한 내용은 "아티팩트 증명을 사용하여 빌드의 출처 설정"을(를) 참조하세요. |
checks | 검사 실행 및 검사 도구 모음을 사용합니다. 예를 들어, checks: write 이(가) 검사 실행을 만들도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
contents | 리포지토리의 내용을 이용합니다. 예를 들어 contents: read 이(가) 커밋을 나열하도록 허용하고 contents: write 이(가) 릴리스를 만들 수 있도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
deployments | 배포 작업. 예를 들어, deployments: write 이(가) 새 배포를 만들도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
discussions | GitHub Discussion과 함께 작업합니다. 예를 들어 discussions: write 을(를) 통해 토론을 닫거나 삭제할 수 있습니다. 자세한 내용은 "토론에 GraphQL API 사용"을(를) 참조하세요. |
id-token | OIDC(OpenID Connect) 토큰을 가져옵니다. id-token: write 여야 합니다. 자세한 내용은 "OpenID Connect를 사용한 보안 강화 정보"을(를) 참조하세요. |
issues | Issue 작업. 예를 들어 issues: write 이(가) 문제에 주석을 추가하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
packages | GitHub 패키지로 작업합니다. 예를 들어, packages: write 이(가) GitHub 패키지에 패키지를 업로드하고 게시하는 작업을 허용합니다. 자세한 내용은 "GitHub 패키지에 대한 사용 권한 정보"을(를) 참조하세요. |
pages | GitHub Pages로 작업합니다. 예를 들어 pages: write 이(가) GitHub Pages 빌드를 요청하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
pull-requests | 끌어오기 요청을 사용합니다. 예를 들어 pull-requests: write 이(가) 끌어오기 요청에 레이블을 추가하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
repository-projects | GitHub 프로젝트(클래식)로 작업합니다. 예를 들어 repository-projects: write 이(가) 프로젝트(클래식)에 열을 추가하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한"을(를) 참조하세요. |
security-events | GitHub 코드 검사 및 Dependabot 경고를 사용합니다. 예를 들어 security-events: read 이(가) 리포지토리에 대한 Dependabot 경고를 나열하도록 허용하고 security-events: write 이(가) 코드 검색 경고의 상태 업데이트하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 사용 권한"에서 "'코드 검색 경고'에 대한 리포지토리 권한" 및 "'Dependabot 경고'에 대한 리포지토리 권한"을 참조하세요. |
statuses | 커밋 상태 작업합니다. 예를 들어 statuses:read 이(가) 지정된 참조에 대한 커밋 상태 나열하도록 허용합니다. 자세한 내용은 "GitHub 앱에 필요한 권한" 항목을 참조하세요. |
GITHUB_TOKEN
권한에 대한 액세스 정의
permissions
키 내에서 사용 가능한 권한의 값으로 read
, write
, none
을 지정하여 GITHUB_TOKEN
이 허용할 액세스를 정의할 수 있습니다.
permissions:
actions: read|write|none
attestations: read|write|none
checks: read|write|none
contents: read|write|none
deployments: read|write|none
id-token: write|none
issues: read|write|none
discussions: read|write|none
packages: read|write|none
pages: read|write|none
pull-requests: read|write|none
repository-projects: read|write|none
security-events: read|write|none
statuses: read|write|none
이러한 권한에 대한 액세스를 지정하면 지정되지 않은 모든 권한은 none
으로 설정됩니다.
다음 구문을 사용하여 사용 가능한 모든 권한에 대한 read-all
또는 write-all
액세스 중 하나를 정의할 수 있습니다.
permissions: read-all
permissions: write-all
다음 구문을 사용하여 사용 가능한 모든 권한에 대한 사용 권한을 사용하지 않도록 설정할 수 있습니다.
permissions: {}
포크된 리포지토리의 권한 변경
또한 permissions
키를 사용하여 포크된 리포지토리에 대한 읽기 권한을 추가 및 제거할 수 있지만 일반적으로 쓰기 액세스 권한은 부여할 수 없습니다. 이 동작의 예외는 관리 사용자가 GitHub Actions 설정의 끌어오기 요청에서 워크플로에 쓰기 토큰 보내기 옵션을 선택한 경우입니다. 자세한 내용은 "리포지토리에 대한 GitHub Actions 설정 관리"을(를) 참조하세요.
워크플로의 GITHUB_TOKEN
모든 작업에 대한 사용 권한 설정
워크플로의 모든 작업에 설정이 적용되도록 워크플로의 최상위 수준에서 지정할 permissions
수 있습니다.
예시: 전체 워크플로에 GITHUB_TOKEN
대한 권한 설정
이 예제에서는 워크플로의 모든 작업에 적용되는 GITHUB_TOKEN
에 대해 설정되는 사용 권한을 보여 줍니다. 모든 권한에는 읽기 액세스 권한이 부여됩니다.
name: "My workflow"
on: [ push ]
permissions: read-all
jobs:
...
예시: 특정 작업에 대한 GITHUB_TOKEN
사용 권한 설정
특정 작업의 경우 jobs.<job_id>.permissions
를 사용하여 GITHUB_TOKEN
에 부여된 기본 사용 권한을 수정하면 필요에 따라 액세스를 추가하거나 제거하여 필요한 최소 액세스만 허용할 수 있습니다. 자세한 내용은 "자동 토큰 인증"을(를) 참조하세요.
작업 정의 내에서 사용 권한을 지정하여 필요한 경우 각 작업의 GITHUB_TOKEN
에 대해 다른 사용 권한 집합을 구성할 수 있습니다. 또는 워크플로의 모든 작업에 대한 사용 권한을 지정할 수 있습니다. 워크플로 수준에서 사용 권한을 정의하는 방법에 대한 자세한 내용은 permissions
를 참조하세요.
예시: 워크플로에서 GITHUB_TOKEN
한 작업에 대한 사용 권한 설정
이 예제에서는 이름이 stale
로 지정된 작업에만 적용되는 GITHUB_TOKEN
에 대해 설명되는 사용 권한을 보여 줍니다. issues
및 pull-requests
권한에 대한 쓰기 권한이 부여됩니다. 다른 모든 권한은 액세스할 수 없습니다.
jobs:
stale:
runs-on: ubuntu-latest
permissions:
issues: write
pull-requests: write
steps:
- uses: actions/stale@v5