セキュリティ ポスチャーを管理する

このページでは、Security Command Center を有効にした後にセキュリティ ポスチャー サービスを構成して使用する方法について説明します。まず、ポリシーセットにまとめられたポリシーを含むポスチャーを作成し、ポスチャー デプロイを使用してポスチャーをデプロイする必要があります。ポスチャーのデプロイ後、ずれをモニタリングし、随時ポスチャーを改善できます。

始める前に

まず以下のタスクを完了してから、このページの残りのタスクを行ってください。

Security Command Center Premium ティアまたは Enterprise ティアを有効にする

Security Command Center Premium ティアまたは Enterprise ティアが組織レベルで有効になっていることを確認します。

Security Health Analytics 検出機能をポリシーとして使用する場合は、有効化プロセスで Security Health Analytics サービスを選択します。

権限を設定する

ポスチャーの使用に必要な権限を取得するには、管理者にセキュリティ ポスチャー管理者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.

ユーザー認証情報ではなく、サービス アカウントの権限借用を使用して Google API の認証を行うように gcloud CLI を設定するには、次のコマンドを実行します。

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 ファイルを作成します。
  • ポスチャー YAML ファイルに基づいて、 Google Cloud でポスチャーを作成します。
  • ポスチャーをデプロイします。

以下のセクションで、詳細な手順を説明します。

ポスチャー YAML ファイルを作成する

ポスチャーは一緒にデプロイする 1 つ以上のポリシーセットから構成されます。このようなポリシーセットには、ポスチャーに含めるすべての予防と検出のポリシーが含まれます。

次のいずれかの方法でポスチャーを作成します。

ポスチャーで使用できるフィールドの詳細については、Posture リファレンスPolicySet リファレンスをご覧ください。

事前定義のポスチャー テンプレートからポスチャー ファイルを作成する

事前定義されたポスチャー テンプレートを使用して、ポスチャー ファイルを作成できます。

コンソール

  1. Google Cloud コンソールで、[ポスチャーの管理] ページに移動します。

    [ポスチャーの管理] に移動

  2. Security Command Center Premium ティアまたは Enterprise ティアを有効にした組織が表示されていることを確認します。

  3. [テンプレート] タブで、使用するテンプレートをクリックします。

  4. [テンプレートの詳細] ページで、[ポスチャーを作成] をクリックします。

  5. ポスチャーの一意の名前を指定して、[作成] をクリックします。[ポスチャーの詳細] ページが開きます。

  6. 次のいずれかの操作を行います。

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 Premium ティアまたは 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 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/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 に固有の組み込み Security Health Analytics 検出機能のポスチャー管理サポートはプレビュー版です。

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. Security Health Analytics の検出結果のドキュメントでの説明に沿って、Security Health Analytics の検出機能を追加します。たとえば、プロジェクトで認証に 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
      

      もう 1 つの例として、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 コンソールで、[ポスチャーの管理] ページに移動します。

    [ポスチャーの管理] に移動

  2. Security Command Center Premium ティアまたは Enterprise ティアを有効にした組織が表示されていることを確認します。

  3. [ポスチャーを作成] をクリックします。ポスチャーは既存のポスチャーまたはテンプレートから作成することも、リソースに適用されているポリシーを使用して作成することもできます。

    既存のポスチャーまたはテンプレートを使用してポスチャーを作成する

    1. [既存のポスチャーまたはテンプレートを使用して開始(ポスチャーを参照)] を選択します。
    2. ポスチャーの名前や説明など、ポスチャーの詳細を指定します。
    3. [ポスチャーの選択] をクリックします。既存のポスチャーまたはテンプレートに基づいてポスチャーを作成できます。
      • [ポスチャー] を選択し、既存のポスチャーを使用してポスチャーを作成します。表示されたポスチャーのリストからポスチャーを選択し、選択したポスチャーで使用可能なリビジョンのリストからリビジョンを 1 つ以上選択します。
      • [テンプレート] を選択してテンプレートからポスチャーを作成し、表示されたテンプレートのリストからテンプレートを 1 つ以上選択します。
    4. [保存] をクリックします。[ポリシーセット] セクションには、選択したポスチャーに関連付けられているポリシーセットのリストが表示されます。
    5. ポリシーセットのリストからポリシーを選択します。ポリシーを編集して、ポリシーをこのページの別のポリシーセットに移動することもできます。同じポリシーセット内に同じ名前の 2 つのポリシーを含むポスチャーは作成できません。
    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 構成を作成した場合は、Infrastructure as Code パイプラインを使用してプロビジョニングする必要があります。

