概要
Google Cloud Next Tokyo 2023の1日目(11/15)に参加してきました。
Google Cloudのセッションに参加してきたので紹介します。
セッション情報
- セッション番号:D1-APP-07
- タイトル:最新 Google Cloud CI/CDを利用したソフトウェア デリバリー
要約
- パフォーマンスの高いCI/CDはビジネス成果とエンジニアの満足をあげる
- セキュリティコントロールはシフトレフトしてCI/CDの工程の前半に持ってくるとより安定性やスピード向上につながる
- 新しいCloud BuildとCloud Deployを使えば解決でき、安くなったので使ってみて欲しい!
内容
従来のCI/CDが抱える問題
弾力性
- ピーク時にビルドがキューに溜まることでパフォーマンスが悪くなる
ポータビリティ
- 特定のツール専用のプラグインに依存しており、再インストールやサポートがされていない場合にロックインされるリスクがある
メンテナンス
- セキュリティ、パッチの適用、アップグレードなどマネージドサービスを使用していない場合全て自己責任
最新のCI/CDはこれらを解決するためにポータビリティを考慮に入れた設計をし、弾力性を持つマネージドサービスを使う。
ソフトウェアサプライチェーン
ソフトウェアサプライチェーンとは開発者がソフトウェアを作りユーザが使うまでの流れのこと。
サプライチェーン保護の課題
- OSSの急増
・利用するのは昨今の前提になっているが、セキュリティの担保がありメンテナンスがされているか確認しないといけない
- CI/CDの自動化
・CI/CDの自動化が増えると、セキュリティを気にしないデプロイが頻繁にされてしまう
- 多数の攻撃ベクトル
・多数ある攻撃ベクトルを保護するのは困難
- 標準/ツール
・市場にはエンドツーエンドのエンタープライズクラス製品ソリューションはない
S3C(セキュアソフトウェアサプライチェーン)
ソフトウェアサプライチェーンの課題に対してセキュリティのスタンダートになりつつあるもの
来歴
ビルドプロセス、トップレベルのソース、依存関係など、アーティファクトがどのようにビルドされたかに関するメタデータに関すること
- SLSAフレームワーク
・SLSAとは内部フレームワークの外部化を行なったもので整合性向上、改ざん防止などソフトウェアアーティファクトとインフラの保護を目的としたチェックリストのこと
・このサプライチェーンレベルを使用することで来歴を担保
・来歴ドキュメントを作成し署名することができる
・レベル別に分かれていてレベル3ではビルド中ビルド後の改ざんを保護の対象としている
透明性
- SBOM
・SBOMとは送付とウェア部品構成表のこと
- Google Artifact Registry
・Google Cloudツールを使用した部品構成用の作成やサードパーティで作成したSBOMのインジェストが可能
・SBOMに依存形式やバージョンなどJSON形式で出力することができる
影響
ソフトウェアに脆弱性のあるコンポーネントがあっても影響がなければそれ自体は脆弱ではないという考え
- VEX
・VEXは脆弱性を担保するもので文章形式で脆弱性を出力することができる
Google Cloudのソフトウェアサプライチェーンのセキュリティ
・Googleはオープンスタンダードを定義していこうという動きになっている
・プラクティスを長時間かけて作成し、ユーザが段階的に導入できるようにしている
Cloud Workstations
- VPC 内の実際の環境でコードを実行する
- マルチIDEのサポート
- 管理者が定義した環境をチームで共有することで開発の環境差分がない
- セキュアな環境でパワフルなCPUを当てて開発ができる
最新Cloud Build
特徴
- CIはもちろんCDとしても機能し、Terraformも実行することができる
- それぞれのステップでコンテナイメージをプルして実行するので疎結合になる
- 早い段階でシステムのチェックを行うことができ、シフトレフトすることができるためセキュリティを担保することができる
- Binary Authorizationによりイメージのチェックを行い署名することができる
新機能
- Terraformのサポート
- Apiでの構築が可能
- デフォルトマシンタイプが上がったのでパワフルになった
Artifact Registry
- GCRの進化版で様々なものを保存できる
- アーティファクトの保存期間やバージョンを指定することができるため、古いコンテナイメージやバージョンの低いコンテナイメージを自動削除できるようになった
- 標準、リモート、仮想リポジトリを組み合わせて便利に活用できる
まとめ
従来のCI/CDの問題に関して、Google CloudではマネージドCI/CDサービスを提供することで簡単に解決することができる。
パイプラインではシフトレフトのセキュリティを意識して早い段階でセキュリティを組み込むことが大事。
また改ざん防止も導入されていることを確認する。
これらを満たしているパフォーマンスの高いパイプラインはビジネス成果とエンジニアの満足をもたらす。
感想
Google Cloudでユーザのことを大事に考え、安全性を意識し高いレベルの技術を、簡単に扱うことができる方法をユーザに提供していると感じました。
セキュリティに関して知識が足りていなくてもマネージドサービスを使いレベルの高いCI/CDを組み立てることができるので私もぜひ触ってみたいと感じました。
Cloud Workstationsに関しては初めて聞いたサービスだったのですが、コスト面で懸念はあるものの環境構築にリソースを割かずとも開発に集中できると感じたので、これからGoogle Cloudを使っての開発の際はCloud Workstationsで開発環境を構築してチームで開発を進めていきたいと思います。
たくさんの知識やGoogle Cloudについての情報を1セッションで知れたことは、とても有意義な時間になったと思うので参加してよかったです。