管理安全防護機制

本頁說明啟用 Security Command Center 後,如何設定及使用資安態勢服務。首先,您必須建立資安態勢,其中包含以政策集形式整理的政策,然後使用資安態勢部署項目部署資安態勢。部署資安態勢後,您可以監控漂移情形,並隨著時間進一步修正資安態勢。

您無法在專案層級啟用資安態勢管理功能。詳情請參閱「專案層級啟用功能時的可用性」。

事前準備

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

啟用 Security Command Center

確認您已在組織層級啟用 Security Command Center

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

設定權限

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

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

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

設定 Google Cloud CLI

<0

在 Google Cloud 控制台中啟用 Cloud Shell。

啟用 Cloud Shell

控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud 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 專用的內建安全狀態分析偵測器,請連線至 AWS,以收集設定和資源資料

建立及部署資安態勢

如要開始使用資安態勢,請完成下列步驟:

  • 建立姿勢 YAML 檔案,定義適用於資安態勢的政策。
  • 在 Google Cloud 中建立以姿勢 YAML 檔案為基礎的姿勢。
  • 部署資安態勢。

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

建立姿勢 YAML 檔案

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

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

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

根據預先定義的防護機制範本建立防護機制檔案

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

控制台

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

    前往「資安態勢管理」

  2. 選取機構。

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

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

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

  6. 完成下列任一動作:

gcloud

  1. 查看預先定義的狀態範本,判斷哪些範本適用於您的環境。部分政策可以直接套用,但其他政策則需要根據環境自訂。
  2. 請使用下列其中一種方法,將 YAML 檔案複製到自己的文字編輯器:

    gcloud scc posture-templates describe \
        organizations/ORGANIZATION_ID/locations/global/postureTemplates/POSTURE_TEMPLATE \
        --revision-id=REVISION_ID
    

    替換下列值:

    • ORGANIZATION_ID 是您啟用 Security Command Center 的組織。
    • 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 檔案」。

從現有環境中擷取政策,建立資安態勢檔案

您可以從現有專案、資料夾或機構中,擷取您設定的政策 (組織政策,包括自訂政策和所有安全狀態分析偵測工具,包括自訂偵測工具),藉此建立資安態勢檔案。如果組織、資料夾或專案已套用資安態勢,您就無法從中擷取政策。

這項指令只會擷取您先前為機構、資料夾或專案設定的政策,不會從上層資料夾或機構擷取政策。

如果您已連線至 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 設定,以建立資安態勢資源。

舉例來說,您可以建立資安態勢資源,其中包含內建和自訂的組織政策限制,以及內建和自訂的「安全狀態分析」偵測工具。針對 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 = "list_constraint_policy_set"
    description   = "set of org policies with a list constraint"
    policies {
      policy_id = "resource_locations_policy"
      constraint {
        org_policy_constraint {
          canned_constraint_id = "gcp.resourceLocations"
          policy_rules {
            values {
              allowed_values = ["in:us-locations"]
            }
          }
        }
      }
    }
  }
  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 金鑰進行驗證,請新增安全狀態分析偵測工具來建立發現項目:

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

      以另一個例子來說,新增安全狀態分析自訂模組,即可偵測 Gemini Enterprise Agent Platform 資料集是否經過加密:

      - 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
      

      以 Enterprise (已淘汰) 服務層級為例,請新增 AWS 專用的安全狀態分析偵測工具 (預先發布版):

      - 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. 選取機構。

  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. 選取機構。

  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. 選取機構。

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

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. 選取機構。

  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. 選取機構。

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

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

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

gcloud

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

更新資安態勢部署作業

更新專案、資料夾或機構的資安態勢部署作業,以部署新的資安態勢或資安態勢的新修訂版本。

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

此外,更新程序會刪除政策部署作業,因此相關的調查結果也會停用。

控制台

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

    前往「資安態勢管理」

  2. 選取機構。

  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 中查看。

控制台

對於所有姿勢,您可以使用「發現」頁面監控漂移。

  1. 前往 Google Cloud 控制台的「Findings」(發現事項) 頁面。

    前往「資安態勢管理」

  2. 選取機構。

  3. 使用下列篩選器選項調查姿勢發現:

    • 在「快速篩選器」窗格中,選取「Posture violation」發現項目。 您也可以在「查詢預覽」中輸入下列篩選條件:

      state="ACTIVE" AND NOT mute="MUTED" AND finding_class="POSTURE_VIOLATION"
      
    • 如要查看與適用於 Gemini Enterprise Agent Platform 工作負載的任何安全狀態分析自訂模組相關的發現項目,請執行下列篩選查詢:

      state="ACTIVE" AND NOT mute="MUTED" AND resource.type:"aiplatform"
      
    • 如要查看與您在資安態勢中套用的 Gemini Enterprise Agent Platform 組織政策相關的偏移發現項目,請執行下列篩選器查詢:

        state="ACTIVE" AND NOT mute="MUTED" AND
        (category="SECURITY_POSTURE_POLICY_DRIFT" OR
        category="SECURITY_POSTURE_POLICY_DELETE" OR
        category="SECURITY_POSTURE_DETECTOR_DRIFT" OR
        category="SECURITY_POSTURE_DETECTOR_DELETE")
        AND contains(risks, risk_category = "AI_WORKLOAD_AT_RISK")
      
  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. 前往控制台的「機構政策」頁面。

    前往「Organization policy」(機構政策)

  2. 選取機構。

  3. 編輯您在已部署防護機制中定義的其中一項政策。舉例來說,如果您使用預先定義的安全 AI 資安態勢,可以編輯「限制公開 IP 對新 Vertex AI Workbench 筆記本和執行個體的存取權」政策。

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

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

    前往「發現項目」

  6. 選取機構。

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

  8. 如要查看發現項目的詳細資料,請點選該項目。

刪除資安態勢部署作業

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

  • ACTIVE
  • CREATE_FAILED
  • UPDATE_FAILED
  • DELETE_FAILED

如要驗證防護機制部署作業的狀態,請參閱「查看防護機制部署作業的相關資訊」。

刪除資安態勢部署作業時,系統會從您指派資安態勢的資源 (組織、資料夾或專案) 中移除資安態勢。此外,系統也會停用相關聯的發現項目。

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

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

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

控制台

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

    前往「資安態勢管理」

  2. 選取機構。

  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. 選取機構。

  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

後續步驟