IBM CloudのためのCSPM(クラウド・セキュリティ・ポスチャ管理)の実装
IBM Cloud® Security and Compliance Center Workload Protection のコンプライアンスモジュールは、リソースの詳細なインベントリを保持し、完全なコンテキストに基づく優先順位付けを可能にし、ポスチャの設定ミスの解決を容易にします。 コンプライアンス モジュールは、ハイブリッド クラウド環境全体でクラウドと Kubernetes セキュリティ姿勢管理 (それぞれ CSPM と KSPM) をサポートします。
Workload Protection CSPM と KSPM は、リソースと重要なワークロードのコンプライアンスと構成管理を提供します。 IBM Cloud Framework for Financial Services、Digital Operational Resilience Act (DORA)、または CIS IBM Cloud Foundations Benchmark など、複数の定義済みポリシーがサポートされており、お客様の環境のセキュリティとコンプライアンスを実現します。 カスタム・ポリシーもサポートされている。
Workload Protection の IBM Cloud CSPM機能は、 App Configuration のアグリゲータ機能と相互作用して、すべてのリソース構成の詳細を収集します。 アグリゲーター機能は無料で、 App Configuration のベーシックプランの一部です。 この統合では、 IBM IAM信頼済みプロファイルを 使用して権限を管理する。
IBM Cloudアカウントを簡単に統合して、新規および既存のWorkload ProtectionインスタンスにCSPMを実装できます。
また、 IBM Cloud Enterpriseを統合して、組織に属するすべてのアカウントにCSPMを導入することもできます。 エンタープライズを統合するすべての手順は、この ドキュメントに 記載されています。
開始前に
始める前に、以下の要件が完了していることを確認してください:
- App Configuration サービス に少なくとも
Managerロールが割り当てられています。 これは CSPM がサービス・コンフィギュレーションを有効にするために必要です。 - すでにWorkload Protectionインスタンスを持っているか、新しいインスタンスを作成するのに十分な権限があります。
- 信頼されたプロファイルを作成および管理するための権限。
IBM Cloud アカウントのリソースに対してコンテキストベースの制限が有効になっている場合、そのリソースへのアクセスが提供されない限り、構成を収集することはできません。 アクセスを提供するには、ルールを作成する必要がある。 コンテキストの追加を求められたら、ネットワークゾーンを作成し、 参照サービスとして App Configuration。
既存のWorkload Protectionインスタンスとの統合
既存の Workload Protection インスタンスから IBM Cloud アカウントで CSPM を有効にするには、次の手順に従います:
- リソースリストに移動し、 Workload Protection インスタンスを選択します。 Workload Protectionインスタンスは、セキュリティセクションで見つけることができます。
- Sources を選択し、IBM Cloud Account タブに移動します。
- このタブで、追加をクリックする。 信頼できるプロファイル名、App Configuration名を導入し、プランを選択する。
- 最後に、追加をクリックして、IBM CloudアカウントにCSPMを設定します。
インスタンスをプロビジョニングすると、リソース数にもよりますが、接続が確立してから数分後に結果が表示されます。
新しいWorkload Protectionインスタンスに統合する
新しい Workload Protection インスタンスを IBM Cloud カタログ経由でプロビジョニングする際に、IBM Cloud アカウントの CSPM を有効にするには、IBM Cloud アカウントのクラウド セキュリティ姿勢管理 (CSPM) を有効にします スイッチをオンに設定します。
- App Configurationサービスに接続し、姿勢検証を実行するためのリソース定義を収集するために使用する信頼済みプロファイル名を選択します。
- App Configurationインスタンス名とプランを選択します。 デフォルトではベーシックプランが選択されています。
インスタンスをプロビジョニングすると、リソース数にもよりますが、接続から約5~10分後に結果が表示されます。
IBM CloudアカウントでCSPMを無効にする
IBM CloudアカウントのCSPMを無効にするには、次の手順に従います:
- リソースリストに移動し、 Workload Protection インスタンスを選択します。 すべてのWorkload Protectionインスタンスは、セキュリティセクションの下にあります。
- Sources を選択し、IBM Cloud Account タブに移動します。
- 無効にしたいアカウントの3つの点をクリックし、削除をクリックします。
あなたのアカウントは選択されたWorkload ProtectionインスタンスでCSPMが無効になります。
アカウントの統合
このセクションでは、IBM Cloud アカウントを手動で Workload Protection にオンボードして CSPM を実装するために、CLI と API で実行する手順について説明します。
ここで説明する手順を使用して、Workload Protection インスタンスがあるアカウントとは別の IBM Cloud アカウントを統合することもできます。
始める前に
- Workload Protectionインスタンスが必要です。 インスタンスを持っていない場合は、インスタンスのプロビジョニング の説明に従ってインスタンスを作成してください。
- Workload ProtectionCRNを取得してください。 これは、リソースリストに行き、ターゲットにしているサービスをクリックすることで取得できます。 詳細セクションで、CRNをコピーする。 このセクションでは
workload-protection-instance-crnとして参照されます。 - Workload Protectionの名前を取得します。 これは、リソースリストに行き、ターゲットにしているサービスをクリックすることで取得できます。 詳細セクションで、名前をコピーする。 このセクションでは
workload-protection-instance-nameとして参照されます。 - 信頼されたプロファイル、App Configuration、およびWorkload Protectionインスタンスを作成するための正しい権限があることを確認してください:
- アカウントの所有者
- すべてのアカウント管理サービスの管理者。
- IAM Identity サービスに対する管理者役割。 詳しくは、IAM Identity サービスを参照してください。
- IBM CloudCLIのインストール。 CLI がインストールされている場合は、次のステップに進みます。
- インスタンスをプロビジョニングするIBM Cloudアカウントとリージョンにログインします。 以下のコマンドを実行する:
ibmcloud login.
この統合には以下の4つのステップが必要である:
- Workload ProtectionとApp Configurationの間に信頼できるプロファイルを作成します。
- App Configurationインスタンスを作成します。
- リソース・コンフィギュレーションを収集するために、App Configurationの信頼できるプロファイルを作成します。
- サービス・コンフィギュレーションを収集するためにApp Configurationインスタンスを構成します。
- IBM CloudアカウントをWorkload Protectionインスタンスにオンボードします。
ステップ1: Workload ProtectionとApp Configurationの相互作用のために信頼されたプロファイルを作成します
このステップの前に、Workload Protectionインスタンスが既に作成されている必要があります。 Workload ProtectionインスタンスCRNは、App Configurationと対話するための信頼されたプロファイルの作成と設定に使用されます。
- それには以下のアクセス・ポリシーが必要である:
- アカウントの種類を検証するためのエンタープライズアカウント(
Viewer+Usage Report Viewer)。 - App Configuration (
Manager+Configuration Aggregator Reader)
- アカウントの種類を検証するためのエンタープライズアカウント(
- CRN(信頼関係 - IBM Cloudサービス)はWorkload ProtectionCRNである
- 例:
crn:v1:bluemix:public:sysdig-secure:us-south:a/1560be5426584bf8a43e75xxxxxxxxxx:299e4ca4-d96c-4fba-9691-xxxxxxxx::
- 例:
この信頼済みプロファイルは、以下のCLIコマンドで作成できます:
信頼済みプロファイルを作成します(名前は変更できます)。 **後で使うために ID を保存する。 これは後で ibmcspm-tp-wp-app-config-ID**として参照される:
ibmcloud iam trusted-profile-create ibmcspm-wp-app-config --description "Trusted profile for Workload Protection interaction with Config Service"
対応する信頼関係を割り当てる。 workload-protection-instance-crn をWorkload Protection CRNに置き換えてください:
ibmcloud iam trusted-profile-identity-create ibmcspm-wp-app-config --id workload-protection-instance-crn --id-type CRN
企業アカウントの信頼済みプロファイルのポリシーを作成します:
ibmcloud iam trusted-profile-policy-create ibmcspm-wp-app-config -r Viewer,"Usage Report Viewer" --service-name enterprise
App Configurationの信頼済みプロファイルのポリシーを作成します:
ibmcloud iam trusted-profile-policy-create ibmcspm-wp-app-config -r Manager,"Configuration Aggregator Reader" --service-name apprapp
ステップ 2: App Configuration インスタンスの作成
このステップでは、App Configuration インスタンスを作成します。Workload Protection は、IBM Cloud CSPM を実装するためのすべてのリソース定義を収集するために使用します。
以下のCLIコマンドで、新しいApp Configurationインスタンスを作成できます。 プラン、リージョン、リソースグループを変更することができます。 詳しくはこちらの doc をご覧ください。
CRN と GUID は後で使うために保存しておきます。 これは後でそれぞれ app-config-aggregator-CRN と app-config-aggregator-ID として参照される。
以下のコマンドを実行して、 App Configuration インスタンスを作成する。 ニーズに応じて、プラン、リージョン、リソースグループを置き換える:
ibmcloud resource service-instance-create "ibmcspm-app-config" "apprapp" "basic" "us-south" -g Default
CRN(ID、出力から)が app-config-aggregator-CRN として参照されていることに注意してください。 同様に、インスタンスID(出力からは GUID)は app-config-aggregator-ID として参照される。 これらの値は次のステップで使用するので保存しておく。
ステップ 3: App Configurationの信頼されたプロファイルで、サービス構成を収集します
このステップでは、App Configuration インスタンスが、IBM Cloud CSPM を実行するためにすべてのサービス構成を収集するために使用する、信頼されたプロファイルを作成します。 ステップ2で作成したApp Configuration CRN (app-config-aggregator-CRN)があることを確認してください。
信頼されたプロファイルを正しく構成するには、前のステップのApp ConfigurationインスタンスCRNが必要です。
- 以下のアクセス・ポリシーが必要です:
- すべてのアカウント・マネジメント・サービス(
Viewer+Service Configuration Reader) - アイデンティティとアクセスを有効にするすべてのサービス (
Reader+Viewer+Service Configuration Reader)
- すべてのアカウント・マネジメント・サービス(
- CRN(信頼関係 - IBM Cloudサービス)とコンフィグサービスCRNとの関係
- 例:
crn:v1:bluemix:public:apprapp:us-south:a/1560be5426584bf8a43e75xxxxxxxxxx:b4829f20-6d22-4604-939d-xxxxxxxx::
- 例:
この信頼済みプロファイルは、以下のCLIコマンドで作成できます:
信頼済みプロファイルを作成します(名前は変更できます)。 注: ID は後で使うために保存しておいてください。 これは後で ibmcspm-tp-app-config-aggregator-ID として参照される:
ibmcloud iam trusted-profile-create ibmcspm-app-config-aggregator --description "Trusted profile for App Configuration for collecting service configuration"
対応する信頼関係を割り当てる。 app-config-aggregator-CRN をWorkload Protection CRNに置き換えてください:
ibmcloud iam trusted-profile-identity-create ibmcspm-app-config-aggregator --id app-config-aggregator-CRN --id-type CRN
企業アカウントの信頼済みプロファイルのポリシーを作成します:
ibmcloud iam trusted-profile-policy-create ibmcspm-app-config-aggregator -r Viewer,"Service Configuration Reader" --service-name "All Account Management services"
App Configurationの信頼済みプロファイルのポリシーを作成します:
ibmcloud iam trusted-profile-policy-create ibmcspm-app-config-aggregator -r Viewer,"Service Configuration Reader" --service-name "All Identity and Access enabled services"
ステップ4: App Configurationインスタンスを構成して、サービス構成を収集します
このステップでは、 App Configuration、サービス構成の収集を開始するように設定します。 このステップを実行するには、 App Configuration インスタンスにアクセスし、 Configuration Aggregator を有効に します。
このステップはAPI経由でも実行できる。 このステップを開始する前に、あなたが持っていることを確認してください:
- ステップ2 で作成したApp Configuration GUID (
app-config-aggregator-ID)。 - ステップ3 で作成した、サービス構成(
ibmcspm-tp-app-config-aggregator-ID)を収集するためのApp Configurationの信頼できるプロファイルです。
次のアクションについては、 curl を使用して HTTP PUT リクエストを実行してください。
まず、以下のコマンドを実行してIAM APIトークンを取得する:
export AUTH_TOKEN=`ibmcloud iam oauth-tokens | awk '{print $4}'`
このコマンドはトークンを変数 AUTH_TOKEN に格納します。 詳しくは、IAM API トークンの取得を参照してください。
次に、 HTTP PUT リクエストを App Configuration インスタンスに実行します。 <app-config-aggregator-ID> をお客様の App Configuration インスタンスIDに、 <region> をお客様の App Configuration インスタンスを作成したリージョンに置き換えてください
curl -X PUT -H "Authorization: Bearer $AUTH_TOKEN" https://<region>.apprapp.cloud.ibm.com/apprapp/config_aggregator/v1/instances/<app-config-aggregator-ID>/settings -d '{"resource_collection_enabled": true, "trusted_profile_id": "<ibmcspm-tp-app-config-aggregator-ID>", "regions": ["all"]}'
設定したコンフィギュレーションで、次のような出力が得られるはずだ:
{"additional_scope":[],"last_updated":"2024-06-20T15:17:15Z","regions":["all"],"resource_collection_enabled":true,"trusted_profile_id":"<ibmcspm-tp-app-config-aggregator-ID>"}
ステップ 5: IBM Cloud アカウントを Workload Protection インスタンスにオンボードします
この最後のステップでは、Workload Protectionインスタンスを設定します:
- あなたのWorkload Protectionインスタンス名(
workload-protection-instance-name)。 - ステップ2 で作成したApp Configuration CRN (
app-config-aggregator-CRN)。 - Workload Protectionの信頼済みプロファイルは、App Configuration(
ibmcspm-tp-wp-app-config-ID)と対話するために、ステップ1 で作成しました。 - あなたのIBM CloudアカウントID (
<ibm-cloud-account-id>)。IDの管理 > アカウント > アカウント設定で取得できます。
以前に他の IBM Cloud アカウントをオンボードした場合、または他のパラメータを追加した場合は、既存のパラメータを維持するようにしてください。 ibmcloud resource service-instance <workload-protection-instance-name> --output json を実行し、<workload-protection-instance-name> をWorkload Protectionインスタンス名に置き換えることで、インスタンスの既存の使用パラメータを見ることができます。
以下のCLIコマンドを実行して、Workload Protection インスタンスを更新し、IBM Cloud アカウントをオンボードにします。 <workload-protection-instance-name> をWorkload Protectionインスタンス名、<app-config-aggregator-CRN> をApp ConfigurationインスタンスCRN、<ibmcspm-tp-wp-app-config-ID> を ステップ2 で作成した信頼済みプロファイルID、<ibm-cloud-account-id> をIBM CloudアカウントIDに置き換えてください。
ibmcloud resource service-instance-update "<workload-protection-instance-name>" -p '{"enable_cspm": true, "target_accounts": [{"account_id": "<ibm-cloud-account-id>", "config_crn": "<app-config-aggregator-CRN>", "trusted_profile_id": "<ibmcspm-tp-wp-app-config-ID>"}]}' -g Default
CSPM実装の検証
次のステップに従って、統合を検証する:
- Workload Protection インスタンスで、Sources / IBM Cloud Account を選択します。 IBM Cloudアカウントの
Activeステータスが表示されているはずです。 ステータスの更新には数分かかることがある。 - Access to your Workload Protection instance by clicking in ダッシュボードを開く, your account will be listed under 統合 / クラウド・アカウント.
- Workload Protectionで、インベントリにアクセスし、アカウントのIBM Cloudリソースのリストを確認します。 多くの定義済みフィルターが用意されており、その中から選ぶことができる。 また、検索ボックスを使用して、リソースの種類またはリソース名でフィルタリングすることもできます。 各リソースをクリックすると、リソース構成、そのリソースに対して適用されたポスチャーコントロール、および評価結果を確認することができます。
- Posture / Compliance にアクセスすると、IBM Cloud リソースの利用可能なフレームワーク (IBM Cloud Framework for Financial Services など) の結果を確認できます。
CLIでIBM CloudのCSPMを無効にする
自分のアカウントでCSPMを無効にするには、以下のコマンドを実行する必要がある。 <workload-protection-instance-name> をWorkload Protectionインスタンス名、<app-config-aggregator-CRN> をApp ConfigurationインスタンスCRN、<ibmcspm-tp-wp-app-config-ID> を ステップ2 で作成した信頼済みプロファイルID、<ibm-cloud-account-id> をIBM CloudアカウントIDに置き換えてください:
ibmcloud resource service-instance-update "<workload-protection-instance-name>" -p '{"enable_cspm": true, "target_accounts": [{"account_id": "<ibm-cloud-account-id>", "config_crn": "<app-config-aggregator-CRN>", "trusted_profile_id": "<ibmcspm-tp-wp-app-config-ID>", "delete": true}]}' -g Default
これは ステップ5 で説明したのと同じコマンドで、"delete": true が追加されています。
企業の統合
このセクションでは、CSPM を実装するために Workload Protection に IBM Cloud Enterprise をオンボードするために CLI で実行する必要がある手順について説明します。 これらの手順により、すべての子アカウントとエンタープライズ管理アカウントが統合されます。
作業を開始する前に、 Workload Protection Enterprise for CSPM を接続するために以下の要件が完了していることを確認してください:
- 信頼されたプロファイルのテンプレート、ポリシー、および割り当てを作成するための権限。
- App Configuration サービス に少なくとも
Managerロールが割り当てられています。 これは CSPM がサービス・コンフィギュレーションを有効にするために必要です。 - すでにWorkload Protectionインスタンスを持っているか、新しいインスタンスを作成するのに十分な権限があります。
- 信頼されたプロファイルを作成および管理するための権限。
この統合には以下の4つのステップが必要である:
- Workload ProtectionとApp Configurationの間に信頼できるプロファイルを作成します。
- App Configuration インスタンスの作成
- エンタープライズ全体からサービス構成を収集するために、 App Configuration インスタンスを構成します。
- IBM Cloud Enterprise を Workload Protection インスタンスにオンボードします。
ステップ1: Workload ProtectionとApp Configurationの相互作用のために信頼されたプロファイルを作成します
このステップの前に、Workload Protectionインスタンスが既に作成されている必要があります。 Workload ProtectionインスタンスCRNは、App Configurationと対話するための信頼されたプロファイルの作成と設定に使用されます。
- それには以下のアクセス・ポリシーが必要である:
- アカウントの種類を検証するためのエンタープライズアカウント(
Viewer+Usage Report Viewer)。 - App Configuration (
Manager+Configuration Aggregator Reader)
- アカウントの種類を検証するためのエンタープライズアカウント(
- CRN(信頼関係 - IBM Cloudサービス)はWorkload ProtectionCRNである
- 例:
crn:v1:bluemix:public:sysdig-secure:us-south:a/1560be5426584bf8a43e75xxxxxxxxxx:299e4ca4-d96c-4fba-9691-xxxxxxxx::
- 例:
この信頼済みプロファイルは、以下のCLIコマンドで作成できます:
信頼済みプロファイルを作成します(名前は変更できます)。 **後で使うために ID を保存する。 これは後で ibmcspm-tp-wp-app-config-ID**として参照される:
ibmcloud iam trusted-profile-create ibmcspm-wp-app-config --description "Trusted profile for Workload Protection interaction with Config Service"
対応する信頼関係を割り当てる。 workload-protection-instance-crn をWorkload Protection CRNに置き換えてください:
ibmcloud iam trusted-profile-identity-create ibmcspm-wp-app-config --id workload-protection-instance-crn --id-type CRN
企業アカウントの信頼済みプロファイルのポリシーを作成します:
ibmcloud iam trusted-profile-policy-create ibmcspm-wp-app-config -r Viewer,"Usage Report Viewer" --service-name enterprise
App Configurationの信頼済みプロファイルのポリシーを作成します:
ibmcloud iam trusted-profile-policy-create ibmcspm-wp-app-config -r Manager,"Configuration Aggregator Reader" --service-name apprapp
ステップ 2: App Configuration インスタンスの作成
この手順では、 IBM Cloud CSPM を実装するためのすべてのリソース定義を収集するために Workload Protection が使用する App Configuration インスタンスを作成します。
以下のCLIコマンドで、新しいApp Configurationインスタンスを作成できます。 プラン、リージョン、リソースグループを変更することができます。 詳しくはこちらの doc をご覧ください。
CRN と GUID は後で使うために保存しておきます。 これは後でそれぞれ app-config-aggregator-CRN と app-config-aggregator-ID として参照される。
以下のコマンドを実行して、 App Configuration インスタンスを作成する。 ニーズに応じて、プラン、リージョン、リソースグループを置き換える:
ibmcloud resource service-instance-create "ibmcspm-app-config" "apprapp" "basic" "us-south" -g Default
CRN(ID、出力から)が app-config-aggregator-CRN として参照されていることに注意してください。 同様に、インスタンスID(出力からは GUID)は app-config-aggregator-ID として参照される。 これらの値は次のステップで使用するので保存しておく。
ステップ 3: エンタープライズ全体からサービス構成を収集するための App Configuration インスタンスの構成
IBM Cloud コンソールで App Configuration インスタンスにアクセスします。 Resource List 、開発者ツールの下にあります。
Enable Configuration aggregator - Enterprise Account の手順に従ってください。
ステップ 4: IBM Cloud Enterprise を Workload Protection インスタンスにオンボードする
この最後のステップでは、Workload Protectionインスタンスを設定します:
- あなたのWorkload Protectionインスタンス名(
workload-protection-instance-name)。 - ステップ2 で作成したApp Configuration CRN (
app-config-aggregator-CRN)。 - Workload Protectionの信頼済みプロファイルは、App Configuration(
ibmcspm-tp-wp-app-config-ID)と対話するために、ステップ1 で作成しました。
以前に他の IBM Cloud アカウントをオンボードした場合、または他のパラメータを追加した場合は、既存のパラメータを維持するようにしてください。 ibmcloud resource service-instance <workload-protection-instance-name> --output json を実行し、<workload-protection-instance-name> をWorkload Protectionインスタンス名に置き換えることで、インスタンスの既存の使用パラメータを見ることができます。
次の CLI コマンドを実行して、 Workload Protection インスタンスを更新し、 IBM Cloud Enterprise をオンボードにします。 <workload-protection-instance-name> を Workload Protection インスタンス名、 <app-config-aggregator-CRN> を App Configuration インスタンス
CRN、 <ibmcspm-tp-wp-app-config-ID> を ステップ 2 で作成した信頼済みプロファイル ID に置き換えます。
ibmcloud resource service-instance-update "<workload-protection-instance-name>" -p '{"enable_cspm": true, "target_accounts": [{"account_type": "ENTERPRISE", "config_crn": "<app-config-aggregator-CRN>", "trusted_profile_id": "<ibmcspm-tp-wp-app-config-ID>"}]}' -g Default