🫐
GitHub ActionsのSecretの値を後から安全に確認する方法
GitHub ActionsのSecretをTerraformでIaC化しようとして、値を参照しようと試行錯誤したときのメモです。その他のアプローチとして、Terraformでimportしたり、GitHub APIを使用してもSecretの値は確認できませんでした。
手順は以下の通りです。
- 公開鍵暗号の鍵を作成
- GitHub Actionsのworkflow上でsecretsを公開鍵で暗号化
- ローカルで秘密鍵を使い復号
1. 公開鍵暗号の鍵を作成
GPG等何でも良いですが、今回はageを使用しました。
% age-keygen -o key.txt
2. GitHub Actionsのworkflow上でsecretsを公開鍵で暗号化
適当にworkflowを作成し、commitします。
name: Load Secrets
on:
push:
jobs:
load-secrets:
runs-on: ubuntu-latest
steps:
- name: Setup age
uses: AnimMouse/setup-age@v1
- run: |
echo "${{ toJson(secrets) }}" | age -r ${{ env.AGE_PUBKEY }} -e -o - | base64
env:
AGE_PUBKEY: <1で生成した公開鍵>
3. ローカルで秘密鍵を使い復号
2のログに出力された値をローカルで復号します。
% echo '<2のログに出力された値>' | base64 --decode | age -d -i key.txt
これでsecretsにあるすべての値がJSONで出力されると思います。
Discussion