管理安全防護機制

本頁面說明啟用 Security Command Center 後,如何設定及使用安全防護機制服務。首先,您必須建立防護機制,其中包含以政策集形式整理的政策,然後使用防護機制部署作業部署防護機制。部署安全狀態後,您可以監控漂移情形,並隨著時間進一步調整安全狀態。

事前準備

請先完成這些工作,再完成本頁面上的其餘工作。

啟用 Security Command Center 進階或 Enterprise 級別

確認已在機構層級啟用 Security Command Center Premium 方案或 Enterprise 方案

如要將安全狀態分析偵測工具做為政策使用,請在啟用程序中選取安全狀態分析服務。

設定權限

如要取得使用安全狀態所需的權限,請要求管理員授予您安全狀態管理員 (roles/securityposture.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

您或許還可透過自訂角色或其他預先定義的角色取得必要權限。

如要進一步瞭解安全防護機制角色和安全防護機制權限,請參閱「機構層級啟用作業的 IAM」。

設定 Google Cloud CLI

您必須使用 Google Cloud CLI 461.0.0 以上版本

In the Google Cloud console, activate Cloud Shell.

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 Command Center Enterprise,並連線至 AWS,以收集設定和資源資料

建立及部署防護機制

如要開始使用安全防護狀態,請完成下列步驟:

  • 建立姿勢 YAML 檔案,定義適用於安全姿勢的政策。
  • 根據姿態 YAML 檔案,在 Google Cloud 中建立姿態。
  • 部署防護機制。

下列各節將提供詳細操作說明。

建立姿勢 YAML 檔案

防護機制包含您一併部署的一或多個政策組合。這些政策集包含您想納入狀態的所有預防和偵測政策。

如要建立姿勢,請執行下列其中一項操作:

如要瞭解可在姿勢中使用的欄位,請參閱 Posture 參考資料PolicySet 參考資料

使用預先定義的防護機制範本建立防護機制檔案

您可以使用預先定義的姿勢範本建立姿勢檔案。

主控台

  1. 前往 Google Cloud 控制台的「Posture Management」頁面。

    前往「防護機制管理」

  2. 確認您目前查看的組織已啟用 Security Command Center Premium 或 Enterprise 方案。

  3. 在「範本」分頁中,按一下要使用的範本。

  4. 在「範本詳細資料」頁面中,按一下「建立姿勢」

  5. 為姿勢提供專屬名稱,然後按一下「建立」。「Posture details」(姿勢詳細資料) 頁面隨即開啟。

  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/global/postureTemplates/POSTURE_TEMPLATE \
        --revision-id=REVISION_ID
    

    替換下列值:

    • ORGANIZATION_ID 是您啟用 Security Command Center 進階或 Enterprise 方案的機構。
    • 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 Command Center Enterprise 連線至 AWS,這項指令也會擷取 AWS 專用的偵測器 (預先發布版)。

  1. 執行 gcloud scc postures extract 指令,擷取環境中現有的機構政策和安全狀態分析偵測器。

    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
    
  2. 開啟產生的 posture.yaml 檔案進行編輯。

  3. 完成下列任一動作:

    • 如果可以不進行任何變更就使用姿勢 (例如使用其中一個_essentials範本),即可建立姿勢。如需操作說明,請參閱「建立姿勢」。
    • 如要修改任何政策集或政策,請完成「修改姿態 YAML 檔案」。

使用政策定義建立 Terraform 資源

您可以建立 Terraform 設定來建立姿勢資源。

舉例來說,您可以建立姿勢資源,其中包含內建和自訂的機構政策限制,以及內建和自訂的 Security Health Analytics 偵測器。針對 AWS 專屬的內建安全狀態分析偵測工具,我們提供預先發布版的狀態管理支援。

resource "google_securityposture_posture" "posture1"{
  posture_id  = "posture_example"
  parent      = "organizations/123456789"
  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
            condition {
            	description = "condition description"
            	expression  = "resource.matchTag('org_id/tag_key_short_name,'tag_value_short_name')"
            	title       = "a CEL condition"
            }
          }
        }
      }
    }
    policies {
      policy_id = "custom_org_policy"
      constraint {
        org_policy_constraint_custom {
          custom_constraint {
            name           = "organizations/123456789/customConstraints/custom.disableGkeAutoUpgrade"
            display_name   = "Disable GKE auto upgrade"
            description    = "Only allow GKE NodePool resource to be created or updated if AutoUpgrade is not enabled where this custom constraint is enforced."
            action_type    = "ALLOW"
            condition      = "resource.management.autoUpgrade == false"
            method_types   = ["CREATE", "UPDATE"]
            resource_types = ["container.googleapis.com/NodePool"]
          }
          policy_rules {
            enforce = true
            condition {
            	description = "condition description"
            	expression = "resource.matchTagId('tagKeys/key_id','tagValues/value_id')"
            	title = "a CEL condition"
            }
          }
        }
      }
    }
  }
  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 = "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/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
    
  3. 自訂檔案中的政策,以符合您的需求。

    如要瞭解可使用的欄位,請參閱 PolicySet 參考資料

    1. 查看現有政策及其值。如果政策需要特定環境的資訊,請適當設定值。舉例來說,在安全 AI 擴充預先定義的姿勢中,針對 ainotebooks.accessMode 政策,在 policyRules 下方新增允許的存取模式:

      - policyId: Define access mode for Vertex AI Workbench notebooks and instances
        complianceStandards:
        - standard: NIST SP 800-53
          control: AC-3(3)
        - standard: NIST SP 800-53
          control: AC-6(1)
        constraint:
          orgPolicyConstraint:
            cannedConstraintId: ainotebooks.accessMode
            policyRules:
            - values:
                allowedValues: 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 限制,定義可用於映像檔儲存空間和磁碟執行個體化的專案。如果您複製這個範例,請務必將 allowedValues 替換為適當的專案清單:

      - policyId: Define projects with trusted images.
        complianceStandards:
        - standard:
          control:
        constraint:
          orgPolicyConstraint:
            cannedConstraintId: compute.trustedImageProjects
            policyRules:
            - values:
                allowedValues:
                - project1
                - project2
                - projectN
        description: This is a complete list of projects from which images can be used.
      
    3. 新增其他安全狀態分析偵測工具,例如「安全狀態分析發現項目」中記錄的工具。舉例來說,如果專案未使用 API 金鑰進行驗證,請新增 Security Health Analytics 偵測器來建立發現結果:

      - policyId: API Key Exists
        constraint:
          securityHealthAnalyticsModule:
            moduleEnablementState: ENABLED
            moduleName: API_KEY_EXISTS
      

      以另一個範例來說,您可以新增 Security Health Analytics 自訂模組,偵測 Vertex AI 資料集是否經過加密:

      - policyId: CMEK key is use for Vertex AI DataSet
        complianceStandards:
        - standard: NIST SP 800-53
          control: SC-12
        - standard: NIST SP 800-53
          control: SC-13
        constraint:
          securityHealthAnalyticsCustomModule:
            displayName: "vertexAIDatasetCMEKDisabled"
            config:
              customOutput: {}
              predicate:
                expression: "!has(resource.encryptionSpec)"
              resourceSelector:
                resourceTypes:
                - 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."
            moduleEnablementState: ENABLED
      

      以 Security Command Center Enterprise 為例,新增 AWS 專用的 Security Health Analytics 偵測器 (預覽版):

      - policySetId: AWS policy set
        description:  Policy set containing AWS built-in SHA modules for securing S3 buckets.
        policies:
        - policyId: S3 bucket replication enabled
          complianceStandards:
          - 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.
      
        - policyId: S3 bucket logging enabled
          complianceStandards:
          - 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 控制台,透過預先定義的姿勢範本建立姿勢,系統會自動為您建立姿勢資源。

主控台

  1. 前往 Google Cloud 控制台的「Posture Management」頁面。

    前往「防護機制管理」

  2. 確認您目前查看的組織已啟用 Security Command Center Premium 或 Enterprise 方案。

  3. 按一下「建立姿勢」。您可以從現有防護機制或範本著手,也可以使用套用至資源的政策,建立防護機制。

    使用現有防護機制或範本建立防護機制

    1. 選取「使用現有防護機制或範本 (瀏覽防護機制)」
    2. 指定姿勢詳細資料,例如姿勢名稱和說明。
    3. 按一下「選取姿勢」。您可以根據現有姿勢或範本建立姿勢。
      • 選取「防護機制」,使用現有防護機制建立防護機制。 從顯示的防護機制清單中選取防護機制,然後從所選防護機制的可用修訂版本清單中,選取一或多個修訂版本。
      • 選取「範本」,即可使用範本建立姿勢,然後從顯示的範本清單中選取一或多個範本。
    4. 按一下 [儲存]。在「政策集」部分下方,您可以查看與所選姿勢相關聯的政策集清單。
    5. 從政策組合清單中選取政策。您也可以在這個頁面編輯政策,並將政策移至其他政策組合。您無法在同一個政策組合中,建立兩個名稱相同的政策。
    6. 點選「建立」

    使用套用至資源的政策建立防護機制

    1. 選取「使用已套用至資源的防護機制 (瀏覽資源)」
    2. 指定姿勢詳細資料,例如姿勢名稱和說明。
    3. 按一下「選取資源」
    4. 從顯示的資源清單中選取資源,然後按一下「建立」

    系統會將您重新導向至「防護機制詳細資料」頁面,顯示您建立的防護機制相關資訊。您可以查看與該姿勢相關聯的政策集。

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/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
    

    如果防護機制建立程序失敗,請刪除防護機制、排解錯誤,然後再試一次。

  2. 如要確認防護機制是否已成功建立,請參閱「查看防護機制」。

如要將這項安全狀況套用至環境,您必須部署安全狀況

Terraform

如果您為姿勢資源建立 Terraform 設定,就必須使用基礎架構即程式碼管道佈建該資源。

詳情請參閱 Terraform on Google Cloud

部署防護機制

建立安全狀態後,您可以將其部署至專案、資料夾或機構,以便將政策及其定義套用至機構中的特定資源,並監控安全狀態變化。您只能將一個姿勢部署至專案、資料夾或機構。

確認姿勢狀態為 ACTIVE

部署狀態時,會發生下列情況:

  • 系統會套用機構政策和安全狀態分析偵測工具的定義。
  • 系統會為每個在安全狀態中定義的自訂機構政策,建立新的自訂限制。即使您是從範本或擷取的政策建立姿勢,且未變更這些政策,也是如此。限制 ID 包含姿勢修訂版本 ID 做為後置字元。如果刪除所有姿勢部署作業,後置字串會替換為隨機 UUID。
  • 系統會為姿態中定義的每個自訂安全狀態分析偵測工具,建立新的自訂限制。即使您是從範本或擷取的政策建立防護機制,且這些政策保持不變,也是如此。
  • 自訂模組的預設狀態為「已啟用」

主控台

  1. 前往 Google Cloud 控制台的「Posture Management」頁面。

    前往「防護機制管理」

  2. 確認您目前查看的組織已啟用 Security Command Center Premium 或 Enterprise 方案。

  3. 在「Postures」(姿勢) 分頁中,按一下要部署的姿勢。

  4. 在「姿勢詳細資料」頁面中,選取姿勢的修訂版本。選取的防護機制修訂版本必須處於有效狀態。

  5. 按一下「套用至資源」

  6. 按一下「選取」,選取要部署安全狀況的機構、資料夾或專案。

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

  • LOCATIONglobal

  • 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

查看防護機制和防護機制部署資訊

