Skip to main content

GitHub Packagesの権限について

パッケージの権限の管理方法を学んでください。

GitHub Packages は、GitHub Free、GitHub Pro、Organization の GitHub Free、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server 3.0 以降、GitHub AE で利用できます。
GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 また、レガシーのリポジトリごとのプランを使っているアカウントは、リポジトリごとに課金される Container registry にはアクセスできません。 詳細については、「GitHub's products」を参照してください。

パッケージの権限は、リポジトリ スコープかユーザー/組織スコープです。

リポジトリスコープのパッケージの権限

リポジトリスコープのパッケージは、パッケージを所有するリポジトリの権限と可視性を継承します。 リポジトリをスコープとするパッケージは、リポジトリのメインページにアクセスし、ページ右にある パッケージ リンクをクリックすれば見つかります。 詳細については、「リポジトリのパッケージへの接続」を参照してください。

以下の GitHub Packages レジストリでは、リポジトリ スコープのアクセス許可 のみ を使います。

  • RubyGemsレジストリ
  • Apache Mavenレジストリ
  • NuGetレジストリ

Container registry and npm registryの場合、パッケージのスコープをユーザー、組織に設定、またはリポジトリにリンクすることを許可できます。

ユーザ/Organizationスコープのパッケージの詳細な権限

詳細な権限を持つパッケージは、個人ユーザもしくはOrganizationアカウントをスコープとします。 パッケージのアクセス制御と可視性は、パッケージに接続された(あるいはリンクされた)リポジトリは別個に変更できます。

現在のところ、Container registry and npm registryでコンテナ イメージ パッケージに関する細かいアクセス許可を提供しています。

コンテナイメージの可視性とアクセス権限

コンテナイメージへの管理権限を持っているなら、そのコンテナイメージへのアクセス権限をプライベートもしくはパブリックに設定できます。 パブリックイメージは匿名でアクセスでき、認証や CLI 経由でサインインすることなくプルできます。

あなたが管理者であれば、Organization レベルおよびリポジトリレベルに設定した権限とは別に、コンテナイメージに対してアクセス権限を付与することもできます。

個人アカウントによって公開および所有されているコンテナー イメージの場合、任意のユーザーにアクセス ロールを付与できます。 Organization が所有し公開しているコンテナイメージには、Organization 内の任意の Team にアクセスロールを付与できます。

アクセス許可アクセス権の内容
Readパッケージをダウンロードできます。
パッケージのメタデータを読み取ることができます。
Writeこのパッケージをアップロードおよびダウンロードできます。
パッケージ メタデータの読み取りと書き込みを行うことができます。
[Admin]このパッケージのアップロード、ダウンロード、削除、管理ができます。
パッケージ メタデータの読み取りと書き込みを行うことができます。
パッケージのアクセス許可を付与できます。

詳細については、「パッケージのアクセス制御と可視性の設定」を参照してください。

パッケージの管理

パッケージ レジストリでホストされているパッケージを使用もしくは管理するためには、適切なスコープを持つトークンを使わなければならず、個人用アカウントが適切な権限を持っていなければなりません。

次に例を示します。

  • リポジトリからパッケージをダウンロードしてインストールするには、トークンに read:packages スコープが設定されていなければならず、ユーザー アカウントには読み取り権限が設定されていなければなりません。
  • GitHub 上のパッケージを削除するには、ご利用のトークンに少なくとも delete:packages および read:packages スコープが設定されている必要があります。 リポジトリをスコープとするパッケージには、repo スコープも必要です。 詳細については、「パッケージを削除および復元する」を参照してください。
Scope説明必要な権限
read:packagesGitHub Packagesからのパッケージのダウンロードとインストール読み取り
write:packagesGitHub Packagesへのパッケージのアップロードと公開書き込み
delete:packagesGitHub Packagesからのパッケージの削除admin
repoパッケージをアップロードおよび削除する (write:packages または delete:packages と一緒に)書き込みもしくは読み取り

GitHub Actions ワークフローを作成する際には、GITHUB_TOKEN を使って GitHub Packages にパッケージを公開してインストールでき、個人用アクセス トークンを保存して管理する必要はありません。

詳細については、以下を参照してください:

GitHub Actionsワークフローでのパッケージへのアクセスのメンテナンス

ワークフローがパッケージへのアクセスを確実に維持するためには、確実にワークフローで正しいアクセストークンを使用し、パッケージへのGitHub Actionsアクセスを有効化してください。

GitHub Actions の概念的背景や、ワークフローでパッケージを使用する例については、「GitHub Actions ワークフローを利用した GitHub Packages の管理」を参照してください。

アクセス トークン

  • ワークフロー リポジトリに関連付けられているパッケージを発行するには、GITHUB_TOKEN を使用します。
  • GITHUB_TOKENがアクセスできない他のプライベート リポジトリに関連するパッケージをインストールするには、個人用アクセス トークンを使用してください。

GitHub Actions ワークフローで使用される GITHUB_TOKEN の詳細については、「ワークフローで認証する」を参照してください。

コンテナイメージに対するGitHub Actionsアクセス

ワークフローがコンテナイメージに確実にアクセスできるようにするには、ワークフローが実行されるリポジトリへのGitHub Actionsアクセスを有効化しなければなりません。 この設定は、パッケージの設定ページにあります。 詳細については、「パッケージへのワークフローのアクセスの確保」を参照してください。