Appearance
3. CI/CDパイプラインの実行
更新された CI/CD パイプラインを実行することで、既存の構成に機能を追加します。
3-1. AssemblyLineの確認(gcp-api-backend)
アプリケーションの公開範囲を制限したい
Option と コンテナの脆弱性検知をしたい
Option を追加したことで gcp-api-backend
の QVS Config が更新され、更新後の QVS Config に基づいて gcp-api-backend
の CI/CD パイプラインが更新されました。gcp-api-backend
の AssemblyLine を確認して、更新された CI/CD パイプラインの内容を確認してみましょう。
左のメニューから
AssemblyLine
を選択します。AssemblyLine 一覧画面に移動したら、一覧より
api-backend
の AssemblyLine を選択します。AssemblyLine が表示されたら、
DETAIL
ボタンをクリックして AssemblyLine 詳細画面へ移動します。
API Backendのデプロイでは、gcp-api-backend
の AssemblyLine を構成する Pipeline Stages として、以下の Pipeline が登録されていました。
build
deploy
更新後の AssemblyLine の Pipeline Stages を確認すると、これらの Pipeline の他に scan
Pipeline が追加されていることがわかります。この scan
Pipeline は、コンテナの脆弱性検知をしたい
Option を選択したことによって追加された、コンテナイメージの脆弱性診断を実施する機能を持った Pipeline になります。
また、scan
カードが、build
カードと deploy
カードの間に位置していることがわかります。コンテナの脆弱性検知をしたい
Option を追加したことで、各 Pipeline がこのような順序で実行されるように AssemblyLine が更新されています。
この AssemblyLine を実行することで、「API Backend アプリケーションのコンテナイメージをビルドし、ビルドされたイメージの脆弱性診断を実施した後、API Backend アプリケーションおよび各種クラウドリソースをデプロイする」という CI/CD パイプラインを実現できるようになりました。
3-2. Deployment Configの確認(gcp-api-backend)
gcp-api-backend
の AssemblyLine に scan
Pipeline が追加されたので、scan
Pipeline に必要なパラメータが不足していないかを確認します。
AssemblyLine の Pipeline Stages で
scan
カードを選択します。画面下部のパラメータ一覧に、赤色となっている箇所が無いかを確認します。
今回は、画面下部のパラメータ一覧がすべて青色になっているため、Deployment Config でパラメータを追加登録する必要はありません。
同様に、Pipeline Stages で
build
カードを選択し、画面下部のパラメータ一覧がすべて青色になっていることを確認します。同様に、Pipeline Stages で
deploy
カードを選択し、画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。パラメータ一覧に、これまで存在していなかったパラメータ
cloudArmorAllowedSourceIps
が追加されていることがわかります。アプリケーションの公開範囲を制限したい
Option を選択したことで、この新しいパラメータがdeploy
Pipeline に追加されました。AssemblyLine を実行するには、Deployment Config を編集してこのパラメータを新たに登録する必要があります。EDIT DEPLOYMENT CONFIG
ボタンを押下し、表示される Edit Deployment Config ダイアログで、設定が必要なパラメータを追加します。今回設定する必要のあるパラメータは、以下の通りです。
パラメータ 説明 cloudArmorAllowedSourceIps アプリケーションへのアクセスを許可したいソースIPアドレスまたはCIDR範囲 以下のようにパラメータを追加します。入力内容は適宜読み替えてください。
yamlcloudArmorAllowedSourceIps: xxx.xxx.xxx.xxx
SAVE
ボタンを押下し、ダイアログを閉じます。Pipeline Stages
deploy
の画面下部のパラメータ一覧が、すべて青色になっていることを確認します。
TIP
今回は、scan
Pipeline のために追加登録する必要のあるパラメータはありませんでしたが、選択した Option の内容によっては、cloudArmorAllowedSourceIps
のように新しいパラメータを Deployment Config に追加登録する必要がある場合もあります。 このため、Option を選択し直して既存の構成を更新した場合は、AssemblyLine を実行する前に各 Pipeline のカードを選択して、追加登録が必要なパラメータが発生していないか確認すると良いでしょう。
3-3. AssemblyLineの実行(gcp-api-backend)
gcp-api-backend
の AssemblyLine を実行し、コンテナイメージの脆弱性診断を実施するとともに、すでにデプロイ済みのクラウドリソースにアクセス制限の設定を追加します。
手順1-2でコピーした Git コミットのハッシュ値を確認します。
画面上部の Input Parameters に以下を入力し、
RUN
ボタンを押下して AssemblyLine を実行します。- gitRevision: Gitコミットのハッシュ値
TIP
AssemblyLine の実行開始後に、scan
Pipeline の image-scan-gcp
Task の scan-image
Step の実行が失敗する場合があります。その場合は、画面右上の RETRY
ボタンを押下して再実行してください。
3-4. AssemblyLineの実行結果の確認(gcp-api-backend)
1. ステータスの確認
すべての Task および Pipeline のステータスが完了になると、AssemblyLine の実行が完了します。
2. ログの確認
CI/CD パイプラインの中で実施されたコンテナイメージの脆弱性診断の結果を確認します。
ページ下部の Timeline から、scan
Pipeline を構成する Task や、Task の中で実行済みの Step を確認できます。 dump-result
Step のログを確認することで、API Backend アプリケーションのコンテナイメージに対して実施された脆弱性診断の結果を確認できます。
このように、コンテナの脆弱性検知をしたい
Option を追加することで、既存の構成に「ビルドされたコンテナイメージの脆弱性診断を実施する」という機能を追加できました。
3-5. アプリケーションのアクセス制限の動作確認
アプリケーションの公開範囲を制限したい
Option を追加して gcp-api-backend
の AssemblyLine を実行したことで、Deployment Config に登録した IP アドレス以外からは API Backend アプリケーションにアクセスできない状態になったため、アクセス制限が想定通りに適用されているかを確認します。
API Backendのデプロイで動作確認に使用した URL を使用して、以下の二点を確認してください。
- Deployment Config に登録した IP アドレスからアクセスすると、アプリケーションのレスポンスを確認できる。
- Deployment Config に登録した IP アドレス以外からは、アプリケーションにアクセスできない。
このように、アプリケーションの公開範囲を制限したい
Option を選択することで、既存の構成に「アプリケーションにアクセスできる IP アドレスを制限する」という機能を追加できました。
以上で、追加で要件を選択することで既存の構成を拡張する一連の手順を体験いただきました。
コンテナイメージの脆弱性診断といったセキュリティに関する工程を CI/CD パイプラインに組み込んだり、新たな機能を既存のインフラストラクチャに追加したりするには、ある程度の経験や労力が必要になりますが、Qmonus Value Stream を利用することで、要件を選択するだけで CI/CD パイプラインやインフラストラクチャを簡単に構築・拡張できるため、アプリケーション開発に集中できます。
以上で、API Backend のチュートリアルは全て完了です。
次のチュートリアルでは、今回デプロイした API Backend と連携した Frontend アプリケーションのデプロイを体験できます。 本チュートリアルの実施後にぜひトライしてみてください。 Frontendのデプロイ
ここでチュートリアルを終了する場合は、リソースの削除手順がありますのでそちらを参考にリソースを削除してください。 リソースの削除