您可以查看狀態和狀態部署資訊,瞭解下列資訊:

  • 已部署哪些姿勢,以及這些姿勢在資源階層 (機構、專案和資料夾) 中的套用位置
  • 防護機制的修訂版本和狀態
  • 姿勢部署作業的詳細資料

查看防護機制

您可以查看姿勢的相關資訊 (例如狀態和政策定義)。

主控台

  1. 前往 Google Cloud 控制台的「Posture Management」頁面。

    前往「防護機制管理」

  2. 選取您已啟用 Security Command Center Premium 或 Enterprise 方案的機構。

  3. 在「姿勢」分頁中,按一下要查看的姿勢。系統會顯示姿勢詳細資料。

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

  • 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

查看防護機制部署作業的相關資訊

您可以查看姿勢的部署位置和部署狀態。

主控台

  1. 前往 Google Cloud 控制台的「Posture Management」頁面。

    前往「防護機制管理」

  2. 確認您目前查看的組織已啟用 Security Command Center Premium 或 Enterprise 方案。

  3. 在「姿勢」分頁中,按一下您部署的姿勢。

  4. 前往「資源」分頁,查看部署姿勢的專案、資料夾和機構,以及部署狀態。

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

  • 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/global/postures/POSTURE_ID

      • POSTURE_ID 是您機構的專屬姿勢英數名稱。
    • POSTURE_FROM_FILE 是包含變更的 posture.yaml 檔案相對或絕對路徑。

      • 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

主控台

  1. 前往 Google Cloud 控制台的「Posture Management」頁面。

    前往「防護機制管理」

  2. 確認您目前查看的組織已啟用 Security Command Center Premium 或 Enterprise 方案。

  3. 在「姿勢」分頁中,按一下要更新的姿勢。

  4. 在「Posture details」(姿勢詳細資料) 頁面中,按一下「Edit」(編輯)

  5. 選取姿勢狀態,然後按一下「儲存」

gcloud

如要變更姿勢狀態,請執行 gcloud scc postures update 指令。 更新其他欄位時,無法同時更新姿勢狀態。如需執行 gcloud scc postures update 指令的操作說明,請參閱「修改姿勢 YAML 檔案」。

更新狀態部署作業

更新專案、資料夾或機構的防護機制部署作業,即可部署新的防護機制,或部署防護機制的新修訂版本。

如果您要更新的姿勢修訂版本包含透過 Google Cloud 控制台刪除的自訂機構限制,您就無法使用相同的姿勢 ID 更新姿勢部署。機構政策服務會禁止建立同名的自訂機構限制。您必須建立新版本的姿勢,或使用其他姿勢 ID。

此外,更新程序會刪除政策部署作業,相關發現也會停用。

主控台

  1. 前往 Google Cloud 控制台的「Posture Management」頁面。

    前往「防護機制管理」

  2. 確認您正在查看啟用 Security Command Center Premium 或 Enterprise 方案的機構。

  3. 在「姿勢」分頁中,按一下要更新的姿勢。

  4. 在「姿勢詳細資料」頁面中,選取姿勢的修訂版本。

  5. 按一下「套用至資源」

  6. 按一下「選取」,選取要部署安全狀況的機構、資料夾或專案。如果看到部署作業已存在的訊息,請刪除部署作業,然後再試一次。

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 是要部署的姿勢修訂版本。您可以從建立姿勢查看姿勢時收到的回應中取得。

  • --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 工作負載,且您使用 Security Command Center Premium,也可以透過「總覽」頁面監控狀態變化。

如要從「發現項目」頁面監控漂移情形,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Findings」頁面。

    前往「發現項目」

  2. 確認您目前查看的組織已啟用 Security Command Center Premium 或 Enterprise 方案。

  3. 在「快速篩選器」窗格中,選取「姿勢違規」發現項目。 您也可以在「查詢預覽」中輸入下列篩選條件:

    state="ACTIVE" AND NOT mute="MUTED" AND finding_class="POSTURE_VIOLATION"
    
  4. 如要查看發現項目的詳細資料,請按一下該項目。

