継続的コンプライアンス・ツールチェーンのセットアップ
このチュートリアルでは、継続的コンプライアンス(CC)用のツールチェーン・テンプレートを使用して、デプロイされた成果物とそのソース・リポジトリーが常にコンプライアンスに準拠していることを確認する方法を説明します。
DevSecOpsA methodology that integrates security practices with the software development and operations lifecycle. The goal of the merge is to prioritize the balance of development speed and security. は、IBM Cloud® Security and Compliance Center コントロールのセットを DevOps プロセスに統合します。 この統合により、組織は迅速かつ頻繁に提供し、強固なセキュリティ態勢と継続的な監査対応状態を維持することができる。
開始前に
以下の前提条件が満たされていることを確認します。 CIおよび継続的デプロイメント(CD)ツールチェーンのセットアッププロセス中に作成されたリソースを再利用することもできる。 これは、CI および CD ツールチェーンからのリソース情報を保持するのに役立ちます。
- 前提条件の設定 を完了します。
- 完了 CIツールチェーンのセットアップ.
- 完了 CDツールチェインのセットアップ.
- CC toolchain practices を参照してください。
CCツールチェーンのセットアップを開始する
このチュートリアルでは、ステージング環境を例にして、CCツールチェインの設定と紹介を行います。 CCツールチェーンのテンプレートにアクセスするには、以下の手順に従ってください。
- IBM Cloudコンソールで、メニュー
をクリックし、DevOps を選択します。
- ツールチェイン・ページから、ツールチェインを作成をクリックします。
- Create a Toolchain] ページで、CC - Keep your app continuously Compliant with DevSecOps practices タイルをクリックします。
CCツールチェーンの設定
-
**「Start」**をクリックします。
-
IBM Cloudに、同じリージョンとリソースグループのツールチェーン内で一意のツールチェーン名を入力します。 ツールチェーンのリージョンは、クラスターおよびレジストリーのリージョンとは違っていてもかまいません。
-
リージョンを選択します。
-
「リソース・グループ」 を選択します。
-
オプション:関連する継続的インテグレーション(CI)ツールチェーンをドロップダウンから選択できます。 これは、CCツールチェーンのセットアップを助けるために、CIコンフィギュレーションの一部をコピーするものである。 すでに入力した値が上書きされる可能性があります。
-
「続行」 をクリックします。
現在の手順の構成が完了し、有効である場合にのみ、次の手順に進むことができます。 戻る をクリックすると、ガイド付きインストーラの前のステップをいつでも見ることができます。 一連の手順で入力した構成値はすべてツールチェーン・インストーラーに保存されています。
いくつかのステップには、詳細設定に切り替えるトグルボタンがあります。 デフォルトでは、これらのステップで最小限のコンフィギュレーションが表示されます。 しかし、より細かい制御を必要とする上級ユーザーは、Switch to advanced configuration トグルをクリックして、基盤となる統合のオプションを表示することができます。
CCツールの統合設定
デフォルト設定を確認し、CCツールの統合を設定するために必要な場合は、ユーザー定義の設定を提供します。
秘密
提供されているトグルを使用して、ツールチェーンに追加する秘密の保管庫統合を指定します。 詳細は IBM Cloud秘密の管理 を参照。
CIツールチェーンは、任意の秘密と IAM認証情報の秘密タイプのみをサポートしています。
- このチュートリアルでは、IBM Cloud® Secrets Managerをシークレットの保管庫として使用します。 地域、リソースグループ、およびサービス名フィールドは、利用可能な選択肢に基づいて自動的に入力されます。 ドロップダウンインジケータをクリックすると、他の選択肢が表示されます。
- Secrets Manager インスタンス名を入力します。
- 認証タイプを選択します。
- 「続行」 をクリックします。
インベントリー
- CI toolchainによって構築された成果物の詳細を記録するために、インベントリ リポジトリのリポジトリURL を選択します。
- 「続行」 をクリックします。
ターゲット
- IBM Cloud APIキーを入力します。
- インベントリに環境タグを入力して、配置された成果物をスキャンします。
- 「続行」 をクリックします。
問題
- CC パイプラインの実行中に課題を記録するには、リポジトリの URL を選択します。
- 「続行」 をクリックします。
パイプライン構成
パイプライン設定リポジトリには、デプロイ、テスト、その他のカスタムタスク用の YAML ファイルとスクリプトが含まれています。
- ソース・プロバイダのデフォルトの設定を受け入れます。
- 有効なソースリポジトリURL を選択します。 このフィールドにはデフォルトのリポジトリを使用します。
- 「続行」 をクリックします。
エビデンス・ストレージ
- 既存の証拠品ロッカーリポジトリを使用するオプションを選択します。
- CI toolchainの設定時に作成されたリポジトリURL を選択します。 証拠保管の詳細については、証拠 を参照してください。
- IBM Cloud Object Storageバケットを切り替えて、IBM Cloud Object Storageバケットにすべての証拠を格納する。
- 「続行」 をクリックします。
クラウド Object Storage バケット
- 自動的に入力された IBM Cloud Object Storage の詳細を確認し、受け入れます。
- Cloud Object Storage インスタンスに書き込むためのサービス API キーを指定します。
- 「続行」 をクリックします。
DevOps Insightsツールチェーン
-
DevOps Insights IBM Cloud API Keyを入力してください。
-
デフォルトの設定を受け入れる。
既存のIBM Cloud DevOps Insights toolchainインスタンスに、DevOps Insights toolchain 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
となります。 -
「続行」 をクリックします。
SonarQube
- デフォルト設定を受け入れる。
- 「続行」 をクリックします。
オプションのツール
Slack
ツールチェーン作成後にSlackツールを追加できます。
- あなたの Slackウェブフックを入力してください。 詳しくは Slackウェブフック をご覧ください。
- メッセージを投稿するには、スラック・チャンネルを入力してください。
- スラックチーム名を入力します。 例えば、チームのURLが
https://team.slack.com
の場合、チーム名はteam
となります。 - 自動Slack通知の通知を受け取りたいイベントを選択します。
- 「続行」 をクリックします。
オプションとして、CDパイプラインの slack-notifications
Environmentプロパティで、0 = off, and 1 = on
を使って通知の送信を切り替えることができます。
Security and Compliance Center
- 自動的に入力された設定を受け入れるか、編集します。 詳細は、Security and Compliance Center と tool integration プロセスを参照してください。
- 続行をクリックすると、サマリーページが表示されます。
CC ツールチェーンの作成
-
サマリー・ページでツールチェーンの作成をクリックし、ツールチェーンが作成されるのを待つ。
個々のツールチェーン統合は、パイプライン作成後に設定できる。
CC ツールチェーンの詳細はこちら
- CCツールチェインが作成されたので、cc-pipeline タイルをクリックして、CC Manual Trigger, CC Timed Trigger, Subpipeline Webhook Trigger パイプラインを開いて表示します。
動的スキャンを実行するためのアプリ URL の更新
ターゲット環境でダイナミック・スキャンを実行するには、アプリケーションのURLをCCパイプラインに提供する必要がある。 動的スキャンは、本質的に侵入的ないくつかのテストを実行する。 ステージング環境を使用してダイナミックスキャンを実行する。 ci-pipeline
からアプリケーションのURLを取得する手順に従ってください。
- CI toolchain ページで、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などのインシデント問題が作成され、収集された証拠に添付される。 本番稼動中に発見された場合、期限付きのこれらの課題は、ツールチェーンセットアップで言及されている課題リポジトリに作成されます。 詳しくは、 インシデントの問題の期限 を参照してください。

DevOps Insights の詳細はこちら
以下の場所に、コンプライアンス・チェックの証拠がアップロードされている。
- 証拠ロッカーの保管庫。
- Object Storageバケット。
- DevOps Insights- ツールチェーンから DevOps Insights をクリックします。
- 画面キャプチャに表示されているように、DevOps Insights 品質ダッシュボード。

CI および CC パイプラインの比較
CIパイプラインとCCパイプラインには共通のステップがあることにお気づきだろうか。 実行されるスキャンとチェックは、性質と詳細が似ています。 詳細は、CIパイプラインとCCパイプラインの違い を参照のこと。
次のステップ
あなたは、DevSecOpsプラクティスを使用して、CI、CD、およびCCツールチェーンをセットアップし、セキュアなアプリケーションをデプロイする一連のチュートリアルを成功裏に完了しました。
これで、DevSecOps を使用して、セキュアな Infrastructure as Code(IaC)を開発およびデプロイする の練習方法を探ることができる。