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