パート4:CCツールチェインのセットアップ
このチュートリアルでは、継続的コンプライアンス(CC)用のツールチェーン・テンプレートを使用して、デプロイされた成果物とそのソース・リポジトリーが常にコンプライアンスに準拠していることを確認する方法を説明します。
開始前に
以下の前提条件が満たされていることを確認します。 CIおよび継続的デプロイメント(CD)ツールチェーンのセットアッププロセス中に作成されたリソースを再利用することもできる。 これは、CI および CD ツールチェーンからのリソース情報を保持するのに役立ちます。
- 前提条件の設定 を完了します。
- 完了 CIツールチェーンのセットアップ.
- 完了 CDツールチェインのセットアップ.
- CC toolchain practices を参照してください。
CCツールチェーンのセットアップを開始する
このチュートリアルでは、ステージング環境を例にして、CCツールチェインの設定と紹介を行います。 CCツールチェーンのテンプレートにアクセスするには、以下の手順に従ってください。
- IBM Cloudコンソールで、Menu
>Platform Automation>Toolchains をクリックします。
- 「ツールチェーン」ページで、「 ツールチェーンを作成 」をクリックします。
- Create a Toolchain] ページで、CC - Keep your app continuously Compliant with DevSecOps practices タイルをクリックします。
CCツールチェーンの設定
-
**「Start」**をクリックします。
-
IBM Cloudに、同じリージョンとリソースグループのツールチェーン内で一意のツールチェーン名を入力します。 ツールチェーンのリージョンは、クラスターおよびレジストリーのリージョンとは違っていてもかまいません。
-
リージョンを選択します。
-
「リソース・グループ」 を選択します。
-
オプション:関連する継続的インテグレーション(CI)ツールチェーンをドロップダウンから選択できます。 これは、CCツールチェーンのセットアップを助けるために、CIコンフィギュレーションの一部をコピーするものである。 すでに入力した値が上書きされる可能性があります。
-
「続行」 をクリックします。
現在の手順の構成が完了し、有効である場合にのみ、次の手順に進むことができます。 ガイド付きインストーラーでは、いつでも「 戻る 」をクリックして、前の手順を確認することができます。 一連の手順で入力した構成値はすべてツールチェーン・インストーラーに保存されています。
いくつかのステップには、詳細設定に切り替えるトグルボタンがあります。 これらの手順では、デフォルトで最低限の設定が表示されます。 ただし、よりきめ細かな設定が必要な上級ユーザーは、「 詳細設定に切り替える 」トグルをクリックすることで、基盤となる連携機能のオプションを表示することができます。
CCツールの連携を設定する
デフォルト設定を確認し、CCツールの統合を設定するために必要な場合は、ユーザー定義の設定を提供します。
秘密
提供されているトグルを使用して、ツールチェーンに追加する秘密の保管庫統合を指定します。 詳細は IBM Cloud秘密の管理 を参照。
CIツールチェーンは、任意の秘密と IAM認証情報の秘密タイプのみをサポートしています。
- このチュートリアルでは、IBM Cloud® Secrets Managerをシークレットの保管庫として使用します。 地域、リソースグループ、およびサービス名フィールドは、利用可能な選択肢に基づいて自動的に入力されます。 ドロップダウンインジケータをクリックすると、他の選択肢が表示されます。
- Secrets Manager インスタンス名を入力します。
- 認証の種類を選択してください。
- 「続行」 をクリックします。
インベントリー
- CIツールチェーンでビルドされた成果物の詳細を記録する インベントリリポジトリ の URL を選択します。
- 「続行」 をクリックします。
ターゲット
- IBM Cloud APIキー を入力してください。
- インベントリに環境タグを入力して、配置された成果物をスキャンします。
- 「続行」 をクリックします。
問題
- CCパイプラインが実行中の間に問題を記録するには、 リポジトリ URL を選択します。
- 「続行」 をクリックします。
パイプライン構成
パイプライン設定リポジトリには、デプロイ、テスト、その他のカスタムタスク用の YAML ファイルとスクリプトが含まれています。
- ソース・プロバイダのデフォルトの設定を受け入れます。
- 有効なソースリポジトリ URL 選択します。 このフィールドにはデフォルトのリポジトリを使用します。
- 「続行」 をクリックします。
エビデンス・ストレージ
- 既存の証拠品ロッカーリポジトリを使用するオプションを選択します。
- CIツールチェーンを設定した際に作成されたリポジトリ URL を選択します。 証拠保管の詳細については、証拠 を参照してください。
- IBM Cloud Object Storageバケットを切り替えて、IBM Cloud Object Storageバケットにすべての証拠を格納する。
- 「続行」 をクリックします。
クラウド Object Storage バケット
- 自動的に入力された IBM Cloud Object Storage の詳細を確認し、受け入れます。
- Cloud Object Storage インスタンスに書き込むためのサービス API キーを指定します。
- 「続行」 をクリックします。
SonarQube
- デフォルトの設定を受け入れます。
- 「続行」 をクリックします。
オプションのツール
Slack
ツールチェーン作成後にSlackツールを追加できます。
- SlackのWebhook を入力してください。 詳しくは Slackウェブフック をご覧ください。
- メッセージを投稿するには、スラック・チャンネルを入力してください。
- スラックチーム名を入力します。 たとえば、チームのURLが URL
https://team.slack.comの場合、チーム名はteamとなります。 - 自動Slack通知の通知を受け取りたいイベントを選択します。
- 「続行」 をクリックします。
オプションとして、CDパイプラインの slack-notifications Environmentプロパティで、0 = off, and 1 = on を使って通知の送信を切り替えることができます。
CC ツールチェーンの作成
-
[概要] ページで [ツールチェーンの作成 ] をクリックし、ツールチェーンが作成されるまで待ちます。
個々のツールチェーンの統合設定は、パイプラインの作成後に設定できます。
CC ツールチェーンの詳細はこちら
- CCツールチェインが作成されたので、cc-pipeline タイルをクリックして、CC Manual Trigger, CC Timed Trigger, Subpipeline Webhook Trigger パイプラインを開いて表示します。
URL アプリをアップデートして動的スキャンを実行する
ターゲット環境で動的スキャンを実行するには、アプリケーション URL をCCパイプラインに提供する必要があります。 動的スキャンは、本質的に侵入的ないくつかのテストを実行する。 ステージング環境を使用してダイナミックスキャンを実行する。 ci-pipeline から URL を取得する手順に従ってください。
- 「 CI ツールチェーン 」ページで、「 ci-pipeline 」タイルをクリックします。
- パイプライン名に対して実行をクリックします。 パイプラインの実行を観察する。 パイプラインの実行が完了するまでお待ちください。
- アプリケーション「 URL 」は、CIパイプラインの実行における「
deploy-dev」タスクの「run stage」ステップのログの末尾に記載されています。 その URL を使用して、アプリケーションが実行されていることを確認してください。 例えば、Application URL: http://<ipaddress>:<portno>などです。
以下の手順に従って、手動トリガーを使用して URL アプリケーションをCCパイプラインに追加してください。 更新されたリストの詳細については、コンプライアンス・チェックで実行されるスキャンとチェック を参照してください。
- CC toolchain ページで、cc-pipeline タイルをクリックします。
- [ 設定 ] > [ 環境プロパティ ] をクリックします。
- [追加 ] > [ テキスト値] をクリックします。
- プロパティの追加に、名前を
app-urlと入力します。 ci-pipelineから抽出した値をhttp://<ipaddress>:<portno>として入力します。- 追加 をクリックします。 これで、手動トリガーを使ってCCパイプラインを実行する準備ができた。 画面キャプチャのように、完成したCCパイプラインが表示される。
CCパイプライン中にトリガーされた非同期サブパイプラインの実行が完了すると、画面キャプチャのように表示される。
インシデントの問題
CCパイプラインの実行中に、脆弱性、CVEなどのインシデント問題が作成され、収集された証拠に添付される。 本番稼動中に発見された場合、期限付きのこれらの課題は、ツールチェーンセットアップで言及されている課題リポジトリに作成されます。 詳しくは、 インシデントの問題の期限 を参照してください。
証拠を探る
以下の場所に、コンプライアンス・チェックの証拠がアップロードされている。
- 証拠ロッカーの保管庫。
- Object Storageバケット。
CI および CC パイプラインの比較
CIパイプラインとCCパイプラインには共通のステップがあることにお気づきだろうか。 実行されるスキャンとチェックは、性質と詳細が似ています。 詳細は、CIパイプラインとCCパイプラインの違い を参照のこと。
次のステップ
あなたは、DevSecOpsプラクティスを使用して、CI、CD、およびCCツールチェーンをセットアップし、セキュアなアプリケーションをデプロイする一連のチュートリアルを成功裏に完了しました。
これで、DevSecOps を使用して、セキュアな Infrastructure as Code(IaC)を開発およびデプロイする の練習方法を探ることができる。