パート4:CCツールチェインのセットアップ

このチュートリアルでは、継続的コンプライアンス(CC)用のツールチェーン・テンプレートを使用して、デプロイされた成果物とそのソース・リポジトリーが常にコンプライアンスに準拠していることを確認する方法を説明します。

開始前に

以下の前提条件が満たされていることを確認します。 CIおよび継続的デプロイメント(CD)ツールチェーンのセットアッププロセス中に作成されたリソースを再利用することもできる。 これは、CI および CD ツールチェーンからのリソース情報を保持するのに役立ちます。

  1. 前提条件の設定 を完了します。
  2. 完了 CIツールチェーンのセットアップ.
  3. 完了 CDツールチェインのセットアップ.
  4. CC toolchain practices を参照してください。

CCツールチェーンのセットアップを開始する

このチュートリアルでは、ステージング環境を例にして、CCツールチェインの設定と紹介を行います。 CCツールチェーンのテンプレートにアクセスするには、以下の手順に従ってください。

  1. IBM Cloudコンソールで、Menu メニューアイコン>Platform Automation>Toolchains をクリックします。
  2. ツールチェーン」ページで「 ツールチェーンの作成 」をクリックします。
  3. Create a Toolchain] ページで、CC - Keep your app continuously Compliant with DevSecOps practices タイルをクリックします。

CCツールチェーンの設定

  1. **「Start」**をクリックします。

  2. IBM Cloudに、同じリージョンとリソースグループのツールチェーン内で一意のツールチェーン名を入力します。 ツールチェーンのリージョンは、クラスターおよびレジストリーのリージョンとは違っていてもかまいません。

  3. リージョンを選択します

  4. 「リソース・グループ」 を選択します。

  5. オプション:関連する継続的インテグレーション(CI)ツールチェーンをドロップダウンから選択できます。 これは、CCツールチェーンのセットアップを助けるために、CIコンフィギュレーションの一部をコピーするものである。 すでに入力した値が上書きされる可能性があります。

  6. 「続行」 をクリックします。

    現在の手順の構成が完了し、有効である場合にのみ、次の手順に進むことができます。 ガイド付きインストーラの前のステップを表示するには、いつでも「 戻る 」をクリックできます。 一連の手順で入力した構成値はすべてツールチェーン・インストーラーに保存されています。

いくつかのステップには、詳細設定に切り替えるトグルボタンがあります。 これらのステップは、デフォルトで最小限のコンフィギュレーションを提示する。 しかし、より細かなコントロールが必要な上級ユーザーは、 Switch to advanced configuration toggleをクリックすることで、基礎となる統合のオプションを表示することができます。

CCツール統合の設定

デフォルト設定を確認し、CCツールの統合を設定するために必要な場合は、ユーザー定義の設定を提供します。

秘密

提供されているトグルを使用して、ツールチェーンに追加する秘密の保管庫統合を指定します。 詳細は IBM Cloud秘密の管理 を参照。

CIツールチェーンは、任意の秘密IAM認証情報の秘密タイプのみをサポートしています。

  1. このチュートリアルでは、IBM Cloud® Secrets Managerをシークレットの保管庫として使用します。 地域リソースグループ、およびサービス名フィールドは、利用可能な選択肢に基づいて自動的に入力されます。 ドロップダウンインジケータをクリックすると、他の選択肢が表示されます。
  2. Secrets Manager インスタンス名を入力します。
  3. 認証タイプを選択します。
  4. 「続行」 をクリックします。

インベントリー

  1. CIツールチェーンでビルドされた成果物の詳細を記録する インベントリリポジトリ の URL を選択します。
  2. 「続行」 をクリックします。

ターゲット

  1. IBM Cloud APIキーを入力してください。
  2. インベントリに環境タグを入力して、配置された成果物をスキャンします。
  3. 「続行」 をクリックします。

問題

  1. CCパイプラインが実行中の間に問題を記録するには、 リポジトリ URL を選択します。
  2. 「続行」 をクリックします。

パイプライン構成

パイプライン設定リポジトリには、デプロイ、テスト、その他のカスタムタスク用の YAML ファイルとスクリプトが含まれています。

  1. ソース・プロバイダのデフォルトの設定を受け入れます。
  2. 有効なソースリポジトリ URL 選択します。 このフィールドにはデフォルトのリポジトリを使用します。
  3. 「続行」 をクリックします。

エビデンス・ストレージ

  1. 既存の証拠品ロッカーリポジトリを使用するオプションを選択します。
  2. CIツールチェーンを設定した際に作成されたリポジトリ URL を選択します。 証拠保管の詳細については、証拠 を参照してください。
  3. IBM Cloud Object Storageバケットを切り替えて、IBM Cloud Object Storageバケットにすべての証拠を格納する。
  4. 「続行」 をクリックします。

クラウド Object Storage バケット

  1. 自動的に入力された IBM Cloud Object Storage の詳細を確認し、受け入れます。
  2. Cloud Object Storage インスタンスに書き込むためのサービス API キーを指定します。
  3. 「続行」 をクリックします。

