パッケージのアクセス制御と可視性の設定

コンテナイメージに読み取り、書き込み、管理アクセス権限があるユーザと、GitHub 上のコンテナイメージの可視性を選択します。

GitHub Packages is available with GitHub Free, GitHub Pro, GitHub Free for organizations, GitHub Team, GitHub Enterprise Cloud, GitHub Enterprise Server 3.0 or higher, and GitHub AE.


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

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

現在は、コンテナレジストリでのみ詳細な権限を使うことができます。 詳細な権限は、npmレジストリなど他のパッケージレジストリではサポートされていません。

リポジトリをスコープとするパッケージの権限や、PATに関するパッケージ関連のスコープ、Actionsのワークフローの権限の管理についての詳しい情報は、「GitHub Packagesの権限について」を参照してください。

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

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

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

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

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

個人アカウントにコンテナイメージへのアクセス権限を設定する

ユーザアカウントが所有するコンテナイメージに対する管理者権限がある場合には、他のユーザに読み取り、書き込み、管理者ロールを割り当てることができます。 これらの権限ロールに関する詳しい情報については、コンテナイメージの可視性とアクセス権限」を参照してください。

パッケージがプライベートもしくはインターナルで、Organizationによって所有されているなら、あなたにできることは他のOrganizationメンバーやTeamにアクセス権を与えることだけです。

  1. GitHubで、ユーザアカウントのメインページにアクセスしてください。
  2. In the top right corner of GitHub.com, click your profile photo, then click Your profile. プロフィール画像
  3. プロフィールページで、右上のPackages(パッケージ)をクリックしてください。 プロフィールページのパッケージオプション
  4. パッケージ設定ページで [Invite teams or people] をクリックして、アクセス権を付与するユーザの名前、ユーザ名、またはメールアドレスを入力します。 Team には、ユーザアカウントが所持するコンテナイメージのアクセス権限を与えることができません。 コンテナアクセス権の招待ボタン
  5. ユーザ名または Team 名の隣にある [Role] のドロップダウンメニューで、付与する権限レベルを選択します。 コンテナアクセス権のオプション

選択したユーザには自動的にアクセス権限が与えられ、招待を承諾する必要はありません。

Organization にコンテナイメージへのアクセス権限を設定する

Organization が所有するコンテナイメージに対する管理者権限がある場合には、他のユーザや Team に読み取り、書き込み、管理者ロールを割り当てることができます。 これらの権限ロールに関する詳しい情報については、コンテナイメージの可視性とアクセス権限」を参照してください。

パッケージがプライベートもしくはインターナルで、Organizationによって所有されているなら、あなたにできることは他のOrganizationメンバーやTeamにアクセス権を与えることだけです。

  1. GitHubで、Organizationのメインページにアクセスしてください。

  2. Organization名の下で、Packages(パッケージ)をクリックしてください。

    Packages tab on org landing page

  3. パッケージ設定ページで [Invite teams or people] をクリックして、アクセス権を付与するユーザの名前、ユーザ名、またはメールアドレスを入力します。 また、Organization から Team 名を入力して、全 Team メンバーにアクセスを付与することもできます。 コンテナアクセス権の招待ボタン

  4. ユーザ名または Team 名の隣にある [Role] のドロップダウンメニューで、付与する権限レベルを選択します。 コンテナアクセス権のオプション

選択したユーザや Team には自動的にアクセス権限が与えられ、招待を承諾する必要はありません。

リポジトリからコンテナイメージへのアクセスの継承

GitHub Actionsワークフローを通じたパッケージ管理を単純化するには、デフォルトでリポジトリのアクセス権をコンテナイメージが継承できるようにすることができます。

パッケージのワークフローが保存されているリポジトリのアクセス権限を継承する場合、リポジトリの権限を通じてパッケージへのアクセスを調整できます。

