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 と相互作用し、すべてのリソース構成の詳細を収集します。 統合では、IBM IAM trusted profiles を使用して権限を管理します。
IBM Cloudアカウントを簡単に統合して、新規および既存のWorkload ProtectionインスタンスにCSPMを実装できます。
開始前に
作業を開始する前に、以下の要件が満たされていることを確認してください
- App Configuration サービス に少なくとも
Manager
ロールが割り当てられています。 これは CSPM がサービス・コンフィギュレーションを有効にするために必要です。 - すでにWorkload Protectionインスタンスを持っているか、新しいインスタンスを作成するのに十分な権限があります。
- 信頼されたプロファイルを作成および管理するための権限。
既存の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を設定して、サービス構成の収集を開始します。 このステップを開始する前に、あなたが持っていることを確認してください:
- ステップ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
が追加されています。