0
Help us understand the problem. What are the problem?

posted at

GitHub Actionsで機密情報を扱う方法

GitHub ActionsでAPIキーなど機密情報を扱う場合、Secretを使うと安全に利用できます。

Secretには2種類あり、Environment SecretとRepository Secretです。Environment Secretは本番環境や検証環境などで区別して利用できます。Repository Secretはリポジトリ内で同一の値を利用できます。

2つのSecretはActionsでの使い方が違います。
GitHub上での設定方法が似ており、微妙に異なる利用方法を誤ると値を取得できないので、どちらを使うのか気をつけてください。

Environment Secret

追加方法

リポジトリのSettings
2022-04-26_21h46_16.png

左ペインのEnvironments
2022-04-26_21h47_43.png

右上の「New environment」
2022-04-26_21h48_52.png

既存のものに追加する場合は、Environment名のリンクをクリックします。

環境名(production, stagingなど)を入力し、「Configure environment」ボタンをクリック
2022-04-26_21h49_53.png

ページ下部の「Environment secrets」内の「Add Secret」をクリック
2022-04-26_21h52_14.png

Name、Valueを入力し、「Add secret」をクリック
2022-04-26_21h57_15.png

Environment secretsに追加したNameがあれば完了。
2022-04-26_21h54_28.png

追加後にValueの内容は表示できません。Updateボタンから更新はできます。

Actionsでの使い方

# .github/workflows/****.yml
jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    environment: 
      name: production  # 環境名を指定(記載しないとSecretを取得不可)
    steps:
      - run: |
      # secretは ${{ secrets.<Name> }} 形式で取得可能
          echo ${{ secrets.API_KEY }}  

Repository Secret

追加方法

リポジトリのSettings
2022-04-26_21h46_16.png

左ペインのSecrets→Actions
2022-04-26_22h04_37.png

右上の「New repository secret」をクリック
2022-04-26_22h05_35.png

Name、Valueを入力し、「Add secret」をクリック
2022-04-26_22h06_22.png

Repository Secretsに追加したNameがあれば完了
2022-04-26_22h07_16.png

追加後にValueの内容は表示できません。Updateボタンから更新はできます。

Actionsでの使い方

# .github/workflows/****.yml
jobs:
  check-bats-version:
    runs-on: ubuntu-latest
    steps:
      - run: |
      # secretは ${{ secrets.<Name> }} 形式で取得可能
          echo ${{ secrets.APP_ID }}  

Environment Secretのように、YAML内で上記以外の設定は不要です。

まとめ

Secretには2種類あり、Environment SecretとRepository Secretがあります。Environment SecretはEnvironmentsから追加可能です。Repository SecretはSecrets→Actionsから追加可能です。
Actionsではいずれも${{ secrets.<Secret名> }}で参照可能です。Environment Secretの場合は、environmentで環境名を指定することを忘れないでください。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?