🔐
【セキュリティ対策】GitHub Actionsのアクションをハッシュ固定しつつDependabotで自動更新する
事の始まり
前回カンファレンスのレポートを投稿しました。
ここでのセッションで多くの登壇者が言われていたのがセキュリティで、個人的にも一番手軽にできる対策だと思ったのが、「Github Actionsのアクションをコミットハッシュで指定する」でした。自分でも小さなリポジトリをOSSで公開していて、かつGitHub Actionsも使っていたので、他人事だと思わず自分も対策する事にしました。「誰も使ってないし」とか「小さいリポジトリだし」と思うのは危険です。そういったリポジトリほど狙われますし、そこを土台に別のリポジトリへの攻撃に繋がる事もあります。きちんと対策しましょう。
アクションの指定をバージョンからコミットハッシュに
こちらのPRで変更しました。タグの取得方法としてはGitHub CLIを使うと簡単です。
gh api repos/actions/checkout/git/ref/tags/v6.0.2 | jq -r .object.sha
de0fac2e4500dabe0009e67214ff5f5447ce83dd
こんな感じで取得できるので書き換えていきます。
ただハッシュで指定してしまうとアクションの更新があった時に手動になってしまいます。そこで出てくるのがDependabotです。
Dependabotで自動更新
Dependabotといえばパッケージの依存関係チェックですが、Github Actions自体もチェックしてくれます。私もこれをするまではnpmとかpipだけだと思っていました。
設定のサンプルは以下になります。
これを使うと使用しているアクションの更新があればPRを作成してくれますので、これでハッシュ固定にしてセキュリティを確立しつつ自動更新もできるという最高の状態になります。
セキュリティを維持しつつ良い開発ライフを!!
Discussion
ハッシュによるピン留めなら pinact が楽です。
dependabot を設定するなら cooldown と groups は設定したほうが幸せになれるでしょう。