自作しているAPIのデプロイ周りを変えようとしていましたら、なんかEnvironment variables
ってものが追加されていたので使ってみました
GitHub > リポジトリ > Settings > Environments の中にある環境変数です
GitHub Actionsとかで使えるあれです
何の参考にもならないと思いますが、テストで作ったリポジトリはこちらです
シークレット と 環境変数 にはこんな値を設定しています
Environment secrets | Environment variables |
---|---|
actionsの実行ファイル
name: Environment の secrets と variables の違いを見るテスト
on: push
env:
THIS_IS_ENVIRONMENT_SECRETS: ${{ secrets.THIS_IS_ENVIRONMENT_SECRETS }}
THIS_IS_ENVIRONMENT_VARIABLES: ${{ vars.THIS_IS_ENVIRONMENT_VARIABLES }}
jobs:
echo:
runs-on: ubuntu-latest
environment: PROD
steps:
- name: THIS_IS_ENVIRONMENT_SECRETS の 値を表示
run: echo ${THIS_IS_ENVIRONMENT_SECRETS}
- name: THIS_IS_ENVIRONMENT_VARIABLES の 値を表示
run: echo ${THIS_IS_ENVIRONMENT_VARIABLES}
環境変数(Environment variables
) を取得する場合は、vars.***
を使って参照するみたいです
GitHub Actionsを実行してみた結果
結果 | |
---|---|
Environments secrets | 値がマスクされる(***) |
Environments variables | 値がそのまま表示される |
まとめ
- secrets はGAで利用しても値はマスクされるみたいです(前々からですね)
- variables はGAで利用する場合でも値はそのまま表示されるみたいです
また、環境変数の方は設定されている値を設定画面からも確認することが出来るみたいです
Publicリポジトリで開発している場合ですと、AWSやGCPのトークンが見えてしまうのは問題ですが
Privateリポジトリ(とくに会社や組織)で開発している場合ですと、secretsで登録したやつは値が見えないため、別途社内Wikiとかにシークレットの内容を記載しているなら、variablesを使ってみるのもありかもしれません