GitHub Packagesの権限について

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

GitHub PackagesはGitHub Free、GitHub Pro、GitHub FreeのOrganization、GitHub Team、GitHub Enterprise Cloud、GitHub Enterprise Server、GitHub AEで利用できます。


GitHub Packagesは、レガシーのリポジトリごとのプランを使っているアカウントが所有しているプライベートリポジトリでは利用できません。 また、レガシーのリポジトリごとのプランを使っているアカウントは、リポジトリごとに課金されるため、コンテナレジストリにはアクセスできません。 詳しい情報については「[GitHubの製品](/articles/github-s-products)」を参照してください。

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

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

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

以下のGitHub Packagesレジストリは、リポジトリスコープの権限を使います。

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

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

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

現在の処、コンテナレジストリだけがコンテナイメージパッケージに関する詳細な権限を提供しています。

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

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

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

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

権限アクセス権の内容
読み取りパッケージをダウンロードできます。
メタデータの読み取りができます。
書き込みこのパッケージをアップロードおよびダウンロードできます。
パッケージのメタデータの読み取りおよび書き込みができます。
管理このパッケージのアップロード、ダウンロード、削除、管理ができます。
パッケージのメタデータの読み取りおよび書き込みができます。
パッケージに権限を付与できます。

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

パッケージの管理

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

例:

  • リポジトリからパッケージをダウンロードしてインストールするには、トークンはread:packagesスコープを持っていなければならず、ユーザアカウントは読み取り権限を持っていなければなりません。
  • GitHub上のパッケージを削除するには、トークンが少なくともdelete:packagesread:packagesのスコープを持っている必要があります。 repoのスコープがあるパッケージでは、repoスコープも必要です。詳しい情報については、 「パッケージを削除および復元する」を参照してください。
スコープ説明必要な権限
read:packagesGitHub Packagesからのパッケージのダウンロードとインストール読み取り
write:packagesGitHub Packagesへのパッケージのアップロードと公開書き込み
delete:packages
GitHub Packagesからパッケージを削除する
管理
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アクセスを有効化しなければなりません。 この設定は、パッケージの設定ページにあります。 詳しい情報については「パッケージへのワークフローアクセスの保証」を参照してください。

このドキュメントは役立ちましたか?

プライバシーポリシー

これらのドキュメントを素晴らしいものにするのを手伝ってください!

GitHubのすべてのドキュメントはオープンソースです。間違っていたり、はっきりしないところがありましたか?Pull Requestをお送りください。

コントリビューションを行う

OR, コントリビューションの方法を学んでください。

問題がまだ解決していませんか?