DevOps Insightsツールチェーン

  1. DevOps Insights IBM Cloud API Keyを入力してください。

  2. デフォルトの設定を受け入れる。

    既存の IBM Cloud DevOps Insights ツールチェーンインスタンスを、 DevOps Insights ツールチェーンID のCIツールチェーンからリンクできます。 例えば、 URL が https://cloud.ibm.com/devops/toolchains/aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee?env_id=ibm:yp:us-south の場合、ツールチェーンのIDは aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee となる。

  3. 「続行」 をクリックします。

SonarQube

  1. デフォルト設定を受け入れる。
  2. 「続行」 をクリックします。

オプションのツール

Slack

ツールチェーン作成後にSlackツールを追加できます。

  1. Slackのウェブフックを入力してください。 詳しくは Slackウェブフック をご覧ください。
  2. メッセージを投稿するには、スラック・チャンネルを入力してください。
  3. スラックチーム名を入力します。 例えば、チーム名が URL https://team.slack.com の場合、チーム名は team となります。
  4. 自動Slack通知の通知を受け取りたいイベントを選択します。
  5. 「続行」 をクリックします。

オプションとして、CDパイプラインの slack-notifications Environmentプロパティで、0 = off, and 1 = on を使って通知の送信を切り替えることができます。

CC ツールチェーンの作成

  1. Summaryページで Create toolchainをクリックし、ツールチェーンが作成されるのを待つ。

    個々のツールチェーン統合は、パイプライン作成後に設定できる。

CC ツールチェーンの詳細はこちら

  1. CCツールチェインが作成されたので、cc-pipeline タイルをクリックして、CC Manual Trigger, CC Timed Trigger, Subpipeline Webhook Trigger パイプラインを開いて表示します。

URL アプリをアップデートして動的スキャンを実行する

ターゲット環境で動的スキャンを実行するには、アプリケーション URL をCCパイプラインに提供する必要があります。 動的スキャンは、本質的に侵入的ないくつかのテストを実行する。 ステージング環境を使用してダイナミックスキャンを実行する。 ci-pipeline から URL を取得する手順に従ってください。

  1. CI toolchain ページで、 ci-pipeline タイルをクリックする。
  2. パイプライン名に対して実行をクリックします。 パイプラインの実行を観察する。 パイプラインの実行が完了するのを待つ。
  3. アプリケーション URL は、CIパイプライン実行の deploy-dev タスクの run stage ステップのログの最後にあります。 この URL、アプリケーションが動作していることを確認する。 例えば、Application URL: http://<ipaddress>:<portno>などです。

以下の手順に従って、手動トリガーを使用して URL アプリケーションをCCパイプラインに追加してください。 更新されたリストの詳細については、コンプライアンス・チェックで実行されるスキャンとチェック を参照してください。

  1. CC toolchain ページで、cc-pipeline タイルをクリックします。
  2. Settings > Environment Properties をクリックします。
  3. 追加テキスト値をクリックする。
  4. プロパティの追加に、名前app-url と入力します。
  5. ci-pipeline から抽出したhttp://<ipaddress>:<portno> として入力します。
  6. 追加 をクリックします。 これで、手動トリガーを使ってCCパイプラインを実行する準備ができた。 画面キャプチャのように、完成したCCパイプラインが表示される。

CCパイプライン成功
DevSecOps継続的コンプライアンスパイプライン成功実行

CCパイプライン中にトリガーされた非同期サブパイプラインの実行が完了すると、画面キャプチャのように表示される。

非同期サブパイプライン成功
DevSecOps 継続的コンプライアンス非同期サブパイプライン成功実行

インシデントの問題

CCパイプラインの実行中に、脆弱性、CVEなどのインシデント問題が作成され、収集された証拠に添付される。 本番稼動中に発見された場合、期限付きのこれらの課題は、ツールチェーンセットアップで言及されている課題リポジトリに作成されます。 詳しくは、 インシデントの問題の期限 を参照してください。

DevSecOpsサンプル・インシデント問題
CC パイプラインで作成された DevSecOps サンプル・インシデント問題

DevOps Insights の詳細はこちら

以下の場所に、コンプライアンス・チェックの証拠がアップロードされている。

  • 証拠ロッカーの保管庫。
  • Object Storageバケット。
  • DevOps Insights- ツールチェーンから DevOps Insights をクリックします。
  • 画面キャプチャに表示されているように、DevOps Insights 品質ダッシュボード

DevSecOpsCCエビデンス
DevSecOps CCエビデンス

CI および CC パイプラインの比較

CIパイプラインとCCパイプラインには共通のステップがあることにお気づきだろうか。 実行されるスキャンとチェックは、性質と詳細が似ています。 詳細は、CIパイプラインとCCパイプラインの違い を参照のこと。

次のステップ

あなたは、DevSecOpsプラクティスを使用して、CI、CD、およびCCツールチェーンをセットアップし、セキュアなアプリケーションをデプロイする一連のチュートリアルを成功裏に完了しました。

これで、DevSecOps を使用して、セキュアな Infrastructure as Code(IaC)を開発およびデプロイする の練習方法を探ることができる。