デプロイ時にssh-agentを使ってみた

Web技術メモ

はじめに

開発中のWebアプリで、CI/CDのコードをリファクタしていました。

その中で、セキュリティに関わる改善も行ったので、メモとして残しておきます。

問題

GitHub Actions で EC2 にデプロイする際、秘密鍵をファイルに書き出していました。

「これってセキュリティ的にどうなのかな?」「もっとスマートにできないのかな?」

ということで、リファクタをしてみます。

# ❌Before
- name: Write key
  run: |
    echo "${{ secrets.SSH_PRIVATE_KEY }}" > key.pem
    chmod 600 key.pem

対策

秘密鍵を ssh-agent に登録することで、物理的にファイルを生成したり権限を調整する必要がなくなります。

また、以降の ssh や git の操作は自動的にこの鍵を利用してくれるため、設定もシンプルになります。

# ✅After
- name: Setup SSH
  uses: webfactory/ssh-agent@v0.9.0
  with:
    ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}

テスト

ワークフローの実行結果がグリーンであることを確認します。

テスト実行結果:グリーン

さいごに

デプロイワークフローで秘密鍵を使うなら、webfactory/ssh-agent を使うのが安全でシンプルです。

GitHub - webfactory/ssh-agent: GitHub Action to setup `ssh-agent` with a private key
GitHub Action to setup `ssh-agent` with a private key - webfactory/ssh-agent

タイトルとURLをコピーしました