Builder恩塚伸一郎2021.02.13113この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。太るときも痩せるときも10kg単位は当たり前のオンジーです。カスケードパイプラインを組んでみました。カスケードパイプラインって何?cascadeの意味を調べてみると「(連続した)小さな滝」と出てきます。カスケードパイプラインは上流のパイプラインで作成されたイメージを使って下流のパイプラインで更にコンポーネントを実行してイメージを作成する一連の流れのことです。こちらの図が分かりやすいです。Builder左側(上流パイプライン)で作成されたセキュアなイメージを使って右側(下流パイプライン)で分岐してそれぞれのイメージを作成している図になります。やってみた上流でセキュリティを向上させたイメージを作成して、下流で必要なミドルウェアを設定するというケースを想定してやってみます。今回はサクッと試すためにAWSから提供されているSTIGコンポーネントを使用します。準拠するようにセキュリティ設定を実施してくれるコンポーネントになります。low,medium,highとあり順に適用される項目が増えます。﻿まずはSTIGコンポーネントを選択したレシピを作成します。レシピ名は「upstream-stig-recipe」としました。パイプラインの設定でイメージの命名を設定しない場合このレシピ名がそのまま使われます。このレシピを選択したパイプラインを作成し実行、しばらく待つとイメージができました。(バージョン1.0.0)下流パイプラインの作成まずはレシピ作ります。「イメージのオリジン」で上流で作られたイメージを選択することができます。バージョンを使用する」を選択することで上流パイプラインのレシピのバージョンが上がってイメージが更新されたとしても最新のものを勝手に選んでくれることになります。下流のコンポーネントは適当にapache,tomcatをインストールするものにしました。レシピ名は「downstream-apache-tomcat-recipe」としました。レシピが準備できたので下流パイプラインを作成します。レシピ選択画面で先ほどのレシピを選択するソースイメージのバージョン部分が「x.x.x」となっており最新のものを選択する設定になっていることが分かります!ということでこのまま下流パイプラインも作成・実行します。無事にイメージが作成されました。作成されるイメージのバージョンを上げてみる本当に上流のバージョンが上がるとそれを使って下流パイプラインが実行されるかを確認してみます。STIGコンポーネントをlow→mediumに変更してバージョン2.0.0のレシピを作成します。上流パイプラインの編集から新しいバージョンのレシピを選択して保存します。上流パイプラインを実行します。無事にバージョンが上がりよりセキュアになったイメージができました!ということで下流パイプラインはなにも設定をいじらずに再実行します。Builderの管理画面から確認できなかったので少し慌てたんですがCloudTrailのRunInstancesイベントから最新のイメージが選択されてEC2が起動されていることが無事に確認できました!下流のイメージのバージョン1.0.0の中に再実行によって新しくイメージが追加されていることが確認できました。おわり今回は検証なので下流での分岐もない上にパイプラインも手動で実行していましたが、パイプラインをスケジュール実行しておりかつ下流で分岐している様な構成の場合はカスケードパイプラインで最新のイメージを自動的に使うことは効率化・ミス防止の面で効果が大きそうです。builderにてイメージパイプライン実行時に脆弱性スキャンが可能になりました。