Skip to main content

작업에 권한 할당

GITHUB_TOKEN에 부여된 기본 사용 권한을 수정합니다.

참고: GitHub 호스트 실행기는 현재 GitHub Enterprise Server에서 지원되지 않습니다. GitHub public roadmap에 예정된 향후 지원에 대해 자세히 알아볼 수 있습니다.

개요

permissions를 사용하여 GITHUB_TOKEN에 부여된 기본 사용 권한을 수정하면 필요에 따라 액세스를 추가하거나 제거하여 필요한 최소 액세스만 허용할 수 있습니다. 자세한 내용은 “워크플로의 인증”을 참조하세요.

permissions를 최상위 키로 사용하거나, 워크플로의 모든 작업에 적용하거나, 특정 작업 내에서 적용할 수 있습니다. 특정 작업 내에 permissions 키를 추가하면 GITHUB_TOKEN을 사용하는 해당 작업 내의 모든 동작 및 실행 명령이 지정한 액세스 권한을 얻게 됩니다. 자세한 내용은 jobs.<job_id>.permissions를 참조하세요.

사용 가능한 범위 및 액세스 값:

permissions:
  actions: read|write|none
  checks: read|write|none
  contents: read|write|none
  deployments: read|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으로 설정됩니다.

다음 구문을 사용하여 사용 가능한 모든 범위에 대한 읽기 또는 쓰기 권한을 정의할 수 있습니다.

permissions: read-all|write-all

다음 구문을 사용하여 사용 가능한 모든 범위에 대한 사용 권한을 사용하지 않도록 설정할 수 있습니다.

permissions: {}
``` 또한 `permissions` 키를 사용하여 포크된 리포지토리에 대한 읽기 권한을 추가  제거할  있지만 일반적으로 쓰기 액세스 권한은 부여할  없습니다.  동작의 예외는 관리 사용자가 GitHub Actions 설정의 **끌어오기 요청에서 워크플로에 쓰기 토큰 보내기** 옵션을 선택한 경우입니다. 자세한 내용은 “[리포지토리에 대한 GitHub Actions 설정 관리](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-private-repository-forks)”를 참조하세요.

### <a name="example-assigning-permissions-to-github_token"></a>예: GITHUB_TOKEN에 권한 할당

 예제에서는 워크플로의 모든 작업에 적용되는 `GITHUB_TOKEN`에 대해 설정되는 사용 권한을 보여 줍니다. 모든 권한에는 읽기 액세스 권한이 부여됩니다.

```yaml
name: "My workflow"

on: [ push ]

permissions: read-all

jobs:
  ...

특정 작업에 사용 권한 할당

특정 작업의 경우 jobs.<job_id>.permissions를 사용하여 GITHUB_TOKEN에 부여된 기본 사용 권한을 수정하면 필요에 따라 액세스를 추가하거나 제거하여 필요한 최소 액세스만 허용할 수 있습니다. 자세한 내용은 “워크플로의 인증”을 참조하세요.

작업 정의 내에서 사용 권한을 지정하여 필요한 경우 각 작업의 GITHUB_TOKEN에 대해 다른 사용 권한 집합을 구성할 수 있습니다. 또는 워크플로의 모든 작업에 대한 사용 권한을 지정할 수 있습니다. 워크플로 수준에서 사용 권한을 정의하는 방법에 대한 자세한 내용은 permissions를 참조하세요.

사용 가능한 범위 및 액세스 값:

permissions:
  actions: read|write|none
  checks: read|write|none
  contents: read|write|none
  deployments: read|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으로 설정됩니다.

다음 구문을 사용하여 사용 가능한 모든 범위에 대한 읽기 또는 쓰기 권한을 정의할 수 있습니다.

permissions: read-all|write-all

다음 구문을 사용하여 사용 가능한 모든 범위에 대한 사용 권한을 사용하지 않도록 설정할 수 있습니다.

permissions: {}
``` 또한 `permissions` 키를 사용하여 포크된 리포지토리에 대한 읽기 권한을 추가  제거할  있지만 일반적으로 쓰기 액세스 권한은 부여할  없습니다.  동작의 예외는 관리 사용자가 GitHub Actions 설정의 **끌어오기 요청에서 워크플로에 쓰기 토큰 보내기** 옵션을 선택한 경우입니다. 자세한 내용은 “[리포지토리에 대한 GitHub Actions 설정 관리](/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-github-actions-settings-for-a-repository#enabling-workflows-for-private-repository-forks)”를 참조하세요.

#### <a name="example-setting-permissions-for-a-specific-job"></a>예: 특정 작업에 대한 사용 권한 설정

 예제에서는 이름이 `stale`로 지정된 작업에만 적용되는 `GITHUB_TOKEN`에 대해 설명되는 사용 권한을 보여 줍니다. `issues`  `pull-requests` 범위에 대한 쓰기 권한이 부여됩니다. 다른 모든 범위에는 액세스할  없습니다.

```yaml
jobs:
  stale:
    runs-on: ubuntu-latest

    permissions:
      issues: write
      pull-requests: write

    steps:
      - uses: actions/stale@v5