Skip to main content

codespaces の暗号化されたシークレットを管理する

環境変数を介してコードスペースにアクセスする、トークンなどの機密情報を保存できます。

GitHub Codespaces は、GitHub Team または GitHub Enterprise Cloud を使用する Organization で利用できます。 GitHub Free および GitHub Pro プランの個人ユーザーも、GitHub Codespaces を制限付きのベータ リリースとして利用できます。 詳細については、「GitHub's products」を参照してください。

GitHub Codespaces の暗号化されたシークレットについて

コードスペースで使用する個人アカウントに、暗号化されたシークレットを追加できます。 たとえば、次のような機密情報を暗号化されたシークレットとして保存しアクセスするとよいでしょう。

各シークレットにアクセスできるリポジトリを選択できます。 そして、シークレットへのアクセス権があるリポジトリ用に作成した任意のコードスペースでそのシークレットを使用できます。

Once you have created a secret, it will be available when you create a new codespace or restart the codespace. To use a secret that you've just created in a current codespace, you will need to stop the codespace and resume it. For information about stopping the codespace, see "Using the Visual Studio Code Command Palette in GitHub Codespaces."

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

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

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

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

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

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

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

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

シークレットの制限

GitHub Codespaces には最大 100 個のシークレットを保存できます。

シークレットの容量は最大64 KBです。

シークレットを追加する

  1. 任意のページで、右上隅にあるプロファイルの画像をクリックし、次に[設定]をクリックします。

    ユーザバーの [Settings(設定)] アイコン 1. サイドバーの [Code, planning, and automation](コード、計画、および自動化) セクションで、 [ Codespaces] をクリックします。

  2. [Codespaces シークレット] の右側にある [新しいシークレット] をクリックします。 [新しいシークレット] ボタン

  3. [Name] で、シークレットの名前を入力します。 [名前] テキスト ボックス 1. "Value(値)"の下で、シークレットの値を入力してください。 [値] テキストボックス 1. "Repository access(リポジトリアクセス)"ドロップダウンメニューを選択し、続いてシークレットへアクセスしたいリポジトリをクリックしてください。 シークレットにアクセスしたいすべてのリポジトリに対して繰り返してください。 [リポジトリ アクセス] ドロップダウン メニュー

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

シークレットを編集する

既存のシークレットの値を更新したり、シークレットがアクセスできるリポジトリを変更したりすることができます。

  1. 任意のページで、右上隅にあるプロファイルの画像をクリックし、次に[設定]をクリックします。

    ユーザバーの [Settings(設定)] アイコン 1. サイドバーの [Code, planning, and automation](コード、計画、および自動化) セクションで、 [ Codespaces] をクリックします。

  2. [Codespaces シークレット] で、編集するシークレットの右側にある [更新] をクリックします。 [更新] ボタン

  3. [値] で、 [新しい値の入力] をクリックします。 [新しい値の入力] リンク 1. "Value(値)"の下で、シークレットの値を入力してください。 [値] テキストボックス 1. "Repository access(リポジトリアクセス)"ドロップダウンメニューを選択し、続いてシークレットへアクセスしたいリポジトリをクリックしてください。 シークレットにアクセスしたいすべてのリポジトリに対して繰り返してください。 [リポジトリ アクセス] ドロップダウン メニュー

  4. リポジトリへのシークレットのアクセス権を削除する場合は、リポジトリを選択解除します。 リポジトリへのアクセス権を削除するチェックボックス

  5. [変更を保存] をクリックします。

シークレットを削除する

  1. 任意のページで、右上隅にあるプロファイルの画像をクリックし、次に[設定]をクリックします。

    ユーザバーの [Settings(設定)] アイコン 1. サイドバーの [Code, planning, and automation](コード、計画、および自動化) セクションで、 [ Codespaces] をクリックします。

  2. [Codespaces シークレット] で、削除するシークレットの右側にある [削除] をクリックします。 [削除] ボタン

  3. 警告を読み、 [OK] をクリックします。 シークレットの削除の確認

シークレットの使用

シークレットは環境変数としてユーザーのターミナル セッションにエクスポートされます。

エクスポートされたシークレットの値をターミナルに表示する

codespace が構築されて実行されたら、codespace でシークレットを使用できます。 たとえば、次のような場合にシークレットを使用できます。

  • 統合ターミナルまたは ssh セッションからアプリケーションを起動するとき。
  • codespace の実行後に実行される開発コンテナー ライフサイクル スクリプト内。 開発コンテナー ライフサイクル スクリプトについて詳しくは、containers.dev の指定に関するドキュメントをご覧ください。

codespace シークレットは、次の間は使用できません。

  • codespace の構築時間 (つまり、Dockerfile 内またはカスタム エントリ ポイント内)。
  • 開発コンテナー機能内。 詳しくは、containers.dev のfeatures指定に関するドキュメントで 属性をご覧ください。

参考資料