GitHub ActionsでGitHub Secretsを使う方法

GitHub ActionsでGitHub Secretsを使う方法

GitHub Actionsで機密情報を扱う場合、機密情報はGitHub SecretsもしくはEnvironment Secretsに格納するのがベストプラクティスです。
※スコープは、全てのブランチから参照可能

.github/workflows/xxx.ymlファイルに機密情報のべた書きは絶対NGです。

GitHub Secretsに機密情報設定

GitHub Secretsに機密情報設定する手順です。

「Settings」をクリックします。

「Secrets and variables」ー「Actions」をクリックします。

「New repository secret」をクリックします。

NameとSecretを入力して「Add secret」をクリックすれば完了です。

GitHub Secretsで設定したSecretの呼び出し方

設定したSecretは、${{ secrets.変数名 }}という形式で呼び出します。

Secretの値に!や&などが入っている場合、直接展開すると意図せぬ動作をすることがあるので、お作法として環境変数(env)に割り当てて使います。

workflowファイル作成(.yml,.yaml)

Secretをechoして伏字になる事を確認するworkflowファイル作成します。

mainにpushする事をトリガーにします。

name: Simple API Key Check

on:
  push:
    branches:
      - main  # main系ブランチにpushされた時に実行

jobs:
  check-secret:
    runs-on: ubuntu-latest
    steps:
      - name: Environment Variable Echo Test
        env:
          API_TOKEN: ${{ secrets.APIKEY }} # GitHub Secretsに登録した「API_KEY」を環境変数にセット
        run: |
          echo "GitHub Actionsが起動しました。"
          echo "Secretの値を確認します。"
          echo "VALUE: $API_TOKEN"

ログ確認すると、***で伏字になっており確認できないことがわかります。

ブランチごとに機密情報の切り替え

テスト環境と本番環境で機密情報が異なる場合、あらかじめ2つ登録(PROD_APIKEYとTEST_APIKEY)しておき、github.ref_name(ブランチ名)で分岐して環境変数に設定する方法があります。

name: Simple API Key Check

on:
  push:
    branches:
      - production

jobs:
  check-secret:
    runs-on: ubuntu-latest
    steps:
      - name: Environment Variable Echo Test
        env:
          # ブランチ名で分岐し、設定する値を変える
          API_TOKEN: ${{ github.ref_name == 'production' && secrets.PROD_APIKEY || secrets.TEST_APIKEY }}
          # ...省略

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました