Skip to content

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 パイプラインの内容を確認してみましょう。

  1. 左のメニューから AssemblyLine を選択します。

  2. AssemblyLine 一覧画面に移動したら、一覧より api-backend の AssemblyLine を選択します。

  3. AssemblyLine が表示されたら、DETAIL ボタンをクリックして AssemblyLine 詳細画面へ移動します。

CI/CDパイプラインの実行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 に必要なパラメータが不足していないかを確認します。

  1. AssemblyLine の Pipeline Stages で scan カードを選択します。

  2. 画面下部のパラメータ一覧に、赤色となっている箇所が無いかを確認します。

    今回は、画面下部のパラメータ一覧がすべて青色になっているため、Deployment Config でパラメータを追加登録する必要はありません。

  3. 同様に、Pipeline Stages で build カードを選択し、画面下部のパラメータ一覧がすべて青色になっていることを確認します。

  4. 同様に、Pipeline Stages で deploy カードを選択し、画面下部のパラメータ一覧で、赤色となっている箇所が空欄かを確認します。

    CI/CDパイプラインの実行Deployment Configの確認

    パラメータ一覧に、これまで存在していなかったパラメータ cloudArmorAllowedSourceIps が追加されていることがわかります。アプリケーションの公開範囲を制限したい Option を選択したことで、この新しいパラメータが deploy Pipeline に追加されました。AssemblyLine を実行するには、Deployment Config を編集してこのパラメータを新たに登録する必要があります。

  5. EDIT DEPLOYMENT CONFIG ボタンを押下し、表示される Edit Deployment Config ダイアログで、設定が必要なパラメータを追加します。

    今回設定する必要のあるパラメータは、以下の通りです。

    パラメータ説明
    cloudArmorAllowedSourceIpsアプリケーションへのアクセスを許可したいソースIPアドレスまたはCIDR範囲

    以下のようにパラメータを追加します。入力内容は適宜読み替えてください。

    yaml
    cloudArmorAllowedSourceIps: xxx.xxx.xxx.xxx
  6. SAVE ボタンを押下し、ダイアログを閉じます。

  7. Pipeline Stages deploy の画面下部のパラメータ一覧が、すべて青色になっていることを確認します。

TIP

今回は、scan Pipeline のために追加登録する必要のあるパラメータはありませんでしたが、選択した Option の内容によっては、cloudArmorAllowedSourceIps のように新しいパラメータを Deployment Config に追加登録する必要がある場合もあります。 このため、Option を選択し直して既存の構成を更新した場合は、AssemblyLine を実行する前に各 Pipeline のカードを選択して、追加登録が必要なパラメータが発生していないか確認すると良いでしょう。

3-3. AssemblyLineの実行(gcp-api-backend)

gcp-api-backend の AssemblyLine を実行し、コンテナイメージの脆弱性診断を実施するとともに、すでにデプロイ済みのクラウドリソースにアクセス制限の設定を追加します。

  1. 手順1-2でコピーした Git コミットのハッシュ値を確認します。

  2. 画面上部の Input Parameters に以下を入力し、RUN ボタンを押下して AssemblyLine を実行します。

    • gitRevision: Gitコミットのハッシュ値

3-4. AssemblyLineの実行結果の確認(gcp-api-backend)

1. ステータスの確認

すべての Task および Pipeline のステータスが完了になると、AssemblyLine の実行が完了します。

2. ログの確認

CI/CD パイプラインの中で実施されたコンテナイメージの脆弱性診断の結果を確認します。

ページ下部の Timeline から、scan Pipeline を構成する Task や、Task の中で実行済みの Step を確認できます。 dump-result Step のログを確認することで、API Backend アプリケーションのコンテナイメージに対して実施された脆弱性診断の結果を確認できます。

CI/CDパイプラインの実行AssemblyLineの実行結果の確認

このように、コンテナの脆弱性検知をしたい 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のデプロイ

ここでチュートリアルを終了する場合は、リソースの削除手順がありますのでそちらを参考にリソースを削除してください。 リソースの削除