Skip to main content

リポジトリまたは Organization の開発環境シークレットの管理

開発環境シークレットを使うと、GitHub Codespaces で使うために機密情報を Organization またはリポジトリに格納することができます。

この機能を使用できるユーザーについて

To manage development environment secrets for GitHub Codespaces for an organization, you must be an organization owner.

Development environment secrets are available in all public repositories, in private repositories owned by personal accounts, and in private repositories owned by organizations on GitHub Team or GitHub Enterprise plans. For more information, see GitHub のプラン.

シークレットについて

開発環境シークレットは 暗号化された 環境変数で、組織、リポジトリ、または個人アカウントの GitHub Codespaces 設定で作成します。 この記事では、Organization シークレットとリポジトリ シークレットを管理する方法について説明します。 ユーザー固有シークレットの作成に関する詳細については、「GitHub Codespaces のアカウント固有のシークレットの管理」を参照してください。

作成した開発環境シークレットは、GitHub Codespaces で使用できます。 GitHub は、libsodium のシールド ボックス を使って、GitHub に到達する前に秘密を暗号化し、コード空間で使うときだけ復号化します。

Organization シークレットを使用すると、複数のリポジトリ間でシークレットを共有できるため、重複するシークレットを作成する必要が軽減されます。 アクセスポリシーを使用して、Organization のシークレットを使用できるリポジトリを制御できます。

シークレットを作成すると、新しいcodespaceを作成したり、codespaceを再起動したりすれば、利用できるようになります。 GitHub でシークレットを作成しており、現在実行している codespace でそれを使う場合、codespace を停止し、再起動します。 codespace の停止については、「GitHub Codespaces で Visual Studio Code のコマンド パレットを使う」を参照してください。

シークレットに名前を付ける

シークレットの名前には次のルールが適用されます。

  • シークレット名には、英数字 ([a-z][A-Z][0-9]) またはアンダースコア (_) のみを含めることができます。 スペースは使用できません。

  • シークレット名の最初を GITHUB_ プレフィックスにすることはできません。

  • シークレット名の最初を数字にすることはできません。

  • シークレット名は大文字と小文字を区別しません。

  • シークレット名は、作成されたレベルで一意である必要があります。 たとえば、リポジトリレベルで作成されたシークレットは、そのリポジトリ内で一意の名前である必要があり、Organization レベルで作成されたシークレットは、そのレベルで一意の名前である必要があります。

    複数のレベルで同じ名前のシークレットが存在する場合、最も低いレベルのシークレットが優先されます。 たとえば、Organization レベルのシークレット名がリポジトリレベルのシークレット名と同じ場合、リポジトリレベルのシークレット名が優先されます。

シークレットの制限

Organization ごとに最大 100 個のシークレット、リポジトリごとに最大 100 個のシークレットを保存できます。

シークレットのサイズは最大 48 KB です。

プロジェクトには、特定のユーザー シークレットが必要になることがあります。 たとえば、codespace でアプリケーションを実行するとき、場合によっては、個人の API キーを入力する必要があります。 その場合、開発コンテナー構成で推奨シークレットを指定できます。 その後、詳細オプションのページで codespace を作成するとき、個人のシークレットをまだ作成していないなら、シークレットの値を入力するように求められます。 codespace で使うシークレット値を入力すると、そのシークレットは Codespaces の個人設定に追加されます。 今後、このリポジトリで codespace を作成するとき、このシークレットの値を入力する必要がありません。 詳しくは、「リポジトリに推奨シークレットを指定する」をご覧ください。

リポジトリにシークレットを追加する

Organization リポジトリの開発環境シークレットを作成するには、管理者アクセス権が必要です。

  1. GitHub で、リポジトリのメイン ページに移動します。

  2. リポジトリ名の下にある [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    タブを示すリポジトリ ヘッダーのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で強調表示されています。

  3. サイドバーの [セキュリティ] セクションで、[ シークレットと変数] を選択してから、[Codespaces] をクリックします。

  4. ページの上部にある [新しいリポジトリ シークレット] をクリックします。

  5. [名前] 入力ボックスにシークレットの名前を入力します。

  6. シークレットの値を入力します。

  7. [シークレットの追加] をクリックします。

Organization にシークレットを追加する

Organization で開発環境シークレットを作成する場合、ポリシーを使用して、そのシークレットにアクセスできるリポジトリを制限できます。 たとえば、すべてのリポジトリにアクセスを許可したり、プライベート リポジトリまたは指定したリポジトリ のリストのみにアクセスを制限したりできます。

組織レベルでシークレットを作成するには、admin アクセス権が必要です。

  1. GitHub で、organization のメイン ページに移動します。

  2. 組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. サイドバーの [セキュリティ] セクションで、[ シークレットと変数] を選択してから、[Codespaces] をクリックします。

  4. ページの上部にある [新しいシークレット] をクリックします。

  5. [名前] 入力ボックスにシークレットの名前を入力します。

  6. シークレットの [値] を入力します。

  7. [リポジトリアクセス] ドロップダウンリストから、アクセスポリシーを選びます。

  8. [シークレットの追加] をクリックします。

Organization レベルのシークレットへのアクセスの確認

Organization 内の開発環境シークレットに適用されているアクセスポリシーを確認できます。

  1. GitHub で、organization のメイン ページに移動します。

  2. 組織名の下で、 [設定] をクリックします。 [設定] タブが表示されない場合は、 [] ドロップダウン メニューを選び、 [設定] をクリックします。

    組織のプロファイルのタブのスクリーンショット。 [設定] タブが濃いオレンジ色の枠線で囲まれています。

  3. サイドバーの [セキュリティ] セクションで、[ シークレットと変数] を選択してから、[Codespaces] をクリックします。

  4. 必要に応じて、シークレットごとに構成されたアクセス許可を表示または編集するには、シークレットの右側にある をクリックします。

参考資料