投稿

[GitHub 100日チャレンジ] Day 84 - Secretsと環境変数

GitHub ActionsでAPIキーやトークンを安全に扱うためのSecrets、Variables、envの使い分けを学びます。

[GitHub 100日チャレンジ] Day 84 - Secretsと環境変数

Secretsとは

Secretsは、APIキーやトークンなど公開してはいけない値をGitHubに安全に保存する仕組みです。workflow内では ${{ secrets.NAME }} の形で参照します。

1
2
env:
  API_TOKEN: ${{ secrets.API_TOKEN }}

envとの違い

上のenvは既存workflowに組み込む抜粋です。実際に使う前に対象RepositoryのActions用SecretsへAPI_TOKENという名前で値を登録します。変数を渡す定義だけでは、そのトークンを利用するAPI呼び出しはまだ行われません。

env はworkflowやjob、stepで使う環境変数を定義する場所です。秘密情報そのものを直接書かず、Secretsから渡すようにします。

1
2
3
4
5
jobs:
  deploy:
    runs-on: ubuntu-latest
    env:
      NODE_ENV: production

扱うときの注意

  • トークンをYAMLに直接書かない
  • logに秘密情報を出さない
  • 必要なjobだけに渡す
  • 権限を最小限にする

今日のゴール

GitHub Actionsでは、公開できる値と秘密情報を分けて扱います。APIキーやdeploy tokenはSecretsに置き、workflowには直接書かないようにしましょう。

この投稿は投稿者によって CC BY 4.0 の下でライセンスされています。