書籍情報
📖 この本で学べること
業務で GitHub Actions を利用しているものの、なんとなく動いているだけの状態になっている部分も多く、もっと改善できるのではと思い本書を読んだ。
本書は基礎・実践・応用の3部構成になっており、基礎編ではGithub Actionsの全体の機能を網羅的に把握することが出来た(workflowやactionの共通化などまでカバーしているのがありがたい)。
実践編ではCI/CDをどの様に回していけば良いのかが具体的に記載されている。Depandabotでのパッケージ更新から、Github ReleasesやPackagesなどによるリリース、そしてAWSなど外部連携についても理解できる。
最後の応用編では、昨今問題になっているGithub Actionsでのパッケージ更新等によるセキュリティリスクなどについて、どう管理すべきかがざっくり把握できるようになっていてとてもためになった。
👨💻 対象読者
- GitHub Actions を業務で利用しているがよくわかっていない人
- GitHub Actions のセキュリティについてどう見直せば良いのか悩んでいる人
💡本書で新しく知ったこと
-
中間環境変数
GitHub Context の値を直接 Shell 展開せず、一度環境変数へ格納して扱うパターン。可読性向上だけでなく、悪意ある文字列混入によるスクリプトインジェクション対策としても重要だった。 -
secretsのマスクは完全一致のみ
GitHub Actions の Secret Masking は完全一致でしか動作しない。文字列結合や加工後はマスク対象外になる可能性があり、ログ出力時はかなり注意が必要。 -
GitHub Packages
Docker Image や npm package などを GitHub 上で管理できる仕組み。Actions と連携して build → push → deploy を GitHub 内で完結させやすい。 -
ShellCheck
Shell Script 用の静的解析ツール。未定義変数、危険なクォート、省略記法などを検知でき、CI に組み込むことで Bash Script の事故を減らせる。 -
Trivy
コンテナイメージ・OS パッケージ・ライブラリの脆弱性を検査できるセキュリティスキャンツール。CI に組み込むことで、危険な依存関係をデプロイ前に検知できる。 -
Conftest
Open Policy Agent(OPA)ベースの Policy as Code ツール。Terraform や Kubernetes Manifest に対して「禁止設定」をコード化して検査できる。 -
Flyway
DB Migration 管理ツール。SQL ベースで schema 変更履歴を管理でき、CI/CD と組み合わせることで DB 変更を安全に自動適用しやすくなる。