Skip to main content

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

パッケージに読み取り、書き込み、管理アクセス権限があるユーザーと、GitHub 上のパッケージの可視性を選びます。

Note

現在、Container registry は GitHub Enterprise Server に対して ベータ 段階であり、変更される可能性があります。

Container registry を使うには、GitHub Packages と Subdomain Isolation の両方を有効にする必要があります。 詳しくは、「コンテナレジストリの利用」を参照してください。

パッケージは、その可視性とアクセス許可をリポジトリから継承できますが、詳細なアクセス許可をサポートするレジストリの場合、リポジトリとは別にパッケージの可視性とアクセス許可を設定できます。

細かいアクセス許可をサポートするレジストリの一覧、パッケージ、PAT のパッケージ関連のスコープ、または GitHub Actions ワークフローのアクセス許可の管理については、「GitHub Packagesの権限について」を参照してください。

アクセス許可の継承について

詳細なアクセス許可をサポートするレジストリでは、パッケージのスコープが個人アカウントまたは Organization に指定されます。 これらのレジストリで、パッケージをリポジトリにリンクせずにパッケージを公開し、パッケージの設定でアクセス許可と可視性を設定することで、パッケージにアクセスできるユーザーを決定できます。

リンク先のリポジトリのアクセス許可をパッケージに継承させるように選ぶこともできます。 詳細については、後述の「パッケージがリポジトリからアクセス許可を継承するかどうかを選ぶ」を参照してください。

リポジトリのスコープが指定されたアクセス許可のみをサポートするレジストリにパッケージを公開すると、パッケージはリポジトリに常にリンクされ、リンク先のリポジトリのアクセス許可を常に継承します。

パッケージの可視性とアクセス許可の設定について

パッケージが詳細なアクセス許可をサポートするレジストリに属している場合、パッケージに対する管理者アクセス許可を持つすべてのユーザーは、パッケージをプライベートまたは公開用に設定でき、組織レベルとリポジトリ レベルで設定されたアクセス許可とは別のアクセス許可をパッケージに付与できます。 詳細なアクセス許可をサポートするレジストリの一覧については、「GitHub Packagesの権限について」をご覧ください。

ほとんどのレジストリでは、パッケージをプルするには、パッケージが公開用かプライベートかに関係なく、personal access token または GITHUB_TOKEN で認証する必要があります。 ただし、Container registry では、公開用 パッケージは匿名アクセスを許可し、認証や CLI 経由でのサインインなしでプルできます。

パッケージを発行すると、パッケージへの管理者アクセス許可を自動的に取得します。 Organization にパッケージを発行する場合、Organization 内の owner ロールを持つすべてのユーザーも、そのパッケージへの管理者アクセス許可を取得します。

個人アカウントにスコープ指定されたパッケージの場合は、任意のユーザーにアクセス ロールを付与できます。 Organization にスコープ指定されたパッケージの場合は、Organization 内の任意のユーザーまたは team にアクセス ロールを付与できます。

GitHub Actions ワークフローを使ってパッケージを管理している場合は、[Actions のアクセス] メニュー オプションを使用して で、ワークフローが格納されているリポジトリへのアクセス ロールを付与できます。 詳しくは、「パッケージのアクセス制御と可視性の設定」を参照してください。

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

Note

REST API を使ってパッケージを削除および復元する GitHub Actions ワークフローの機能は、現在 ベータ 段階であり、変更される可能性があります。

個人アカウントにパッケージへのアクセス権限を構成する

個人アカウントにスコープが指定されているパッケージに対する管理者権限をお持ちの場合は、他のユーザーに読み取り、書き込み、管理者ロールを割り当てることができます。 これらのアクセス許可ロールの詳細については、「アクセス許可の継承について」を参照してください。

パッケージがプライベートまたは内部向けで、Organization にスコープが指定されている場合は、他の Organization メンバーや Team にのみアクセス権を与えることができます。

  1. 検索したら、管理するパッケージの名前をクリックします。

  2. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  3. [アクセスの管理] または [継承されたアクセス] で、 [チームまたはユーザーの招待] をクリックして、アクセス権を付与するユーザーの名前、ユーザー名、またはメール アドレスを入力します。 スコープが個人アカウントに指定されているパッケージへのアクセス権は、チームに付与することができません。

  4. ユーザー名またはチーム名の隣にある [ロール] ドロップダウン メニューを使って、目的のアクセス許可レベルを選びます。

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

Organization のパッケージに対するアクセスの構成

Organization にスコープが指定されているパッケージに対して管理者権限がある場合には、他のユーザーや Team に読み取り、書き込み、管理者ロールを割り当てることができます。 これらのアクセス許可ロールの詳細については、「アクセス許可の継承について」を参照してください。