詳細については、 Google Cloudでの Terraform をご覧ください。

ポスチャーをデプロイする

ポスチャーを作成後、プロジェクト、フォルダ、組織にデプロイすると、ポリシーとその定義を組織内の特定のリソースに適用し、ずれをモニタリングできるようになります。プロジェクト、フォルダ、組織にデプロイできるポスチャーは 1 つのみです。

ポスチャーのステータスが ACTIVE であることを確認します。

ポスチャーをデプロイすると、次のアクションが実行されます。

  • 組織のポリシーと Security Health Analytics の検出機能の定義が適用されます。
  • ポスチャーで定義されたカスタムの組織ポリシーごとに、新しいカスタム制約が作成されます。これはテンプレートまたは抽出したポリシーからポスチャーを作成し、それらのポリシーを変更せずに使用した場合でも同様です。制約 ID の接尾辞はポスチャーのリビジョン ID となります。ポスチャーのすべてのデプロイが削除されると、接尾辞はランダム UUID に置き換えられます。
  • ポスチャーで定義されたカスタムの Security Health Analytics 検出機能ごとに、新しいカスタム制約が作成されます。これはテンプレートまたは抽出したポリシーからポスチャーを作成し、それらのポリシーを変更せずに使用した場合でも同様です。
  • カスタム モジュールのデフォルトのステータスは [有効] に設定されています。

コンソール

  1. Google Cloud コンソールで、[ポスチャーの管理] ページに移動します。

    [ポスチャーの管理] に移動

  2. Security Command Center Premium ティアまたは Enterprise ティアを有効にした組織が表示されていることを確認します。

  3. [ポスチャー] タブで、デプロイするポスチャーをクリックします。

  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 コンソールで、[ポスチャーの管理] ページに移動します。

    [ポスチャーの管理] に移動

  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 です。OPERATION_ID はポスチャー コマンドを実行するときに --async 引数を使用して取得できます。

たとえば、名前が 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 コンソールで、[ポスチャーの管理] ページに移動します。

    [ポスチャーの管理] に移動

  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 から DRAFT または DEPRECATED. に変更できます。
  • DEPRECATED: DEPRECATED ステータスのポスチャー リビジョンはリソースにデプロイできません。ポスチャーの既存のポスチャー デプロイをすべて削除したうえで、ポスチャー リビジョンを非推奨にする必要があります。非推奨にしたポスチャー リビジョンを再デプロイする場合は、そのステータスを ACTIVE に変更する必要があります。

コンソール

  1. Google Cloud コンソールで、[ポスチャーの管理] ページに移動します。

    [ポスチャーの管理] に移動

  2. Security Command Center Premium ティアまたは Enterprise ティアを有効にした組織が表示されていることを確認します。

  3. [ポスチャー] タブで、更新するポスチャーをクリックします。

  4. [ポスチャーの詳細] ページで、[編集] をクリックします。

  5. ポスチャーのステータスを選択し、[保存] をクリックします。

gcloud

ポスチャーのステータスを変更するには、gcloud scc postures update コマンドを実行します。他のフィールドの更新と同時にポスチャーのステータスを更新することはできません。gcloud scc postures update コマンドを実行する方法については、ポスチャー YAML ファイルを変更するをご覧ください。

ポスチャー デプロイを更新する

プロジェクト、フォルダ、組織でポスチャー デプロイを更新して、新しいポスチャーをデプロイするか、ポスチャーの新しいリビジョンをデプロイします。

更新するポスチャー リビジョンに Google Cloud コンソールを使用して削除したカスタムの組織の制約が含まれている場合、同じポスチャー ID を使用してポスチャー デプロイを更新できません。組織のポリシー サービスでは、同じ名前のカスタムの組織の制約は作成できません。代わりに、ポスチャーの新しいバージョンを作成するか、別のポスチャー ID を使用する必要があります。

また、更新プロセスの一環で削除されたポリシー デプロイの検出結果は無効になります。

