管理安全状况

本页面介绍了如何在激活 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 或更高版本

您可以从以下任一开发环境使用本页面上的 gcloud CLI 示例:

  • Cloud Shell:如需使用已设置 gcloud CLI 的在线终端,请激活 Cloud Shell。

    Cloud Shell 会话会在页面底部启动,并显示命令行提示符。该会话可能需要几秒钟来完成初始化。

  • 本地 shell:如需在本地开发环境中使用 gcloud CLI,请安装初始化 gcloud CLI。

如需设置 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 中根据安全状况 YAML 文件创建安全状况。

  • 部署折叠状态。

以下部分提供了详细说明。

创建安全状况 YAML 文件

安全状况由您一起部署的一个或多个政策集组成。这些政策集包含您要纳入您的折叠状态的所有预防和检测政策。

如需创建折叠状态,请执行以下操作之一:

安全状况是 YAML 文件。如需详细了解 posture.yaml 文件及其键值对,请参阅安全状况 YAML 文件

根据预定义的安全状况模板创建安全状况文件

您可以使用预定义的安全状况模板来创建安全状况文件。

控制台

  1. 在 Google Cloud 控制台中,前往安全状况管理页面。

    前往 Posture Management

  2. 验证您正在查看的组织是启用了 Security Command Center 专业版或企业层级的组织。

  3. 模板标签页中,点击要使用的模板。

  4. 模板详情页面中,点击创建安全状况

  5. 为该折叠状态提供一个唯一的名称,然后点击创建。此时系统会打开安全状况详情页面。

  6. 完成以下任一操作:

    • 如果您可以在不进行任何更改的情况下使用折叠状态(例如,您使用了某个 _essentials 模板),则可以部署该折叠状态。如需了解相关说明,请参阅部署折叠状态

    • 如果您需要修改任何政策集或政策(例如,您使用了某个 _enhanced 模板),请完成修改状态 YAML 文件将折叠状态设置为 ACTIVE

gcloud

  1. 查看预定义的安全状况模板,确定哪些模板适用于您的环境。您可以在不进行任何更改的情况下应用其中一些政策,但另一些政策则需要自定义政策以匹配您的环境。

  2. 使用以下方法之一将 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

    替换以下值:

    • 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

  3. 完成以下任一操作:

    • 如果您可以在不进行任何更改的情况下使用折叠状态(例如,您使用某个 _essentials 模板),则可以创建折叠状态。 有关说明,请参阅创建折叠状态

    • 如果您需要修改任何政策集或政策,请完成修改安全状况 YAML 文件

通过从现有环境提取政策来创建安全状况文件

您可以提取您在现有项目、文件夹或组织中配置的政策(组织政策,包括自定义政策和所有 Security Health Analytics 检测器,包括自定义检测器),以创建安全状况文件。您无法从已应用安全状况的组织、文件夹或项目中提取政策。

此命令仅提取您之前为组织、文件夹或项目配置的政策,不会从父级文件夹或组织中提取政策。

如果您已将 Security Command Center Enterprise 连接到 AWS,则此命令还会提取 AWS(预览版)专用检测器。

  1. 运行 gcloud scc postures extract 命令以提取您环境中的现有组织政策和 Security Health Analytics 检测器。

    gcloud scc postures extract \
    POSTURE_NAME --workload=WORKLOAD

    替换以下值:

    • POSTURE_NAME 是折叠状态的相对资源名称。例如 organizations/ORGANIZATION_ID/locations/LOCATION/postures/POSTURE_ID

      • LOCATIONglobal

      • 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 folder/3589215982 > posture.yaml

  2. 打开生成的 posture.yaml 文件进行修改。

  3. 完成以下任一操作:

    • 如果您可以在不进行任何更改的情况下使用折叠状态(例如,您使用某个 _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
          }
        }
      }
    }
  }
  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 文件,请完成以下步骤:

  1. 在文本编辑器中打开折叠状态 YAML 文件。

  2. 验证文件开头的 namedescriptionstate

    name: organizations/ORGANIZATION_ID/locations/LOCATION/posture/POSTURE_ID
    description: DESCRIPTION
    state: STATE
    

    如需查看这些密钥值的说明,请参阅安全状况 YAML 文件

    例如:

    name: organizations/3589215982/locations/global/posture/stagingAIPosture
    description: This posture applies to staging environments for Vertex AI.
    state: ACTIVE
    
  3. 自定义该文件中的政策以满足您的要求:

    1. 查看现有政策及其价值。对于需要特定于您的环境的信息的政策,请适当设置相应的值。例如,对于安全 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.
      
    2. 添加其他组织政策限制条件,如组织政策限制条件中所述。如果要定义自定义组织政策,请确保 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.
      
    3. 添加其他 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 专用的检测器,则必须在组织级层部署安全状况。

  4. 将安全状况文件上传到具有版本控制的源代码,以便您可以跟踪随时间推移对其所做的更改。