リポジトリが同期されると、パッケージの詳細なアクセス設定にはアクセスできなくなります。 詳細なパッケージのアクセス設定を通じてパッケージの権限をカスタマイズするには、まず同期されたリポジトリを取り除かなければなりません。

  1. GitHubで、Organizationのメインページにアクセスしてください。

  2. Organization名の下で、Packages(パッケージ)をクリックしてください。

    Packages tab on org landing page

  3. "Repository source(リポジトリソース)"の下で、Inherit access from repository (recommended)(アクセスをリポジトリから継承(推奨))を選択してください。 リポジトリアクセスの継承チェックボックス

パッケージへのワークフローのアクセスの確保

GitHub Actionsワークフローがパッケージに確実にアクセスできるようにするためには、ワークフローが保存されているリポジトリに対する明示的なアクセスを与えなければなりません。

指定するリポジトリは、パッケージのソースコードが保存されているリポジトリである必要はありません。 パッケージに対して複数のリポジトリワークフローにアクセスを与えることができます。

ノート: Actionsのアクセスメニューオプションを通じてコンテナイメージをリポジトリと同期することは、コンテナをリポジトリに接続することとは異なります。 リポジトリのコンテナへのリンクに関する詳しい情報については、「リポジトリのパッケージへの接続」を参照してください。

ユーザアカウントが所有するコンテナイメージへのGitHub Actionsのアクセス

  1. GitHubで、ユーザアカウントのメインページにアクセスしてください。
  2. In the top right corner of GitHub.com, click your profile photo, then click Your profile. プロフィール画像
  3. プロフィールページで、右上のPackages(パッケージ)をクリックしてください。 プロフィールページのパッケージオプション
  4. ひだりのサイドバーで、Actions access(Actionsのアクセス)をクリックしてください。 左メニューの"Actionsアクセス"オプション
  5. ワークフローがコンテナパッケージに確実にアクセスできるようにするには、ワークフローが保存されるリポジトリを追加しなければなりません。 Add repository(リポジトリの追加)をクリックし、追加したいリポジトリを検索してください。 "リポジトリの追加"ボタン
  6. "role(ロール)"ドロップダウンメニューを使い、コンテナイメージに対してリポジトリに持たせたいデフォルトのアクセスレベルを選択してください。 リポジトリに与える権限アクセスレベル

コンテナイメージへのアクセスをさらにカスタマイズするには、「個人アカウントのためのコンテナイメージへのアクセスの設定」を参照してください。

Organizationが所有するコンテナイメージへのGitHub Actionsのアクセス

  1. GitHubで、Organizationのメインページにアクセスしてください。

  2. Organization名の下で、Packages(パッケージ)をクリックしてください。

    Packages tab on org landing page

  3. ひだりのサイドバーで、Actions access(Actionsのアクセス)をクリックしてください。 左メニューの"Actionsアクセス"オプション

  4. Add repository(リポジトリの追加)をクリックし、追加したいリポジトリを検索してください。 "リポジトリの追加"ボタン

  5. "role(ロール)"ドロップダウンメニューを使い、リポジトリのメンバーからコンテナイメージに対して持たせたいデフォルトのアクセスレベルを選択してください。 外部のコラボレータは含まれません。 リポジトリに与える権限アクセスレベル

コンテナイメージへのアクセスをさらにカスタマイズするには、「Organizationのためのコンテナイメージへのアクセスの設定」を参照してください。

Ensuring Codespaces access to your package

By default, a codespace can seamlessly access certain packages in the GitHub Container Registry, such as those published in the same repository with the Inherit access option selected. For more information on which access is automatically configured, see "Accessing images stored in GitHub Container Registry."

Otherwise, to ensure that a codespace has access to your package, you must grant access to the repository where the codespace is being launched.

指定するリポジトリは、パッケージのソースコードが保存されているリポジトリである必要はありません。 You can give codespaces in multiple repositories access to a package.

