DevSecOpsパイプライン構築のAWSワークショップ(COP206-R)に参加してきた #reinvent

2022.11.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。 AWS re:Invent 2022 、楽しんでいますでしょうか。

ラスベガス現地では Session はもちろん、 ラボ環境などで実際に触りながら学ぶ Workshop や、 ホワイトボード上でAWSエキスパートとアーキテクチャの議論などができる Chalk Talk など、 多種多様な学びを得ることができます。

今回はワークショップである Build a complete DevSecOps pipeline on AWS(COP206-R) に参加してきました。 そのレポートを書いていきます。

ワークショップの内容

はじめにワークショップの説明とアーキテクチャ全体像を引用します。

Build a complete DevSecOps pipeline on AWS

Organizations want to deliver applications that prioritize security and governance. In this workshop, learn to build a DevSecOps CI/CD pipeline with security and compliance testing integrated into the development process. Discover how you can create a CI/CD pipeline that delivers tested and secure infrastructure as code using a Git branching strategy for your AWS accounts. Learn to use GitHub Actions to integrate AWS CloudFormation Guard (cfn-guard) to run policy validations and ensure that pipeline deployments are consistent and that they meet your organization’s compliance standards.

img

ざっくり言ってしまうと CloudFormationの CI/CD 環境作成 のワークショップです。

CFnテンプレートを feat ブランチ上で作成します。 feat ブランチに push されるたびに テンプレートが ちゃんとしているかチェック します。 これがCI(Continuous Integration)部分です。

「ちゃんとしている」ことが確認できれば main ブランチへマージします。 この際にAWS環境へCFnスタックが 自動で展開 されます。 これがCD(Continuous Delivery)部分です。

こんな感じの CI/CD 環境を GitHub Actions で実現します。

実際の流れ、雰囲気

最初の10分ぐらいは説明パートです。 Why DevSecOps? Shift Left? のざっくり説明と、 ワークショップで使う要素である CloudFormation Guard, GitHub Actions のざっくり説明がされました。

img

そのあとはひたすら各々のワークショップタイムです。 AWSラボ環境およびガイドを使って環境構築していきます。

img

ワークショップ会場はこんな感じ。 私含め、みなさん各自パイプライン作成に勤しんでいます。

img

詰まったところや不明点があれば、会場内にいるスタッフに聞いて解決できます。 またテーブル席内の参加者同士で話しあうこともカジュアルにできますね。

とりあえず通しでやってみた

このワークショップ自体は最初の説明含め 10:45 AM - 12:45 PM でした。 私は時間内には終わらず、その後会場外で続きをして、 3時間弱ほどで通し終えました。

ワークショップのガイド各章のざっくりとした実施内容は以下のとおりです。

  • Environment Setup … GitやGitHub の初期設定、AWSラボ環境のログインなどです
  • CI/CD Account Aware Pipeline … GitHub Actions の初期設定と ワークフローファイルのアップロードを行います
  • Deploy Template … サンプルのCFnテンプレートをベースに CI/CDを実際に体験します

最終的に実行された GitHub Actions ワークフローは以下のとおり。

img

CI/CDパイプラインの最終成果物は、この myEC2bastion 。

img

展開前の事前チェックや展開の自動化など、 Shift Left ・ CI/CD を体験できました。 DevSecOps の雰囲気も理解できた(気がします)。

細かい部分を見てみる

通しでワークショップを完了した後に、 改めて作成したファイルの中身を見て、 使っているツールなど確認しました。ざっと羅列します。

…と言った感じです。 GitHub Actions用の便利アクションは知らなかったので、とても知見でした。

おわりに

re:Invent ワークショップに初参加してみました。

個人的には特にCloudFormationの解析・展開周りで役に立つ知見が多く、 充実したワークショップでした。 (ただワークショップあるあるですが、サブモニタが欲しくなりますね)

また本ワークショップは比較的「各々が好きに進めるスタイル」のようです。 他にも色々なワークショップがあるようなので、これから参加していきます。 楽しみです。

聞くだけのセッションとはまた違った楽しさがあります。 英語が話せれば同じ席の方とコミュニケーションを取ったり、 もっと充実しそうです。英語もがんばります。