创建折叠状态

完成此任务,在 Security Command Center 中创建您可以部署的状况资源。如果您使用 Google Cloud 控制台通过预定义的安全状况模板创建了安全状况,则系统会自动为您创建安全状况资源。

gcloud

  1. 运行 gcloud scc postures create 命令以使用 posture.yaml 文件创建折叠状态。

    gcloud scc postures create \
    POSTURE_NAME --posture-from-file=POSTURE_FROM_FILE

    替换以下值:

    • POSTURE_NAME 是折叠状态的相对资源名称。例如 organizations/ORGANIZATION_ID/locations/LOCATION/postures/POSTURE_ID

      • LOCATIONglobal

      • POSTURE_ID 是贵组织独有的折叠状态的字母数字名称。POSTURE_ID 不得超过 63 个字符。

    • POSTURE_FROM_FILEposture.yaml 文件的相对或绝对路径。

    例如,如需在组织 organizations/3589215982 下创建 ID 为 posture-example-1 的折叠状态,请运行以下命令:

    gcloud scc postures create organizations/3589215982/locations/global/postures/posture-example-1 --posture-from-file=posture.yaml

    如果安全状况创建过程失败,请删除安全状况,对错误进行问题排查,然后重试。

  2. 如需验证是否已成功创建折叠状态,请参阅查看折叠状态

如需将此安全状况应用到您的环境,您必须部署该安全状况

Terraform

如果您为安全状况资源创建了 Terraform 配置,则必须使用基础架构即代码流水线对其进行预配。

如需了解详情,请参阅在 Google Cloud 上使用 Terraform

部署折叠状态

创建安全状况后,您可以将其部署到项目、文件夹或组织,以便将政策及其定义应用于组织中的特定资源并监控偏移。您只能将一种安全状况部署到一个项目、文件夹或组织。

验证您的折叠状态是否为 ACTIVE

部署折叠状态时,会执行以下操作:

  • 此处还介绍了组织政策和 Security Health Analytics 检测器的定义。

  • 系统会使用限制条件 ID 创建自定义组织政策的自定义限制条件,以便将安全状况修订版本 ID 作为后缀 ID 添加到您在折叠状态下定义的限制条件 ID。

  • 自定义模块的默认状态设置为 Enabled

控制台

  1. 在 Google Cloud 控制台中,前往安全状况管理页面。

    前往 Posture Management

  2. 验证您正在查看的组织是启用了 Security Command Center 专业版或企业层级的组织。

  3. 安全状况标签页中,点击要部署的折叠状态。

  4. 安全状况详情页面中,选择要部署的状况的修订版本。

  5. 点击部署到节点

  6. 选择要将安全状况部署到的组织、文件夹或项目。如果您的安全状况包含 AWS 专用的检测器,则必须在组织级层部署该安全状况(预览版)。

  7. 点击选择

  8. 针对要应用该折叠状态的每个组织、文件夹或项目,重复第 5 步到第 7 步。

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/LOCATION/postureDeployments/POSTURE_DEPLOYMENT_ID

    • LOCATIONglobal

    • POSTURE_DEPLOYMENT_ID 是安全状况部署的唯一名称。POSTURE_DEPLOYMENT_ID 不得超过 63 个字符。

  • --posture-name=POSTURE_NAME 是要部署的折叠状态的名称。格式为 organizations/ORGANIZATION_ID/locations/LOCATION/postures/POSTURE_ID

    • LOCATIONglobal

    • POSTURE_ID 是贵组织独有的折叠状态的字母数字名称。

  • --posture-revision-id=POSTURE_REVISION_ID 是您要部署的状态修订版本。您可以通过在创建折叠状态查看折叠状态时收到的响应中获取该状态。

  • --target-resource=TARGET_RESOURCE 是您要部署该安全状况的组织、文件夹或项目的名称。您可以使用以下格式之一:

    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
    • projects/PROJECT_NUMBER

    如果您的安全状况包含 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 资源后,请使用基础架构即代码流水线对其进行预配。