Once you've selected the package you're interested in sharing with codespaces in a repository, you can grant that repo access.

  1. In the right sidebar, click Package settings.

    "Package settings" option in right menu

  2. Under "Manage Codespaces access", click Add repository.

    "リポジトリの追加"ボタン

  3. Search for the repository you want to add.

    "リポジトリの追加"ボタン

  4. Repeat for any additional repositories you would like to allow access.

  5. If the codespaces for a repository no longer need access to an image, you can remove access.

    "Remove repository" button

個人アカウントにコンテナイメージの可視性を設定する

パッケージを最初に公開する際のデフォルトの可視性はプライベートで、パッケージを表示できるのは公開したユーザだけです。 アクセス設定を変更することで、プライベートやパブリックなコンテナイメージのアクセス権限を変更できます。

パブリックパッケージは認証なしに匿名でアクセスできます。 いったんパッケージをパブリックに設定すると、そのパッケージをプライベートに戻すことはできません。

  1. GitHubで、ユーザアカウントのメインページにアクセスしてください。

  2. In the top right corner of GitHub.com, click your profile photo, then click Your profile. プロフィール画像

  3. プロフィールページで、右上のPackages(パッケージ)をクリックしてください。 プロフィールページのパッケージオプション

  4. [Danger Zone] の下で、可視性の設定を選択します。

    • あらゆる人がコンテナイメージを表示できるようにするには、[Make public] をクリックします。

    警告: いったんパッケージをパブリックにすると、プライベートに戻すことはできません。

    - 指定したユーザだけがコンテナイメージを表示できるようにするには、[**Make private**] をクリックします。 ![コンテナ可視性のオプション](/assets/images/help/package-registry/container-visibility-option.png)

Organizationメンバーのためのコンテナ作成の可視性

デフォルトでは、Organizationのメンバーが公開できるコンテナの可視性を選択できます。

  1. In the top right corner of GitHub.com, click your profile photo, then click Your organizations. プロフィールメニューのあなたのOrganization
  2. Organizationの隣のSettings(設定)をクリックしてください。 設定ボタン
  3. 左側にある [Packages] をクリックします。
  4. "Container creation(コンテナ作成)"の下で、パブリック、プライベート、インターナルのコンテナイメージの作成を有効化するかを選択してください。
    • Organization のメンバーがパブリックのコンテナイメージを作成できるようにするには、[Public] をクリックします。
    • Organization のメンバーに、Organization のメンバーのみが表示できるプライベートコンテナイメージの作成ができるようにするには、[Private] をクリックします。 プライベートコンテナイメージの可視性については、さらに細かくカスタマイズできます。
    • To enable organization members to create internal container images that are visible to all organization members, click Internal. If the organization belongs to an enterprise, the container images will be visible to all enterprise members. Organizationのメンバーが公開するコンテナイメージの可視性オプション

Organization にコンテナイメージの可視性を設定する

パッケージを最初に公開する際のデフォルトの可視性はプライベートで、パッケージを表示できるのは公開したユーザだけです。 アクセス設定を使用して、コンテナイメージに対するさまざまなアクセスロールをユーザや Team に付与できます。

パブリックパッケージは認証なしに匿名でアクセスできます。 いったんパッケージをパブリックに設定すると、そのパッケージをプライベートに戻すことはできません。

  1. GitHubで、Organizationのメインページにアクセスしてください。

  2. Organization名の下で、Packages(パッケージ)をクリックしてください。

    Packages tab on org landing page

  3. [Danger Zone] の下で、可視性の設定を選択します。

    • あらゆる人がコンテナイメージを表示できるようにするには、[Make public] をクリックします。

    警告: いったんパッケージをパブリックにすると、プライベートに戻すことはできません。

    - 指定したユーザだけがコンテナイメージを表示できるようにするには、[**Make private**] をクリックします。 ![コンテナ可視性のオプション](/assets/images/help/package-registry/container-visibility-option.png)

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

プライバシーポリシー

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

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

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

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

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