それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

github のワークフローでシークレット(環境変数)を取り出す方法のメモ

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