查看安全状况和状况部署信息

您可以查看安全状况和状况部署信息,以便了解以下信息:

  • 部署了哪些安全状况,以及在资源层次结构(组织、项目和文件夹)中的什么位置应用这些安全状况

  • 折叠状态的修订和状态

  • 安全状况部署的操作详情

查看折叠状态

您可以查看有关折叠状态的信息(例如其状态和政策定义)。

控制台

  1. 在 Google Cloud 控制台中,前往安全状况管理页面。

    前往 Posture Management

  2. 选择您在其中激活 Security Command Center 专业版或企业层级的组织。

  3. Postures 标签页中,点击您要查看的折叠状态。此时将显示折叠状态详细信息。

gcloud

运行 gcloud scc postures describe 命令以查看您创建的折叠状态。

gcloud scc postures describe POSTURE_NAME \
--revision-id=REVISION_ID

替换以下值:

  • POSTURE_NAME 是折叠状态的相对资源名称。例如 organizations/ORGANIZATION_ID/locations/LOCATION/postures/POSTURE_ID

    • LOCATIONglobal

    • 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 securityposture-operations describe 命令以查看安全状况部署操作的操作详细信息。

gcloud scc securityposture-operations describe OPERATION_NAME

其中,OPERATION_NAME 是操作的相对资源名称。格式为 organizations/ORGANIZATION_ID/LOCATION/global/operations/OPERATION_IDLOCATION 是部署安全状况部署的位置。运行 Posture 命令时,您可以使用 --async 参数获取 OPERATION_ID

例如,如需查看名为 organizations/3589215982/locations/global/operations/operation-1694515698847-605272e4bcd7c-f93dade6-067467ae 的扫描操作,请运行以下命令:

gcloud scc securityposture-operations describe
organizations/3589215982/locations/global/operations/operation-1694515698847-605272e4bcd7c-f93dade6-067467ae

查看安全状况部署的相关信息

您可以查看部署状态的位置,以及部署状态。

控制台

  1. 在 Google Cloud 控制台中,前往安全状况管理页面。

    前往 Posture Management

  2. 验证您正在查看的组织是启用了 Security Command Center 专业版或企业层级的组织。

  3. 安全状况标签页中,点击您部署的折叠状态。

  4. 点击部署标签页。您可以查看部署了安全状况的目标项目、文件夹和组织,以及部署状态。

gcloud

运行 gcloud scc posture-deployments describe 命令可查看已部署的折叠状态的相关信息。

gcloud scc posture-deployments describe
POSTURE_DEPLOYMENT_NAME

其中,POSTURE_DEPLOYMENT_NAME 是安全状况部署的相对资源名称。格式为 organizations/ORGANIZATION_ID/locations/LOCATION/postureDeployments/POSTURE_DEPLOYMENT_ID

  • LOCATIONglobal

  • 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 服务、部署其他资源或需要其他政策以满足新的或更改的合规性要求时,您可能需要更新安全状况。如果您要更新已部署的状况修订版本,则此任务会创建新的安全状况修订版本。否则,系统会更新运行更新命令时指定的安全状况修订版本。

  1. 在文本编辑器中打开 YAML 文件。添加要更新的字段及其值。如果要更新政策集,请确保您的文件包含要纳入该状态的所有政策集,包括已存在的政策集。如需了解相关说明,请参阅修改折叠状态 YAML 文件

  2. 运行 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/LOCATION/postures/POSTURE_ID

      • LOCATIONglobal

      • 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

    如果折叠状态更新过程失败,请排查错误,然后重试。

  3. 如需验证折叠状态是否已成功更新,请参阅查看折叠状态