パッケージがプライベートまたは内部向けで、Organization にスコープが指定されている場合は、他の Organization メンバーや Team にのみアクセス権を与えることができます。

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

  2. 組織名の下にある [パッケージ] タブをクリックします。

    @octo-org のプロファイル ページのスクリーンショット。 [パッケージ] タブがオレンジ色の枠線で強調表示されています。

  3. 検索したら、管理するパッケージの名前をクリックします。

  4. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  5. [アクセスの管理] または [継承されたアクセス] で、 [チームまたはユーザーの招待] をクリックして、アクセス権を付与するユーザーの名前、ユーザー名、またはメール アドレスを入力します。 また、Organization のチーム名を入力して、すべてのチーム メンバーにアクセス権を付与することもできます。

  6. ユーザー名またはチーム名の隣にある [ロール] ドロップダウン メニューを使って、目的のアクセス許可レベルを選びます。

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

パッケージがリポジトリからアクセス許可を継承するかどうかを選ぶ

パッケージをリポジトリにリンクする場合、パッケージがリンク先のリポジトリのアクセス許可を継承するかどうかを選ぶことができます。 パッケージへのアクセスを管理するプロセスが簡素化されるため、パッケージがリポジトリからアクセス許可を継承できるようにすることをお勧めします。

パッケージがリポジトリからアクセス許可を継承する場合、パッケージへのアクセス権を付与または削除するには、リンク先のリポジトリのアクセス許可を構成する必要があります。

Note

パッケージがアクセス許可を取得する方法を変更すると、パッケージの既存のアクセス許可はすべて上書きされます。

スコープが個人アカウントに指定されているパッケージの継承設定を選ぶ

  1. GitHub で、個人アカウントのメイン ページに移動します。

  2. GitHub の右上隅で、プロフィール写真をクリックし、[あなたのプロフィール] をクリックします。

    @octocat のプロファイル写真の下にあるドロップダウン メニューのスクリーンショット。 [自分のプロファイル] が濃いオレンジ色の枠線で囲まれています。

  3. プロファイル ページのヘッダーで、 [パッケージ] タブをクリックします。

  4. 検索したら、管理するパッケージの名前をクリックします。

  5. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  6. パッケージでリンクされたリポジトリからアクセス許可を継承するかどうかを選ぶには、[アクセスの管理] または [継承されたアクセス] で、 [リポジトリからアクセスを継承する (推奨)] をオンまたはオフにします。

    Note

    このセクションの名前は、パッケージがリポジトリからアクセス許可を既に継承しているかどうかによって変わります。

スコープが Organization に指定されているパッケージの継承設定を選ぶ

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

  2. 組織名の下にある [パッケージ] タブをクリックします。

    @octo-org のプロファイル ページのスクリーンショット。 [パッケージ] タブがオレンジ色の枠線で強調表示されています。

  3. 検索したら、管理するパッケージの名前をクリックします。

  4. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  5. パッケージでリンクされたリポジトリからアクセス許可を継承するかどうかを選ぶには、[アクセスの管理] または [継承されたアクセス] で、 [リポジトリからアクセスを継承する (推奨)] をオンまたはオフにします。

    Note

    このセクションの名前は、パッケージがリポジトリからアクセス許可を既に継承しているかどうかによって変わります。

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

個人アカウントまたは Organization にスコープが指定されているパッケージの場合、GitHub Actions ワークフローからパッケージへのアクセスを確保するためには、ワークフローが保存されているリポジトリに対する明示的なアクセスを与えなければなりません。

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

Note

  • パッケージをリポジトリ [Actions のアクセス] メニュー オプションを使用して と同期することは、パッケージをリポジトリに接続することとは異なります。 リポジトリのパッケージへのリンクの詳細については、「リポジトリのパッケージへの接続」を参照してください。
  • permissions キーと packages スコープを使用して、ワークフロー ジョブに対するアクセス許可を制限することができます。 詳しくは、「GITHUB_TOKEN のアクセス許可の制御」をご覧ください。
  • パブリック リポジトリにプライベート パッケージへのアクセスを許可した場合、リポジトリのフォークがプライベート パッケージにアクセスできるようになります。

個人アカウントにスコープが指定されているパッケージに対する GitHub Actions アクセス

  1. 検索したら、管理するパッケージの名前をクリックします。

  2. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  3. 左側のサイドバーで、 [アクションのアクセス] をクリックします。

  4. ワークフローがパッケージに確実にアクセスできるようにするには、ワークフローが保存されるリポジトリを追加する必要があります。 [リポジトリの追加] をクリックして、追加するリポジトリを検索します。

    パッケージ設定ページの [Actions のアクセスの管理] セクションのスクリーンショット。 [リポジトリの追加] ボタンがオレンジ色の枠線で強調されています。

  5. [ロール] ドロップダウン メニューで、パッケージに対するリポジトリの既定のアクセス レベルを選びます。 を使用する