如要從「總覽」頁面監控偏移情形 (僅限 Vertex AI 工作負載):

  1. 前往 Google Cloud 控制台的「Overview」頁面。

    前往總覽頁面

  2. 確認您目前查看的組織已啟用 Security Command Center Premium 或 Enterprise 方案。

  3. 查看「AI Workload Findings」(AI 工作負載發現項目) 窗格。

    • 「安全漏洞」分頁會顯示與任何安全性狀態分析自訂模組相關的所有安全漏洞,這些模組專門適用於 Vertex AI 工作負載。
    • 「政策變動」分頁會顯示與您在狀態中套用的 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 安全狀態,可以編輯「限制公開 IP 對新 Vertex AI Workbench 筆記本和執行個體的存取權」政策。

  3. 變更政策後,請按一下「設定政策」

  4. 前往「發現項目」頁面。

    前往「發現項目」

  5. 在「快速篩選器」窗格的「來源顯示名稱」部分,選取「安全性狀態」。與變更相關的發現結果應會在五分鐘內顯示。

  6. 如要查看發現項目的詳細資料,請按一下該項目。

刪除防護機制部署作業

如果姿勢部署作業未正確部署、您不再需要特定姿勢,或您不再想將特定姿勢指派給專案、資料夾或機構,可以刪除姿勢部署作業。如要刪除姿勢部署作業,姿勢部署作業必須處於下列任一狀態:

  • ACTIVE
  • CREATE_FAILED
  • UPDATE_FAILED
  • DELETE_FAILED

如要驗證防護機制部署狀態,請參閱查看防護機制部署資訊

刪除防護機制部署作業時,系統會從您指派防護機制的資源 (機構、資料夾或專案) 移除防護機制。此外,系統也會停用相關聯的發現項目。

不同類型政策的輸出內容如下:

  • 刪除包含自訂組織政策的防護機制部署作業時,自訂組織政策也會一併刪除。不過,自訂限制仍會存在。
  • 刪除包含內建 Security Health Analytics 偵測器的防護機制部署作業時,Security Health Analytics 模組的最終狀態取決於部署作業所在的組織、資料夾或專案。

    • 如果您在資料夾或專案中部署防護機制,內建的 Security Health Analytics 偵測器會從上層機構或資料夾繼承狀態。
    • 如果您在機構層級部署安全防護機制,內建的安全狀態分析偵測工具會還原為預設狀態。如要瞭解預設狀態,請參閱「啟用及停用偵測器」。

主控台

  1. 前往 Google Cloud 控制台的「Posture Management」頁面。

    前往「防護機制管理」

  2. 確認您正在查看啟用 Security Command Center Premium 或 Enterprise 方案的機構。

  3. 在「姿勢」分頁中,按一下要從所屬資源中移除的姿勢。

  4. 在「姿勢詳細資料」頁面中,選取姿勢的修訂版本,然後前往「資源」

  5. 在已部署當前有效姿勢修訂版本的資源清單中,按一下「移除」

gcloud

執行 gcloud scc posture-deployments delete 指令,刪除姿勢部署作業。

gcloud scc posture-deployments delete POSTURE_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

刪除防護機制

刪除防護機制時,所有修訂版本也會一併刪除。如果姿勢的任何修訂版本已部署,就無法刪除該姿勢。您必須先刪除所有姿勢部署作業,才能完成這項工作。

主控台

  1. 前往 Google Cloud 控制台的「Posture Management」頁面。

    前往「防護機制管理」

  2. 確認您正在查看啟用 Security Command Center Premium 或 Enterprise 方案的機構。

  3. 在「姿勢」分頁中,按一下要刪除的姿勢。

  4. 在「Posture details」(姿勢詳細資料) 頁面中,按一下「Delete」(刪除)

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

後續步驟