githubのワークフローに設定したキー紛失
事故で環境変数を喪失しました。はい。シークレットがわかりません。
でも、Githubのワークフローには残ってるんです。使えているのです。なんとかしてGithubワークフローで使っているシークレット変数を取り出して、パスワードをリカバリーして取り出しできないか、検討した。
githubのワークフローに設定したキーを取り出す。
方法が2つある。
- 方法1 Artifactsとして成果物として取り出す。
- 方法2 SSHで強引に入って、強奪する。
Artifactsでいいのなら、Artifactsで取り出せばいいけど。Artifactsは残り続けるので管理がめんどくさい。
私は、方法2が楽でいいと思った。
github actions のインスタンスにSSHを追加してログインできるようにしてくれるツールが有る。
mxschmitt/action-tmate@v3
を使えば良い。
いったん、echo で環境を書き出しておいて、SSHでログインして取り出せば楽。
こんな感じ。
name: development-ssh on: push: branch: - dev jobs: run-ssh: runs-on: ubuntu-latest permissions: read-all steps: - name: checkout uses: actions/checkout@v3 - name : env_vars run: echo MY_TOKEN1=${{ secrets.MY_TOKEN1 }} >> aenv echo MY_SECERTS=${{ secrets.MY_SECRETS }} >> aenv - name: Setup tmate session uses: mxschmitt/action-tmate@v3
ワークフローを起動するとSSHが出てくるので、 そこへSSHしてcat する
ssh RANDSTRING@sfo2.tmate.io 'cat aenv'
これで、出力できて、無事にgithubにプロジェクト・ワークフローに設定した。秘密鍵を取り出すことができた。
参考資料
https://qiita.com/shonansurvivors/items/cb8902acfe5c3a1b3ca0 https://blog.n-z.jp/blog/2019-11-10-github-actions-tmate.html