更改折叠状态

折叠状态的状态决定了它是否可以部署到项目、文件夹或组织。

折叠状态有以下几种状态:

  • DRAFT:折叠状态修订版本尚未准备好进行部署。您无法部署处于 DRAFT 状态的状况修订版本。

  • ACTIVE:安全状况修订版本可用于部署。您可以将状态从 ACTIVE 更改为 DRAFTDEPRECATED.

  • DEPRECATED:无法将 DEPRECATED 安全状况修订版本部署到资源。您必须先删除安全状况的所有现有安全状况部署,然后才能弃用安全状况修订版本。如果您要重新部署已废弃的折叠状态修订版本,则必须将其状态更改为 ACTIVE

如需更改折叠状态,请运行 gcloud scc postures update 命令。您无法在更新其他字段的同时更新折叠状态。如需了解如何运行 gcloud scc postures update 命令,请参阅修改折叠状态 YAML 文件

更新安全状况部署

更新项目、文件夹或组织上的安全状况部署,以部署新安全状况或部署安全状况的新修订版本。

如果您要更新的安全状况修订版本包含使用 Google Cloud 控制台删除的自定义组织限制条件,则无法使用相同的安全状况 ID 更新安全状况部署。组织政策服务会阻止创建同名的自定义组织限制条件。因此,您必须创建新版折叠状态或使用其他折叠状态 ID。

控制台

  1. 在 Google Cloud 控制台中,前往安全状况管理页面。

    前往 Posture Management

  2. 验证您正在查看的组织是激活了 Security Command Center 专业版或企业层级。

  3. Postures 标签页中,点击已更新的折叠状态。

  4. 安全状况详情页面中,选择您更新后的安全状况的修订版本。

  5. 点击部署到节点

  6. 选择要将安全状况部署到的组织、文件夹或项目。如果系统显示消息称部署已存在,请删除部署,然后重试。如果您的安全状况包含 AWS 专用的检测器,则必须在组织级别部署该安全状况(预览版)。

  7. 点击选择

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/LOCATION/postureDeployments/POSTURE_DEPLOYMENT_ID

    • LOCATIONglobal

    • POSTURE_DEPLOYMENT_ID 是安全状况部署的唯一名称。

  • --description=DESCRIPTION 是已部署折叠状态的可选说明。

  • --posture-id=POSTURE_ID 是您的组织独有的折叠状态名称。格式为 organizations/ORGANIZATION_ID/locations/LOCATION/postures/POSTURE_NAME

  • --posture-revision-id=POSTURE_REVISION_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 工作负载的折叠状态,则可以通过以下两种方式监控偏移:发现结果页面和概览页面。对于所有其他折叠状态,您可以通过发现结果页面监控偏移。

如需监控发现结果页面的偏移情况,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往发现结果页面。

    前往“发现结果”

  2. 验证您正在查看的组织是启用了 Security Command Center 专业版或企业层级的组织。

  3. 快速过滤器窗格中,选择状态违规问题发现结果。 您还可以在查询预览中输入以下过滤条件:

    state="ACTIVE" AND NOT mute="MUTED" AND finding_class="POSTURE_VIOLATION"
    
  4. 如需查看某个发现结果的详细信息,请点击相应发现结果。

如需监控从概览页面(仅限 Vertex AI 工作负载)的偏移情况,请执行以下操作:

  1. 在 Google Cloud 控制台中,前往概览页面。

    转到“概览”页面

  2. 验证您正在查看的组织是启用了 Security Command Center 专业版或企业层级的组织。

  3. 查看 AI Workload Findings 窗格。

    • 漏洞标签页会显示与专门应用于 Vertex AI 工作负载的任何 Security Health Analytics 自定义模块相关的所有漏洞。
    • Policy Drift 标签页会显示与您在折叠状态下应用的 Vertex AI 组织政策相关的任何偏移。
  4. 如需查看某个发现结果的详细信息,请点击相应发现结果。

