Skip to content
Latchkey

GitHub Actions の secret とは?

secret は API キーやパスワードのような暗号化された値で、workflow は読み取れますが GitHub はログに出さないようにします。

パイプラインはしばしば認証情報を必要とします。secret を使うと、機密値をリポジトリ、environment、組織のレベルで保存でき、workflow はそれをコードやログに晒すことなく利用できます。

それは何か

secret は GitHub の設定に保存される暗号化されたキーと値のペアです。workflow は secrets コンテキストを通じてアクセスし、GitHub はその値をログで自動的にマスクします。

Reading a secret
steps:
  - run: ./deploy.sh
    env:
      API_KEY: ${{ secrets.API_KEY }}

どう動くか

secret は保存時に暗号化され、それを参照するステップにのみ注入されます。secret の値がログ出力に現れた場合、GitHub はそれをアスタリスクに置き換えます。

スコープ

  • リポジトリ secret はその repo の workflow で利用できます。
  • 組織 secret は repo 間で共有できます。
  • environment secret は environment ルールの背後でゲートされます。

なぜ重要か

secret は認証情報をソース管理と CI ログから守ります。environment の保護ルールと組み合わせると、最も機密性の高い値に承認ゲートを追加できます。

関連する概念

secret は GITHUB_TOKEN を補完し、しばしば environment でスコープされ、クラウド認証では OIDC で置き換えられることがよくあります。

重要なポイント

  • secret はログでマスクされる暗号化された変数です。
  • スコープはリポジトリ、組織、environment です。
  • ${{ secrets.NAME }} で読みます。

関連ガイド