コンソール

  1. Google Cloud コンソールで、[ポスチャーの管理] ページに移動します。

    [ポスチャーの管理] に移動

  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 コンソールで、[検出結果] ページに移動します。

    [検出結果] に移動

  2. Security Command Center Premium ティアまたは Enterprise ティアを有効にした組織が表示されていることを確認します。

  3. [クイック フィルタ] ペインで、[ポスチャー違反] の検出結果を選択します。[クエリのプレビュー] に次のフィルタを入力することもできます。

    state="ACTIVE" AND NOT mute="MUTED" AND finding_class="POSTURE_VIOLATION"
    
  4. 検出結果の詳細を表示するには、検出結果をクリックします。

[概要] ページからずれをモニタリングする方法(Vertex AI ワークロードのみ):

  1. Google Cloud コンソールで、[概要] ページに移動します。

    [概要] に移動

  2. Security Command Center Premium ティアまたは Enterprise ティアを有効にした組織が表示されていることを確認します。

  3. [AI ワークロードの検出結果] ペインを確認します。

    • [脆弱性] タブに、Vertex AI ワークロードに適用される Security Health Analytics のカスタム モジュールに関連するすべての脆弱性が表示されます。
    • [ポリシーのずれ] タブには、ポスチャーに適用した 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. デプロイしたポスチャーに定義したポリシーの 1 つを編集します。たとえば、事前定義済みの安全な AI に関する推奨事項のポスチャーを使用する場合、新しい Vertex AI Workbench のノートブックとインスタンスに対するパブリック IP アクセスを制限するポリシーを編集します。

  3. ポリシーを変更後、[ポリシーを設定] をクリックします。

  4. [検出結果] ページに移動します。

    [検出結果] に移動

  5. [クイック フィルタ] ペインの [ソースの表示名] セクションで、[セキュリティ ポスチャー] を選択します。変更に関連する検出結果が 5 分以内に表示されます。

  6. 検出結果の詳細を表示するには、検出結果をクリックします。

ポスチャー デプロイを削除する

ポスチャー デプロイが正しくデプロイされなかった場合、特定のポスチャーが不要になった場合、特定のポスチャーをプロジェクト、フォルダ、組織に割り当てる必要がなくなった場合は、ポスチャー デプロイを削除できます。ポスチャー デプロイを削除するには、ポスチャー デプロイが次のいずれかのステータスである必要があります。

  • ACTIVE
  • CREATE_FAILED
  • UPDATE_FAILED
  • DELETE_FAILED

ポスチャー デプロイのステータスを確認するには、ポスチャー デプロイに関する情報を表示するをご覧ください。

ポスチャー デプロイを削除すると、割り当てたリソース(組織、フォルダ、プロジェクト)からポスチャーが削除されます。また、関連する検出結果も無効になります。

ポリシーのタイプ別に出力は次のようになります。

  • カスタムの組織のポリシーを含むポスチャー デプロイを削除した場合、カスタムの組織ポリシーは削除されます。ただし、カスタム制約は引き続き残ります。
  • 組み込みの Security Health Analytics 検出機能を含むポスチャー デプロイを削除した場合、Security Health Analytics モジュールの最終ステータスは、デプロイが存在する組織、フォルダ、プロジェクトによって変わってきます。

    • フォルダまたはプロジェクトにポスチャーをデプロイした場合は、組み込みの Security Health Analytics 検出機能は、親の組織またはフォルダからのステータスを継承します。
    • 組織レベルでポスチャーをデプロイした場合、組み込みの Security Health Analytics 検出機能はデフォルトのステータスに戻ります。デフォルトのステータスについての説明は、検出機能を有効または無効にするをご覧ください。

コンソール

  1. Google Cloud コンソールで、[ポスチャーの管理] ページに移動します。

    [ポスチャーの管理] に移動

  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 コンソールで、[ポスチャーの管理] ページに移動します。

    [ポスチャーの管理] に移動

  2. Security Command Center Premium ティアまたは Enterprise ティアを有効にした組織が表示されていることを確認します。

  3. [ポスチャー] タブで、削除するポスチャーをクリックします。

  4. [ポスチャーの詳細] ページで、[削除] をクリックします。

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

次のステップ