为 IBM Cloud 实施 CSPM(云安全态势管理
IBM Cloud® Security and Compliance Center Workload Protection中的合规性模块可维护详细的资源清单,根据完整的上下文确定优先级,并帮助解决状态配置错误问题。 合规性模块支持跨混合云环境的云和 Kubernetes 安全态势管理(分别为 CSPM 和 KSPM)。
Workload Protection CSPM 和 KSPM 为资源和关键工作负载提供合规性和配置管理。 支持多个预定义策略,包括 IBM Cloud 金融服务框架、数字运营弹性法案 (DORA) 或 CIS IBM Cloud Foundations Benchmark,以实现环境的安全性和合规性。 还支持自定义策略。
IBM Cloud Workload Protection 中的 CSPM 功能与 App Configuration 交互,用于收集所有资源配置详细信息。 集成使用 IBM IAM 可信配置文件 管理权限。
您可以轻松集成 IBM Cloud 账户,为新的和现有的 Workload Protection 实例实施 CSPM。
准备工作
在开始之前,请确保您已完成以下要求:
- 您至少已将
Manager
角色分配给 App Configuration 服务。 这是 CSPM 启用服务配置所必需的。 - 您已经拥有一个 Workload Protection 实例或足够的权限来创建一个新实例。
- 创建和管理受信任配置文件的权限。
与现有 Workload Protection 实例集成
要从现有 Workload Protection 实例为 IBM Cloud 帐户启用 CSPM,请按照以下步骤操作:
- 转到 资源列表,选择 Workload Protection 实例。 您可以在 Security 部分找到 Workload Protection 实例。
- 选择 Sources 并转到 IBM Cloud帐户选项卡。
- 在此选项卡中,单击 添加。 引入可信配置文件名称、App Configuration 名称并选择计划。
- 最后,单击 Add 在您的 IBM Cloud 账户上安装 CSPM。
配置实例后,连接建立几分钟后就会显示结果,具体取决于资源数量。
集成到新的 Workload Protection 实例中
要在通过 IBM Cloud 目录调配新的 Workload Protection 实例时为 IBM Cloud 帐户启用 CSPM,请将 为您的 IBM Cloud 帐户启用云安全态势管理 (CSPM) 开关设置为开。
- 选择用于连接 App Configuration 服务和收集资源定义以运行态势验证的受信任配置文件名称。
- 选择 App Configuration 实例名称和计划。 默认情况下,选择基本计划。
配置好实例后,连接后大约 5-10 分钟就会显示结果,具体取决于资源数量。
在 IBM Cloud 账户上禁用 CSPM
要禁用 IBM Cloud 帐户的 CSPM,请按照以下步骤操作:
- 转到 资源列表,选择 Workload Protection 实例。 您可以在 Security 部分找到所有 Workload Protection 实例。
- 选择 Sources 并转到 IBM Cloud帐户选项卡。
- 单击要禁用的帐户的三个点,然后单击 删除。
在选定的 Workload Protection 实例中,您的帐户将禁用 CSPM。
整合您的账户
本节介绍使用 CLI 和 API 手动将 IBM Cloud 帐户加入 Workload Protection 以实施 CSPM 所需的步骤。
您也可以使用此处描述的步骤,集成与 Workload Protection 实例不同的 IBM Cloud 账户。
开始之前:
- 您需要有一个 Workload Protection 实例。 如果没有,请按照 配置实例 中的说明创建一个。
- 获取您的 Workload Protection CRN。 您可以访问 资源列表并单击目标服务来获取。 在 Details 部分,复制 CRN。 本节将以
workload-protection-instance-crn
作为引用。 - 获取您的 Workload Protection 名称。 您可以访问 资源列表并单击目标服务来获取。 在详细信息部分,复制名称。 本节将以
workload-protection-instance-name
作为引用。 - 确保您拥有创建受信任配置文件、App Configuration 和 Workload Protection 实例的正确权限:
- 账户所有人
- 所有账户管理服务的管理员角色。
- IAM Identity Service上的管理员角色。 有关详细信息,请参阅 IAM 身份管理服务。
- 安装 IBM Cloud CLI。 如果 CLI 已安装,请继续执行下一步。
- 登录IBM Cloud账户和要配置实例的区域。 运行以下命令:
ibmcloud login
。
这种整合需要以下四个步骤:
- 在 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 Protection CRN
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: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
中的 Manage > Account > Account Settings 下获取。
如果之前已加入任何其他 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 帐户。 您应该能看到 IBM Cloud 账户的
Active
状态。 状态更新可能需要几分钟时间。 - 通过点击 Open dashboard 访问您的 Workload Protection 实例,您的账户将列在 Integrations / Cloud Account 下。
- 在您的 Workload Protection 中,访问 Inventory 并查看您账户的 IBM Cloud 资源列表。 您可以选择许多预定义的筛选器。 您也可以使用搜索框按资源类型或资源名称进行筛选。 通过点击每个资源,您可以查看资源配置、对其应用的态势控制以及评估结果。
- 通过访问 姿势/合规性,您可以查看 IBM Cloud 资源的可用框架(如 IBM Cloud 金融服务框架)的结果。
使用 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
.