パッケージへのアクセスをさらにカスタマイズするには、「個人アカウントにパッケージへのアクセス権限を設定する」を参照してください。

Organization にスコープが指定されているパッケージに対する GitHub Actions アクセス

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

  2. 組織名の下にある [パッケージ] タブをクリックします。

    @octo-org のプロファイル ページのスクリーンショット。 [パッケージ] タブがオレンジ色の枠線で強調表示されています。

  3. 検索したら、管理するパッケージの名前をクリックします。

  4. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  5. 左側のサイドバーで、 [アクションのアクセス] をクリックします。

  6. [リポジトリの追加] をクリックして、追加するリポジトリを検索します。

    パッケージ設定ページの [Actions のアクセスの管理] セクションのスクリーンショット。 [リポジトリの追加] ボタンがオレンジ色の枠線で強調されています。

  7. [ロール] ドロップダウン メニューで、パッケージに対するリポジトリの既定のアクセス レベルを選びます。 を使用する

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

個人アカウントにパッケージの可視性を設定する

個人アカウントにスコープが指定されているパッケージを初めて公開する場合は、既定の可視性はプライベートであり、パッケージを表示できるのは自分だけです。 アクセス設定を変更すると、プライベートやパブリックのパッケージのアクセス権限を変更できます。

  1. 検索したら、管理するパッケージの名前をクリックします。

  2. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  3. ページ下部の [危険なゾーン] の下にある [可視性の変更] をクリックします。

  4. 可視性設定を選びます。

    • パッケージをすべてのユーザーに表示するには、 [パブリック] を選びます。

      Warning

      公開したパッケージを非公開に戻すことはできません。

    • カスタム選択したユーザーにパッケージを表示するには、 [プライベート] を選びます。

  5. 確認のため、パッケージ名を入力し、 [影響を理解したうえで、パッケージの可視性を変更します] をクリックします。

Organization メンバーのためのパッケージ作成の可視性

詳細なアクセス許可をサポートするレジストリの場合は、Organization のメンバーが既定で公開できるパッケージの可視性を選ぶことができます。 これらのレジストリの一覧については、「GitHub Packagesの権限について」を参照してください。

  1. GitHub の右上隅で、プロフィール写真を選択し、 あなたの組織をクリックします。
  2. 組織の隣の [設定] をクリックします。
  3. 左側の [パッケージ] をクリックします。
  4. [パッケージの作成] で、パブリック、プライベート、または内部のパッケージの作成を有効にするかどうかを選びます。
    • Organization のメンバーがパブリックパッケージを作成できるようにするには、 [パブリック] をクリックします。
    • Organization のメンバーが他の Organization のメンバーにのみ表示されるプライベート コンテナー イメージを作成できるようにするには、 [プライベート] をクリックします。 プライベート パッケージの可視性については、さらに細かくカスタマイズできます。
    • Organization のメンバーがすべての Organization のメンバーに表示される内部パッケージを作成できるようにするには、 [内部] をクリックします。 Enterprise にその Organization が所属している場合、パッケージは Enterprise のすべてのメンバーに見えるようになります。

Organization のパッケージの可視性を構成する

パッケージを最初に公開する際のデフォルトの可視性はプライベートで、パッケージを表示できるのは公開したユーザだけです。 アクセス設定を使用して、パッケージのさまざまなアクセスロールをユーザーや Team に与えることができます。 いったんパッケージをパブリックに設定すると、そのパッケージをプライベートに戻すことはできません。

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

  2. 組織名の下にある [パッケージ] タブをクリックします。

    @octo-org のプロファイル ページのスクリーンショット。 [パッケージ] タブがオレンジ色の枠線で強調表示されています。

  3. 検索したら、管理するパッケージの名前をクリックします。

  4. パッケージのランディング ページの右側にある [ パッケージ設定] をクリックします。

    パッケージのランディング ページのスクリーンショット。 右下隅の [パッケージ設定] がオレンジ色の枠線で強調表示されています。

  5. ページ下部の [危険ゾーン] の下にある [可視性の変更] をクリックし、可視性設定を選びます。

    • パッケージをすべてのユーザーに表示するには、 [パブリック] をクリックします。

      Warning

      公開したパッケージを非公開に戻すことはできません。

    • Organization のカスタム選択したユーザーにパッケージを表示するには、 [プライベート] をクリックします。

    • パッケージを Organization のすべてのメンバーに表示するには、 [内部] をクリックします。 Organization が Enterprise に属している場合、パッケージは Enterprise のすべてのメンバーに表示されます。