パッケージの権限は、リポジトリスコープかユーザ/Organizationスコープです。
リポジトリスコープのパッケージの権限
リポジトリスコープのパッケージは、パッケージを所有するリポジトリの権限と可視性を継承します。 リポジトリをスコープとするパッケージは、リポジトリのメインページにアクセスし、ページ右にあるパッケージリンクをクリックすれば見つかります。 詳しい情報については「リポジトリのパッケージへの接続」を参照してください。
以下のGitHub Packagesレジストリは、リポジトリスコープの権限を使います。
- npmレジストリ
- RubyGemsレジストリ
- Apache Mavenレジストリ
- NuGetレジストリ
ユーザ/Organizationスコープのパッケージの詳細な権限
詳細な権限を持つパッケージは、個人ユーザもしくはOrganizationアカウントをスコープとします。 パッケージのアクセス制御と可視性は、パッケージに接続された(あるいはリンクされた)リポジトリは別個に変更できます。
現在の処、コンテナレジストリだけがコンテナイメージパッケージに関する詳細な権限を提供しています。
コンテナイメージの可視性とアクセス権限
コンテナイメージへの管理権限を持っているなら、そのコンテナイメージへのアクセス権限をプライベートもしくはパブリックに設定できます。 パブリックイメージは匿名でアクセスでき、認証や CLI 経由でサインインすることなくプルできます。
あなたが管理者であれば、Organization レベルおよびリポジトリレベルに設定した権限とは別に、コンテナイメージに対してアクセス権限を付与することもできます。
For container images published and owned by a personal account, you can give any person an access role. Organization が所有し公開しているコンテナイメージには、Organization 内の任意の Team にアクセスロールを付与できます。
権限 | アクセス権の内容 |
---|---|
Read | パッケージをダウンロードできます。 メタデータの読み取りができます。 |
Write | このパッケージをアップロードおよびダウンロードできます。 パッケージのメタデータの読み取りおよび書き込みができます。 |
Admin | このパッケージのアップロード、ダウンロード、削除、管理ができます。 パッケージのメタデータの読み取りおよび書き込みができます。 パッケージに権限を付与できます。 |
詳しい情報については「パッケージのアクセス制御と可視性」を参照してください。
パッケージの管理
パッケージレジストリでホストされているパッケージを使用もしくは管理するためには、適切なスコープを持つトークンを使わなければならず、個人アカウントが適切な権限を持っていなければなりません。
例:
- リポジトリからパッケージをダウンロードしてインストールするには、トークンは
read:packages
スコープを持っていなければならず、ユーザアカウントは読み取り権限を持っていなければなりません。 - |GitHub上のパッケージを削除するには、トークンが少なくとも
delete:packages
とread:packages
のスコープを持っている必要があります。 リポジトリをスコープとするパッケージには、repo
スコープも必要です。 詳しい情報については「パッケージの削除と復元」を参照してください。 | スコープ | 説明 | 必要な権限 | | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- | ------------ | |read:packages
| GitHub Packagesからのパッケージのダウンロードとインストール | 読み取り | |write:packages
| GitHub Packagesへのパッケージのアップロードと公開 | 書き込み | |delete:packages
| | | | GitHub Packagesからのパッケージの削除 | | | | 管理 | | | |repo
| パッケージのアップロードと削除 (write:packages
またはdelete:packages
と併せて) | 書き込みもしくは読み取り |
GitHub Actionsワークフローを作成する際には、GITHUB_TOKEN
を使ってGitHub Packagesにパッケージを公開してインストールでき、個人アクセストークンを保存して管理する必要はありません。
詳しい情報については以下を参照してください:
- 「パッケージのアクセス制御と可視性」
- 「GitHub Actionsでのパッケージの公開とインストール」
- 個人アクセストークンを作成する
- GDPR違反、APIキー、個人を識別する情報といったセンシティブなデータを含むパッケージを公開した時
GitHub Actionsワークフローでのパッケージへのアクセスのメンテナンス
ワークフローがパッケージへのアクセスを確実に維持するためには、確実にワークフローで正しいアクセストークンを使用し、パッケージへのGitHub Actionsアクセスを有効化してください。
GitHub Actionsに関する概念的な背景や、ワークフローでのパッケージの使用例については、「GitHub Actionsワークフローを使用したGitHub Packagesの管理」を参照してください。
アクセストークン
- ワークフローリポジトリに関連するパッケージを公開するには、
GITHUB_TOKEN
を使用してください。 GITHUB_TOKEN
がアクセスできない他のプライベートリポジトリに関連するパッケージをインストールするには、個人アクセストークンを使用してください。
GitHub Actionsワークフローで使われるGITHUB_TOKEN
に関する詳しい情報については「ワークフローでの認証」を参照してください。
コンテナイメージに対するGitHub Actionsアクセス
ワークフローがコンテナイメージに確実にアクセスできるようにするには、ワークフローが実行されるリポジトリへのGitHub Actionsアクセスを有効化しなければなりません。 この設定は、パッケージの設定ページにあります。 詳しい情報については「パッケージへのワークフローアクセスの保証」を参照してください。