gcloud

如需查看偏移发现结果,请在 gcloud CLI 中运行以下命令:

gcloud scc findings list ORGANIZATION_ID \
--filter="category=\"SECURITY_POSTURE_DRIFT\""

其中,ORGANIZATION_ID 是组织的 ID。

如需详细了解如何处理这些发现结果,请参阅安全状况服务发现结果。您可以导出这些发现结果,方式与从 Security Command Center 导出任何其他发现结果的方式相同。如需了解详情,请参阅集成方案导出 Security Command Center 数据

如需停用偏移发现结果,您可以使用相同的安全状况 ID 和安全状况修订版本更新安全状况部署

生成用于测试的偏移发现结果

部署安全状况后,您可以监控政策的偏差。如需在测试环境中查看偏移发现结果,请完成以下操作:

  1. 在控制台中,转到组织政策页面。

    前往“组织政策”

  2. 修改您在已部署状态中定义的一项政策。例如,如果您使用预定义的安全 AI 状况,则可以修改对新的 Vertex AI Workbench 笔记本和实例限制公共 IP 访问权限政策。

  3. 更改政策后,点击设置政策

  4. 转到发现结果页面。

    前往“发现结果”

  5. 快速过滤器窗格的来源显示名称部分,选择 Security Posture。与您的更改相关的发现结果应该会在五分钟内显示。

  6. 如需查看发现结果的详细信息,请点击发现结果。

删除安全状况部署

如果未正确部署、不再需要特定安全状况,或者您不希望再为项目、文件夹或组织分配特定安全状况,则可以将其删除。如需删除安全状况部署,安全状况部署必须处于以下状态之一:

  • ACTIVE
  • CREATE_FAILED
  • UPDATE_FAILED
  • DELETE_FAILED

如需验证安全状况部署的状态,请参阅查看有关安全状况部署的信息

删除安全状况部署时,您会从分配了安全状况的资源(组织、文件夹或项目)中移除该安全状况。

不同类型的政策的输出如下所示:

  • 当您删除包含自定义组织政策的状况部署时,自定义组织政策也会被删除。但是,自定义限制条件仍然存在。

  • 当您删除包含内置 Security Health Analytics 检测器的状况部署时,Security Health Analytics 模块的最终状态将取决于部署作业所在的组织、文件夹或项目。

    • 如果您在文件夹或项目上部署了安全状况,则内置的 Security Health Analytics 检测器会从父级组织或文件夹继承其状态。
    • 如果您在组织级别部署了安全状况,则内置的 Security Health Analytics 检测器会还原为默认状态。如需了解默认状态,请参阅启用和停用检测器

运行 gcloud scc posture-deployments delete 命令以删除安全状况部署。

gcloud scc posture-deployments delete
POSTURE_DEPLOYMENT_NAME

POSTURE_DEPLOYMENT_NAME 是安全状况部署的相对资源名称。格式为 organizations/ORGANIZATION_ID/locations/LOCATION/postureDeployments/POSTURE_DEPLOYMENT_ID

  • LOCATIONglobal

  • 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

删除折叠状态

删除折叠状态时,所有修订版本也会一并删除。您无法删除已部署的折叠状态。您必须先删除折叠状态部署,然后才能完成此任务。

运行 gcloud scc postures delete 命令可删除折叠状态。

gcloud scc postures delete POSTURE_NAME

POSTURE_NAME 是折叠状态的相对资源名称。例如 organizations/ORGANIZATION_ID/locations/LOCATION/postures/POSTURE_ID。折叠状态 ID 是组织独有的折叠状态的字母数字名称。LOCATIONglobal

例如,如需删除名为 organizations/3589215982/locations/global/postures/posture-example-1 的折叠状态,请运行以下命令:

gcloud scc postures delete \
organizations/3589215982/locations/global/postures/posture-example-1

后续步骤