本页介绍了在激活 Security Command Center 后,如何配置和使用安全状况服务。首先,您必须创建一个包含政策的安全状况,并将这些政策整理为政策集,然后使用安全状况部署来部署该安全状况。部署状态后,您可以监控偏移情况,并随着时间的推移进一步优化状态。
准备工作
请先完成这些任务,然后再完成本页面上的其余任务。
激活 Security Command Center 高级版或企业版
确认已在组织级层激活 Security Command Center 高级层级或企业层级。
如果您想将 Security Health Analytics 检测器用作政策,请在激活过程中选择 Security Health Analytics 服务。
设置权限
如需获得使用安全状况所需的权限,请让您的管理员为您授予 Security Posture Admin (roles/securityposture.admin
) IAM 角色。
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
如需详细了解安全状况角色和安全状况权限,请参阅适用于组织级激活的 IAM。
设置 Google Cloud CLI
您必须使用 Google Cloud CLI 461.0.0 或更高版本。
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
如需设置 gcloud CLI 以使用服务账号模拟(而不是您的用户凭据)向 Google API 进行身份验证,请运行以下命令:
gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL
如需了解详情,请参阅服务账号模拟。
启用 API
启用组织政策服务和安全状况服务 API:
gcloud services enable orgpolicy.googleapis.com securityposture.googleapis.com
配置与 AWS 的连接
如需使用专门针对 AWS 的内置 Security Health Analytics 检测器,您必须激活 Security Command Center Enterprise 并连接到 AWS 以进行漏洞检测。
创建和部署安全状况
如需开始使用安全状况,您必须完成以下操作:
- 创建一个状态 YAML 文件,用于定义适用于您的安全状态的政策。
- 在 Google Cloud 中根据 Posture YAML 文件创建 Posture。
- 部署安全状况。
以下部分提供了详细说明。
创建姿势 YAML 文件
状态由您一起部署的一个或多个政策集组成。这些政策集包含您要纳入到状态信息中的所有预防性和检测性政策。
如需创建您的姿势,请执行以下操作之一:
- 复制预定义的姿势模板。如有必要,请对这些政策进行任何修改,使其适用于您的环境并符合贵商家的法规和安全标准。如需了解相关说明,请参阅根据预定义的姿势模板创建姿势文件。
- 从您的环境中提取现有政策。如有必要,请修改这些政策,使其符合贵商家的监管和安全标准。如需了解相关说明,请参阅通过从现有环境中提取政策来创建状态文件。
- 创建用于定义状态的 Terraform 资源。如需了解相关说明,请参阅创建包含政策定义的 Terraform 资源。
如需详细了解您可以在姿势中使用的字段,请参阅 Posture
参考文档和 PolicySet
参考文档。
根据预定义的安全状况模板创建安全状况文件
您可以使用预定义的设备状态模板创建设备状态文件。
控制台
在 Google Cloud 控制台中,前往 Posture Management 页面。
确认您查看的是已激活 Security Command Center 高级或企业版层级的组织。
在模板标签页中,点击要使用的模板。
在模板详情页面中,点击创建姿势。
为姿势提供一个唯一的名称,然后点击创建。系统随即会打开姿势详情页面。
完成以下任一操作:
- 如果您无需进行任何更改即可使用该安全状况(例如,您使用了
_essentials
模板之一),则可以部署该安全状况。如需相关说明,请参阅部署配置。 - 如果您需要修改任何政策集或政策(例如,您使用了某个 _enhanced 模板),请完成修改设备状态 YAML 文件,然后将设备状态设为
ACTIVE
。
- 如果您无需进行任何更改即可使用该安全状况(例如,您使用了
gcloud
- 查看预定义的态势模板,确定哪些模板适用于您的环境。您可以直接应用其中一些政策,而无需进行任何更改,但对于其他政策,您需要对其进行自定义,以使其与您的环境相匹配。
使用以下方法之一将 YAML 文件复制到您自己的文本编辑器中:
- 从预定义的状态模板中的参考内容中复制 YAML 文件。
- 运行
gcloud scc posture-templates describe
命令以复制 YAML 文件。
gcloud scc posture-templates describe \ organizations/ORGANIZATION_ID/locations/LOCATION/postureTemplates/POSTURE_TEMPLATE \ --revision-id=REVISION_ID
gcloud scc posture-templates describe \ organizations/ORGANIZATION_ID/locations/global/postureTemplates/POSTURE_TEMPLATE \ --revision-id=REVISION_ID
替换以下值:
ORGANIZATION_ID
是您已激活 Security Command Center 高级或企业层级的组织。LOCATION
是您要部署和存储状态的位置。唯一支持的位置是global
。POSTURE_TEMPLATE
是预定义姿势的模板名称,如预定义姿势模板中所述。REVISION_ID
是预定义姿势的修订版本。如果您未添加修订 ID,系统会显示预定义安全状况的最新版本。
例如,如需查看
3589215982
组织下的“安全 AI 必备要素”预定义状态,请运行以下命令:gcloud scc posture-templates describe \ organizations/3589215982/locations/global/postureTemplates/secure_ai_essential \ --revision-id=v.1.0
完成以下任一操作:
- 如果您无需进行任何更改即可使用该状态(例如,您使用了
_essentials
模板之一),则可以创建该状态。如需了解相关说明,请参阅创建姿势。 - 如果您需要修改任何政策集或政策,请完成修改状态 YAML 文件。
- 如果您无需进行任何更改即可使用该状态(例如,您使用了
通过从现有环境中提取政策来创建安全状况文件
您可以提取在现有项目、文件夹或组织中配置的政策(组织政策,包括自定义政策和所有 Security Health Analytics 检测器,包括自定义检测器)以创建状态文件。您无法从已应用态势的组织、文件夹或项目中提取政策。
此命令仅会提取您之前为组织、文件夹或项目配置的政策,而不会提取父级文件夹或组织中的政策。
如果您已将 Security Command Center Enterprise 连接到 AWS,此命令还会提取特定于 AWS 的检测器(预览版)。
运行
gcloud scc postures extract
命令,以提取环境中现有的组织政策和 Security Health Analytics 检测器。gcloud scc postures extract POSTURE_NAME \ --workload=WORKLOAD
替换以下值:
POSTURE_NAME
是相应姿势的相对资源名称。例如organizations/ORGANIZATION_ID/locations/global/postures/POSTURE_ID
。POSTURE_ID
是您的组织专有的唯一的态势字母数字名称。POSTURE_ID
不得超过 63 个字符。
WORKLOAD
是您要从中提取政策的项目、文件夹或组织。工作负载属于以下某种类型:projects/PROJECT_NUMBER
folder/FOLDER_ID
organizations/ORGANIZATION_ID
例如,如需从
6589215984
组织下的3589215982
文件夹中提取政策,请运行以下命令:gcloud scc postures extract \ organizations/6589215984/locations/global/postures/myStagingPosture \ workload=folder/3589215982 > posture.yaml
打开生成的
posture.yaml
文件进行修改。完成以下任一操作:
- 如果您无需进行任何更改即可使用该状态(例如,您使用了
_essentials
模板之一),则可以创建该状态。如需了解相关说明,请参阅创建姿势。 - 如果您需要修改任何政策集或政策,请完成修改态势 YAML 文件。
- 如果您无需进行任何更改即可使用该状态(例如,您使用了
使用政策定义创建 Terraform 资源
您可以创建 Terraform 配置来创建状态资源。
例如,您可以创建一个包含内置和自定义组织政策约束条件以及内置和自定义 Security Health Analytics 检测器的状态资源。对特定于 AWS 的内置 Security Health Analytics 检测器的态势管理支持目前处于预览版阶段。
resource "google_securityposture_posture" "posture_example" {
posture_id = "<POSTURE_ID>"
parent = "organizations/<ORGANIZATION_ID>"
location = "global"
state = "ACTIVE"
description = "a new posture"
policy_sets {
policy_set_id = "org_policy_set"
description = "set of org policies"
policies {
policy_id = "canned_org_policy"
constraint {
org_policy_constraint {
canned_constraint_id = "storage.uniformBucketLevelAccess"
policy_rules {
enforce = true
}
}
}
}
policies {
policy_id = "canned_org_policy_for_service"
constraint {
org_policy_constraint {
canned_constraint_id = "run.allowedVPCEgress"
policy_rules {
allow_all: true
condition {
expression: "!(parameters.denyAll or resource.location in parameters.deniedLocations) && (parameters.allowAll or resource.location in parameters.allowedLocations)"
}
parameters {
fields {
key: "denyAll"
value {
bool_value: false
}
}
fields {
key: "allowAll"
value {
bool_value: false
}
}
fields {
key: "deniedLocations"
value {
null_value: NULL_VALUE
}
}
fields {
key: "allowedLocations"
value {
string_value: "allowedLocations.all(location, location in [\342\200\230US\342\200\231, \342\200\230EU\342\200\231])"
}
}
}
resource_types {
included: "run.googleapis.com/Service"
}
}
}
}
}
}
policy_sets {
policy_set_id = "sha_policy_set"
description = "set of sha policies"
policies {
policy_id = "sha_builtin_module"
constraint {
security_health_analytics_module {
module_name = "BIGQUERY_TABLE_CMEK_DISABLED"
module_enablement_state = "ENABLED"
}
}
description = "enable BIGQUERY_TABLE_CMEK_DISABLED"
}
policies {
policy_id = "aws_sha_builtin_module"
constraint {
security_health_analytics_module {
module_name = "S3_BUCKET_LOGGING_ENABLED"
module_enablement_state = "ENABLED"
}
}
description = "enable S3_BUCKET_LOGGING_ENABLED"
}
policies {
policy_id = "sha_custom_module"
constraint {
security_health_analytics_custom_module {
display_name = "custom_SHA_policy"
config {
predicate {
expression = "resource.rotationPeriod > duration('2592000s')"
}
custom_output {
properties {
name = "duration"
value_expression {
expression = "resource.rotationPeriod"
}
}
}
resource_selector {
resource_types = ["cloudkms.googleapis.com/CryptoKey"]
}
severity = "LOW"
description = "Custom Module"
recommendation = "Testing custom modules"
}
module_enablement_state = "ENABLED"
}
}
}
}
}
如需了解详情,请参阅 google_securityposture_posture。
修改姿势 YAML 文件
如需修改姿势 YAML 文件,请完成以下步骤:
- 在文本编辑器中打开状态 YAML 文件。
验证文件开头的
name
、description
和state
。验证文件开头的
name
、description
和state
。name: organizations/ORGANIZATION_ID/locations/global/posture/POSTURE_ID description: DESCRIPTION state: STATE
如需详细了解这些字段,请参阅
Posture
参考文档。例如:
name: organizations/3589215982/locations/global/posture/stagingAIPosture description: This posture applies to staging environments for Vertex AI. state: ACTIVE
自定义文件中的政策,以满足您的要求。
如需详细了解您可以使用的字段,请参阅
PolicySet
参考文档。查看现有政策及其值。对于需要您提供特定于您环境的信息的政策,请相应地设置值。例如,对于安全 AI 的预定义状况(扩展)中的
ainotebooks.accessMode
政策,请在policy_rules
下添加允许的访问模式:- policy_id: Define access mode for Vertex AI Workbench notebooks and instances compliance_standards: - standard: NIST SP 800-53 control: AC-3(3) - standard: NIST SP 800-53 control: AC-6(1) constraint: org_policy_constraint: canned_constraint_id: ainotebooks.accessMode policy_rules: - values: allowed_values: service-account description: This list constraint defines the modes of access allowed to Vertex AI Workbench notebooks and instances where enforced. The allow or deny list can specify multiple users with the service-account mode or single-user access with the single-user mode. The access mode to be allowed or denied must be listed explicitly.
添加其他组织政策限制条件,如组织政策限制中所述。如果您要定义自定义组织政策,请确保 YAML 文件包含自定义限制条件定义。您无法使用使用其他方法(例如使用 Google Cloud 控制台)创建的自定义约束条件。
例如,您可能需要设置
compute.trustedImageProjects
约束条件,以定义可用于映像存储和磁盘实例化的项目。如果您复制此示例,请务必将allowed_values
替换为适当的项目列表:- policy_id: Define projects with trusted images. compliance_standards: - standard: control: constraint: org_policy_constraint: canned_constraint_id: compute.trustedImageProjects policy_rules: - values: allowed_values: - project1 - project2 - projectN description: This is a complete list of projects from which images can be used.
添加其他 Security Health Analytics 检测器,例如 Security Health Analytics 发现结果中记录的检测器。例如,添加 Security Health Analytics 检测器,以便在项目未使用 API 密钥进行身份验证时创建发现结果:
- policy_id: API Key Exists constraint: securityHealthAnalyticsModule: moduleEnablementState: ENABLED moduleName: API_KEY_EXISTS
再举一个例子,添加一个 Security Health Analytics 自定义模块来检测 Vertex AI 数据集是否已加密:
- policy_id: CMEK key is use for Vertex AI DataSet compliance_standards: - standard: NIST SP 800-53 control: SC-12 - standard: NIST SP 800-53 control: SC-13 constraint: security_health_analytics_custom_module: display_name: "vertexAIDatasetCMEKDisabled" config: customOutput: {} predicate: expression: "!has(resource.encryptionSpec)" resource_selector: resource_types: - aiplatform.googleapis.com/Dataset severity: CRITICAL description: "When enforced, this detector finds whether a dataset is not encrypted using CMEK." recommendation: "Restore the SHA module. See https://cloud.google.com/security-command-center/docs/custom-modules-sha-overview." module_enablement_state: ENABLED
再举一个例子,对于 Security Command Center Enterprise,添加特定于 AWS 的 Security Health Analytics 检测器(预览版):
- policy_set_id: AWS policy set description: Policy set containing AWS built-in SHA modules for securing S3 buckets. policies: - policy_id: S3 bucket replication enabled compliance_standards: - standard: NIST 800-53 R5 control: SI-13(5) constraint: securityHealthAnalyticsModule: moduleEnablementState: ENABLED moduleName: S3_BUCKET_REPLICATION_ENABLED description: This control checks whether an Amazon S3 bucket has Cross-Region Replication enabled. The control fails if the bucket does not have Cross-Region Replication enabled or if Same-Region Replication is also enabled. - policy_id: S3 bucket logging enabled compliance_standards: - standard: NIST 800-53 R5 control: SI-7(8) - standard: PCI DSS 3.2.1 control: 10.3.1 constraint: securityHealthAnalyticsModule: moduleEnablementState: ENABLED moduleName: S3_BUCKET_LOGGING_ENABLED description: AWS S3 Server Access Logging feature records access requests to storage buckets which is useful for security audits. By default, server access logging is not enabled for S3 buckets.
如果您添加了特定于 AWS 的检测器,则必须在组织一级部署态势。
将状态文件上传到受版本控制的源代码库,以便您跟踪一段时间内对其所做的更改。
创建安全状况
完成此任务可在 Security Command Center 中创建可部署的态势资源。如果您使用 Google Cloud 控制台根据预定义的状态模板创建了状态,系统会自动为您创建状态资源。
控制台
在 Google Cloud 控制台中,前往 Posture Management 页面。
确认您查看的是已激活 Security Command Center 高级或企业版层级的组织。
点击创建姿势。您可以从现有安全状况或模板入手,也可以使用应用于资源的政策来创建安全状况。
使用现有安全状况或模板创建安全状况
- 选择从现有安全状况或模板着手(浏览安全状况)。
- 指定姿势详细信息,例如姿势名称和说明。
- 点击选择姿势。您可以根据现有姿势或模板创建姿势。
- 选择安全状况,以使用现有安全状况创建安全状况。 从显示的安全状况列表中选择一个安全状况,然后从所选安全状况的可用修订版本列表中选择一个或多个修订版本。
- 选择模板以使用模板创建姿势,然后从显示的模板列表中选择一个或多个模板。
- 点击保存。在政策集部分下,您可以查看与所选状态关联的政策集列表。
- 从政策集列表中选择政策。您还可以在此页面上修改该政策,并将其移至其他政策集。您无法在同一政策集中创建包含两项同名政策的状态。
- 点击创建。
使用对资源应用的政策创建安全状况
- 选择从已应用于资源的安全状况着手(浏览资源)。
- 指定姿势详细信息,例如姿势名称和说明。
- 点击选择资源。
- 从显示的资源列表中选择一个资源,然后点击创建。
系统会将您重定向到安全状况详情页面,其中会显示您创建的安全状况的相关信息。您可以查看与该状态相关联的政策集。
gcloud
运行
gcloud scc postures create
命令,使用posture.yaml
文件创建姿势。gcloud scc postures create POSTURE_NAME \ --posture-from-file=POSTURE_FROM_FILE
替换以下值:
POSTURE_NAME
是相应姿势的相对资源名称。例如organizations/ORGANIZATION_ID/locations/global/postures/POSTURE_ID
。POSTURE_ID
是您的组织专有的、用于表示状态的字母数字名称。POSTURE_ID
不得超过 63 个字符。
例如,如需在组织
organizations/3589215982
下创建 ID 为posture-example-1
的状态,请运行以下命令:gcloud scc postures create \ organizations/3589215982/locations/global/postures/posture-example-1 \ --posture-from-file=posture.yaml
如果姿势创建流程失败,请删除姿势,排查错误,然后重试。
如需验证是否已成功创建姿势,请参阅查看姿势。
如需将此状态应用于您的环境,您必须部署状态。
Terraform
如果您为状态资源创建了 Terraform 配置,则必须使用基础架构即代码流水线对其进行预配。
如需了解详情,请参阅 Terraform on Google Cloud。
部署安全状况
创建态势后,您可以将其部署到项目、文件夹或组织,以便将政策及其定义应用于组织中的特定资源,并监控偏差。您只能向项目、文件夹或组织部署一种状态。
部署此状态时,会发生以下操作:
- 系统会应用组织政策和 Security Health Analytics 检测器的定义。
- 使用限制条件 ID 创建自定义组织政策的自定义限制条件,以便将状态修订 ID 作为您在状态中定义的限制条件 ID 的后缀添加到该限制条件中。
自定义模块的默认状态设为已启用。
控制台
在 Google Cloud 控制台中,前往 Posture Management 页面。
确认您查看的是已激活 Security Command Center 高级或企业版层级的组织。
在状态标签页中,点击要部署的状态。
在姿势详情页面上,选择相应姿势的修订版本。您选择的姿势修订版本必须处于有效状态。
点击应用于资源。
点击选择,选择要部署状态的组织、文件夹或项目。
点击应用姿势。
gcloud
运行 gcloud scc posture-deployments create
命令可将状态部署到项目、文件夹或组织。
gcloud scc posture-deployments create POSTURE_DEPLOYMENT_NAME \
--posture-name=POSTURE_NAME \
--posture-revision-id=POSTURE_REVISION_ID \
--target-resource=TARGET_RESOURCE
替换以下值:
POSTURE_DEPLOYMENT_NAME
是状态部署的相对资源名称。格式为organizations/ORGANIZATION_ID/locations/global/postureDeployments/POSTURE_DEPLOYMENT_ID
。LOCATION
是global
。POSTURE_ID
是您的组织独有的态势的字母数字名称。--posture-name=POSTURE_NAME
是您要部署的状态的名称。格式为organizations/ORGANIZATION_ID/locations/global/postures/POSTURE_ID
。
如果您的状态包含特定于 AWS 的检测器,您必须在组织一级部署状态(预览版)。
例如,如需部署状态,请运行以下命令:
gcloud scc posture-deployments create \
organizations/3589215982/locations/global/postureDeployments/postureDeployment123 \
--posture-name=organizations/3589215982/locations/global/postures/StagingAIPosture \
--posture-revision-id=version1 \
--target-resource=projects/4589215982
命令完成后,您可以查看状态信息。如果设备配置状态部署创建流程失败,请删除部署,排查错误,然后重试。
Terraform
您可以创建 Terraform 资源来部署状态。
resource "google_securityposture_posture_deployment" "posture_deployment_example" {
posture_deployment_id = "<POSTURE_DEPLOYMENT_ID>"
parent = "organizations/<ORGANIZATION_ID>"
location = "global"
description = "a new posture deployment"
target_resource = "<TARGET_RESOURCE>"
posture_id = "<POSTURE_NAME>"
posture_revision_id = "<POSTURE_REVISION_ID>"
}
如需了解详情,请参阅 google_securityposture_posture_deployment。
创建 Terraform 资源后,使用基础架构即代码流水线对其进行预配。
查看状态和状态部署信息
您可以查看状态和状态部署信息,以查看以下信息:
- 部署了哪些状态,以及在资源层次结构(组织、项目和文件夹)中的什么位置应用了这些状态
- 折叠状态的修订版本和状态
- 设备配置状态部署的操作详情
查看安全状况
您可以查看有关状态的信息(例如状态和政策定义)。
控制台
在 Google Cloud 控制台中,前往 Posture Management 页面。
选择您已为其激活 Security Command Center 高级或企业层级的组织。
在姿势标签页中,点击要查看的姿势。系统会显示姿势详情。
gcloud
运行 gcloud scc postures describe
命令以查看您创建的状态。
gcloud scc postures describe POSTURE_NAME \
--revision-id=REVISION_ID
替换以下值:
POSTURE_NAME
是相应姿势的相对资源名称。例如organizations/ORGANIZATION_ID/locations/global/postures/POSTURE_ID
。LOCATION
是global
。POSTURE_ID
是您的组织独有的态势的字母数字名称。revision-id=REVISION_ID
是一个可选标志,用于指定要查看的姿势版本。如果您未添加该标志,系统会返回最新版本。
例如,如需查看名称为 organizations/3589215982/locations/global/postures/posture-example-1
且修订 ID 为 abcdefgh
的状态,请运行以下命令:
gcloud scc postures describe \
organizations/3589215982/locations/global/postures/posture-example-1 \
--revision-id=abcdefgh
查看安全状况部署操作的相关信息
运行 gcloud scc posture-operations describe
命令可查看设备配置状态部署操作的操作详情。
gcloud scc posture-operations describe OPERATION_NAME
其中 OPERATION_NAME
是操作的相对资源名称。格式为 organizations/ORGANIZATION_ID/locations/global/operations/OPERATION_ID
。您可以在运行姿势命令时使用 --async
参数获取 OPERATION_ID
。
例如,如需查看名为 organizations/3589215982/locations/global/operations/operation-1694515698847-605272e4bcd7c-f93dade6-067467ae
的扫描操作,请运行以下命令:
gcloud scc posture-operations describe \
organizations/3589215982/locations/global/operations/operation-1694515698847-605272e4bcd7c-f93dade6-067467ae
查看有关配置状态部署的信息
您可以查看配置状态的部署位置以及部署状态。
控制台
在 Google Cloud 控制台中,前往 Posture Management 页面。
确认您查看的是已激活 Security Command Center 高级或企业版层级的组织。
在状态标签页中,点击您部署的状态。
前往资源标签页,查看部署到该状态的项目、文件夹和组织,以及部署状态。
gcloud
运行 gcloud scc posture-deployments describe
命令可查看已部署的状态的相关信息。
gcloud scc posture-deployments describe POSTURE_DEPLOYMENT_NAME
其中 POSTURE_DEPLOYMENT_NAME
是状态部署的相对资源名称。格式为 organizations/ORGANIZATION_ID/locations/global/postureDeployments/POSTURE_DEPLOYMENT_ID
。
LOCATION
是global
。POSTURE_DEPLOYMENT_ID
是态势部署的唯一名称。
例如,如需查看名为 organizations/3589215982/locations/global/postureDeployments/Posture-deployment-example-1
的配置状态部署的详细信息,请运行以下命令:
gcloud scc posture-deployments describe \
organizations/3589215982/locations/global/postureDeployments/Posture-deployment-example-1
更新设备配置和设备配置部署
您可以更新以下内容:
- 姿势的状态。
- 状态中的政策定义。
- 部署态势的组织、文件夹或项目。
更新状态中的政策定义
当您启用更多 Google Cloud 服务、部署更多资源或需要更多政策来满足新的或不断变化的合规性要求时,可能需要更新状态。如果您要更新已部署的状态修订版,此任务会创建新的状态修订版。否则,系统会更新您在运行更新命令时指定的状态修订版。
- 在文本编辑器中打开 YAML 文件。添加要更新的字段及其值。如果您要更新政策集,请确保您的文件包含您要纳入到状态信息中的所有政策集,包括现有的政策集。如需查看相关说明,请参阅修改设备状态 YAML 文件。
运行
gcloud scc postures update
命令以更新状态。gcloud scc postures update POSTURE_NAME \ --posture-from-file=POSTURE_FROM_FILE \ --revision-id=POSTURE_REVISION_ID \ --update-mask=UPDATE_MASK
替换以下值:
POSTURE_NAME
是相应姿势的相对资源名称。例如organizations/ORGANIZATION_ID/locations/global/postures/POSTURE_ID
。POSTURE_ID
是您的组织独有的态势的字母数字名称。
POSTURE_FROM_FILE
是包含您所做更改的posture.yaml
文件的相对或绝对路径。LOCATION
是global
。POSTURE_ID
是您的组织专有的、用于表示状态的字母数字名称。
POSTURE_FROM_FILE
是包含您所做更改的posture.yaml
文件的相对或绝对路径。--revision-id=REVISION_ID
是您要部署的状态修订版本。如果安全状况已部署,安全状况服务会自动创建具有不同修订 ID 的新版安全状况,并在输出中包含修订 ID。--update-mask=UPDATE_MASK
是您要更新的字段的列表,采用英文逗号分隔格式。此参数是可选的。您可以将UPDATE_MASK
设为以下某个值:*
或未指定:应用您对政策集和状态说明所做的更改。policy_sets
:仅应用您对政策集所做的更改。description
:仅应用您对姿势说明所做的更改。policy_sets, description
:应用您对政策集和状态说明所做的更改。state
:仅应用状态更改。
例如,如需更新组织
organizations/3589215982/locations/global
下名为posture-example-1
且修订 ID 设置为abcd1234
的状态,请运行以下命令:gcloud scc postures update \ organizations/3589215982/locations/global/posture-example-1 \ --posture-from-file=posture.yaml --revision-id=abcd1234 --update-mask=policy_sets
如果状态更新流程失败,请排查错误,然后重试。
如需验证状态是否已成功更新,请参阅查看状态。
更改姿势的状态
状态决定了该状态是否可部署到项目、文件夹或组织。
设备的折叠状态可能具有以下状态:
DRAFT
:安全状况修订版尚未做好部署准备。您无法部署处于DRAFT
状态的姿势修订版本。ACTIVE
:配置状态修订版可供部署。您可以将状态从ACTIVE
更改为DRAFT
或DEPRECATED.
DEPRECATED
:无法将DEPRECATED
态势修订版本部署到资源。 您必须先删除该状态的所有现有状态部署,然后才能弃用状态修订版。如果您想重新部署已废弃的状态修订版,则必须将其状态更改为ACTIVE
。
控制台
在 Google Cloud 控制台中,前往 Posture Management 页面。
确认您查看的是已激活 Security Command Center 高级或企业版层级的组织。
在姿势标签页中,点击要更新的姿势。
在姿势详情页面上,点击修改。
选择姿势状态,然后点击保存。
gcloud
如需更改折叠状态,请运行 gcloud scc postures update
命令。您无法在更新其他字段的同时更新姿势状态。如需了解如何运行 gcloud scc postures update
命令,请参阅修改设备状态 YAML 文件。
更新设备配置状态部署
更新项目、文件夹或组织上的状态配置,以部署新的状态或部署状态的新修订版。
如果您要更新的状态修订版包含使用 Google Cloud 控制台删除的自定义组织限制条件,则无法使用相同的状态 ID 更新状态部署。组织政策服务会阻止创建同名的自定义组织限制条件。您必须创建新版本的姿势或使用其他姿势 ID。
此外,系统会停用在更新过程中删除的政策部署的相关发现。
控制台
在 Google Cloud 控制台中,前往 Posture Management 页面。
确认您正在查看已激活 Security Command Center 高级或企业层级的组织。
在姿势标签页中,点击要更新的姿势。
在姿势详情页面上,选择相应姿势的修订版本。
点击应用于资源。
点击选择,选择要部署态势的组织、文件夹或项目。如果您看到一条消息,提示部署已存在,请先删除部署,然后再重试。
gcloud
运行 gcloud scc posture-deployments update
命令以部署状态。
gcloud scc posture-deployments update POSTURE_DEPLOYMENT_NAME \
--description=DESCRIPTION \
--update-mask=UPDATE_MASK \
--posture-id=POSTURE_ID \
--posture-revision-id=POSTURE_REVISION_ID
替换以下值:
POSTURE_DEPLOYMENT_NAME
是状态部署的相对资源名称。格式为organizations/ORGANIZATION_ID/locations/global/postureDeployments/POSTURE_DEPLOYMENT_ID
。POSTURE_DEPLOYMENT_ID
是态势部署的唯一名称。
--description=DESCRIPTION
是部署的状态的可选说明。--posture-id=POSTURE_ID
是您的组织专有的状态名称。格式为organizations/ORGANIZATION_ID/locations/global/postures/POSTURE_NAME
--posture-revision-id=POSTURE_REVISION_ID
是您要部署的状态修订版本。您可以从创建姿势或查看姿势时收到的响应中获取此 ID。--update-mask=UPDATE_MASK
是您要更新的字段的列表,采用英文逗号分隔格式。此参数为可选参数。
例如,如需使用以下条件更新设备配置部署,请执行以下操作:
- 组织:
organizations/3589215982/locations/global
- 安全状况部署 ID:
postureDeploymentexample
- 状态 ID:
StagingAIPosture
- 修订:
version2
运行以下命令:
gcloud scc posture-deployments update \
organizations/3589215982/locations/global/postureDeployments/postureDeploymentexample \
--posture-id=organizations/3589215982/locations/global/postures/StagingAIPosture \
--posture-revision-id=version2
命令完成后,您可以查看状态信息。如果设备配置部署更新流程失败,请删除部署,排查错误,然后重试。
监控状态偏移
您可以在安全状况中监控已部署的状况,以了解其是否与您定义的政策存在偏差。偏移是指在状态之外发生的政策更改。例如,当管理员在控制台中更改政策定义,而不是更新配置状态部署时,就会出现偏移。
安全状况服务会生成发现结果,每当出现偏差时,您都可以在 Google Cloud 控制台或 gcloud CLI 中查看这些结果。
控制台
如果您创建了适用于 Vertex AI 工作负载的状态,则可以通过两种方式监控偏移:通过发现页面和概览页面。对于所有其他状态,您可以通过发现页面监控偏移情况。
如需从发现结果页面监控偏差,请执行以下操作:
在 Google Cloud 控制台中,前往发现页面。
确认您查看的是已激活 Security Command Center 高级或企业版层级的组织。
在快速过滤条件窗格中,选择违反态势发现结果。您还可以在查询预览中输入以下过滤条件:
state="ACTIVE" AND NOT mute="MUTED" AND finding_class="POSTURE_VIOLATION"
如需查看某项发现结果的详细信息,请点击该发现结果。
如需从概览页面监控偏移(仅限 Vertex AI 工作负载),请执行以下操作: 1. 在 Google Cloud 控制台中,前往概览页面。
1. 确认您查看的是已激活 Security Command Center 高级或企业层级的组织。1. 查看 AI 工作负载发现结果窗格。
- 漏洞标签页会显示与专门适用于 Vertex AI 工作负载的任何 Security Health Analytics 自定义模块相关的所有漏洞。
- “政策偏差”标签页会显示与您在某个状态中应用的 Vertex AI 组织政策相关的任何偏差。
- 如需查看某项发现结果的详细信息,请点击该发现结果。
gcloud
如需在 gcloud CLI 中查看偏差发现结果,请运行以下命令:
gcloud scc findings list ORGANIZATION_ID \
--filter="category=\"SECURITY_POSTURE_DRIFT\""
其中 ORGANIZATION_ID
是组织的 ID。
如需详细了解如何解决这些问题,请参阅安全状况服务发现结果。您可以按照从 Security Command Center 导出任何其他发现结果的方式导出这些发现结果。如需了解详情,请参阅集成选项和导出 Security Command Center 数据。
如需停用偏移发现结果,您可以使用相同的状态 ID 和状态修订版更新状态部署。
出于测试目的生成偏差发现
部署态势后,您可以监控是否存在与政策偏差。如需在测试环境中查看漂移问题的实际效果,请完成以下操作:
在控制台中,前往组织政策页面。
修改您在已部署的配置状态中定义的某项政策。例如,如果您使用预定义的安全 AI 状态,则可以修改限制对新的 Vertex AI Workbench 笔记本和实例的公共 IP 访问权限政策。
更改政策后,点击设置政策。
转到发现结果页面。
在快速过滤条件窗格中的来源显示名称部分,选择安全状况。与您所做的更改相关的发现应该会在 5 分钟内显示。
如需查看相应发现结果的详细信息,请点击相应发现结果。
删除设备配置状态部署
如果某个状态配置部署未正确部署、您不再需要特定状态,或者您不想再将特定状态分配给项目、文件夹或组织,则可以将其删除。如需删除设备配置状态部署,设备配置状态部署必须处于以下某种状态:
ACTIVE
CREATE_FAILED
UPDATE_FAILED
DELETE_FAILED
如需验证设备状态部署的状态,请参阅查看设备状态部署的相关信息。
删除安全状况部署后,您会从分配了安全状况的资源(组织、文件夹或项目)中移除该安全状况。此外,它还会停用关联的发现结果。
不同类型政策的输出如下:
- 删除包含自定义组织政策的安全状况部署时,系统也会一并删除自定义组织政策。不过,自定义限制条件仍会保留。
当您删除包含内置 Security Health Analytics 检测器的配置状态部署时,Security Health Analytics 模块的最终状态取决于部署所在的组织、文件夹或项目。
- 如果您在文件夹或项目上部署了状态,内置的 Security Health Analytics 检测器会从父级组织或文件夹继承其状态。
- 如果您在组织级部署了状态,内置的 Security Health Analytics 检测器会恢复为默认状态。如需了解默认状态的说明,请参阅启用和停用检测器。
控制台
在 Google Cloud 控制台中,前往 Posture Management 页面。
确认您查看的是已激活 Security Command Center 高级或企业层级的组织。
在姿势标签页中,点击您要从其分配到的资源中移除的姿势。
在状态详情页面上,选择相应状态的修订版本,然后前往资源。
在部署了当前有效状态修订版本的资源列表中,点击移除。
gcloud
运行 gcloud scc posture-deployments delete
命令可删除设备配置部署。
gcloud scc posture-deployments deletePOSTURE_DEPLOYMENT_NAME
POSTURE_DEPLOYMENT_NAME
是状态部署的相对资源名称。格式为 organizations/ORGANIZATION_ID/locations/global/postureDeployments/POSTURE_DEPLOYMENT_ID
。
POSTURE_DEPLOYMENT_ID
是态势部署的唯一名称。
例如,如需删除名为 organizations/3589215982/locations/global/postureDeployments/posture-deployment-example-1
的状态配置部署,请运行以下命令:
gcloud scc posture-deployments delete \
organizations/3589215982/locations/global/postureDeployments/posture-deployment-example-1
删除安全状况
删除安全状况时,所有修订版本也会一并删除。如果某个状态有任何修订版本已部署,您将无法删除该状态。您必须先删除所有配置状态部署,然后才能完成此任务。
控制台
在 Google Cloud 控制台中,前往 Posture Management 页面。
确认您查看的是已激活 Security Command Center 高级或企业层级的组织。
在姿势标签页中,点击要删除的姿势。
在姿势详情页面上,点击删除。
gcloud
运行 gcloud scc postures delete
命令可删除某种姿势。
gcloud scc postures delete POSTURE_NAME
POSTURE_NAME
是相应姿势的相对资源名称。例如 organizations/ORGANIZATION_ID/locations/global/postures/POSTURE_ID
。状态 ID 是您的状态的字母数字名称,对贵组织而言是唯一的。
例如,如需删除名为 organizations/3589215982/locations/global/postures/posture-example-1
的姿势,请运行以下命令:
gcloud scc postures delete \
organizations/3589215982/locations/global/postures/posture-example-1