Mengelola framework

Framework Compliance Manager terdiri dari kontrol cloud yang membantu Anda memenuhi persyaratan keamanan dan peraturan untuk organisasi atau project di lingkungan cloud Anda. Penerapan framework adalah proses dua langkah. Pertama, Anda harus mengidentifikasi kontrol cloud yang selaras dengan kewajiban keamanan dan kepatuhan bisnis Anda. Kemudian, Anda men-deploy framework yang menyertakan kontrol cloud tersebut ke organisasi, folder, atau project yang sesuai diGoogle Cloud. Halaman ini membantu Anda menyelesaikan langkah-langkah berikut:

  1. Menilai framework bawaan mana yang paling sesuai dengan persyaratan peraturan dan keamanan Anda. Anda dapat membuat framework kustom sendiri, tetapi sebaiknya mulai dengan framework bawaan.

  2. Tentukan kontrol cloud bawaan yang sesuai dengan persyaratan bisnis Anda. (Khusus paket Premium dan Enterprise) Anda dapat membuat kontrol cloud kustom, jika diperlukan.

  3. Tentukan apakah akan men-deploy framework ke organisasi Google Cloud Anda, atau ke folder dan project tertentu. Anda hanya dapat men-deploy satu framework ke setiap organisasi, folder, atau project. Compliance Manager mendukung folder yang dikonfigurasi untuk pengelolaan aplikasi.

  4. Salin framework yang ada dan ubah agar sesuai dengan kebutuhan Anda. Jika diperlukan, Anda dapat membuat framework kustom.

  5. Deploy framework di organisasi, folder, atau project yang sesuai.

Sebelum memulai

Selesaikan tugas ini sebelum Anda menyelesaikan tugas lainnya di halaman ini.

Menyiapkan izin

  • Untuk mendapatkan izin yang Anda perlukan untuk menerapkan framework, minta administrator untuk memberi Anda peran IAM berikut di organisasi atau project Anda:

    Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Peran untuk men-deploy framework dengan kebijakan organisasi berisi izin orgpolicy.policies.create, orgpolicy.policies.update, dan orgpolicy.policies.get yang diperlukan.

    Untuk deployment level organisasi, peran untuk membuat folder berisi izin resourcemanager.folders.get, resourcemanager.folders.create, dan resourcemanager.folders.delete yang diperlukan.

    Untuk deployment tingkat organisasi, peran untuk membuat project berisi izin resourcemanager.projects.get, resourcemanager.projects.create, resourcemanager.projects.delete, dan resourcemanager.projects.createBillingAssignment yang diperlukan.

    Peran untuk menetapkan framework DSPM ke aplikasi berisi izin apphub.locations.list, apphub.applications.list, dan apphub.applications.get yang diperlukan.

    Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Menyiapkan Google Cloud CLI

Di konsol Google Cloud , aktifkan Cloud Shell.

Aktifkan Cloud Shell

Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan prompt command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.

Untuk menyiapkan gcloud CLI agar menggunakan peniruan akun layanan untuk mengautentikasi ke Google API, alih-alih kredensial pengguna Anda, jalankan perintah berikut:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

Untuk informasi selengkapnya, lihat Peniruan akun layanan.

Lihat framework

Selesaikan langkah-langkah berikut untuk melihat konfigurasi framework bawaan atau framework lain yang telah Anda buat.

Konsol

  1. Di konsol Google Cloud , buka halaman Compliance.

    Buka Kepatuhan

  2. Pilih organisasi atau project Anda.

  3. Untuk melihat semua framework yang tersedia, klik tab Configure.

    Dasbor menampilkan framework yang tersedia, deskripsi singkat, platform dan paket yang didukung, serta resource yang telah menerapkan framework tersebut.

  4. Untuk melihat detail tentang framework tertentu, klik nama framework.

CLI

Anda dapat melihat informasi tentang framework tertentu atau mencantumkan semua framework di organisasi Anda.

Melihat detail tentang framework

Untuk melihat detail tentang framework tertentu, jalankan perintah gcloud compliance-manager frameworks describe:

gcloud compliance-manager frameworks describe FRAMEWORK \
   --location=LOCATION \
   --organization=ORGANIZATION \
   [--major-revision-id=MAJOR_REVISION_ID]

Ganti kode berikut:

  • FRAMEWORK: nama framework

  • ORGANIZATION: ID organisasi Anda

  • LOCATION: region tempat framework disimpan

  • MAJOR_REVISION_ID: flag opsional yang menentukan versi framework yang akan dilihat. Jika Anda tidak menyertakan flag, versi terbaru akan ditampilkan.

Misalnya, untuk melihat framework dengan nama builtin-security-essentials dan nomor revisi utama 12, jalankan perintah berikut:

gcloud compliance-manager frameworks describe \
   builtin-security-essentials \
   --organization=3589215982 \
   --location=global \
   --major-revision-id=12

Untuk mengetahui informasi selengkapnya, lihat gcloud compliance-manager frameworks describe.

Mendapatkan daftar framework

Untuk mendapatkan daftar framework di organisasi Anda, jalankan perintah gcloud compliance-manager frameworks list:

gcloud compliance-manager frameworks list \
   --location=LOCATION \
   --organization=ORGANIZATION

Ganti nilai berikut:

  • ORGANIZATION: ID organisasi Anda

  • LOCATION: region tempat framework disimpan

Misalnya, untuk melihat semua framework dalam organisasi 3589215982 yang disimpan di lokasi global, jalankan perintah berikut:

gcloud compliance-manager frameworks list \
   --organization=3589215982 \
   --location=global

Untuk mengetahui informasi tentang flag opsional, lihat gcloud compliance-manager frameworks list.

Membuat framework

Setelah menentukan kontrol cloud yang berlaku untuk resource dalam organisasi atau folder atau project tertentu, Anda dapat membuat framework. Anda dapat membuat framework kustom atau menyalin framework yang ada dan mengubahnya. Saat Anda menyalin framework, framework tersebut akan menyertakan rilis terbaru dari kontrol cloud bawaan.

Konsol

  1. Di konsol Google Cloud , buka halaman Compliance.

    Buka Kepatuhan

  2. Pilih organisasi atau project Anda.

  3. Di tab Configure, klik Create custom framework.

  4. Lakukan salah satu langkah berikut:

    • Untuk menggunakan framework yang ada, selesaikan langkah-langkah berikut:

      1. Pilih Mulai dari framework yang ada.

      2. Pilih framework yang ingin Anda salin.

      3. Klik Tambahkan.

    • Untuk membuat framework kustom, pilih Mulai baru.

  5. Masukkan nama, ID unik, dan deskripsi untuk framework Anda. Klik Continue.

    Jika Anda menyalin framework yang ada, daftar kontrol cloud yang merupakan bagian dari framework yang ada akan ditampilkan.

  6. Untuk menambahkan kontrol cloud yang Anda perlukan, selesaikan langkah-langkah berikut:

    • Untuk menambahkan kontrol cloud yang ada, klik Tambahkan Kontrol Cloud. Pilih semua kontrol cloud yang Anda perlukan, lalu klik Add.

      Saat Anda menambahkan kontrol, verifikasi jenis kontrol (detektif, preventif, atau audit) dari kontrol tersebut. Perhatikan bahwa kontrol preventif dan audit hanya tersedia di paket Premium dan Enterprise. Jangan sertakan kontrol khusus audit dalam framework yang ingin Anda gunakan untuk memantau lingkungan dan mendeteksi pelanggaran. Anda tidak dapat men-deploy framework yang menyertakan kontrol khusus audit.

    • (Khusus paket Premium dan Enterprise) Untuk membuat kontrol cloud kustom, klik Create custom cloud control. Untuk mengetahui petunjuknya, lihat Membuat kontrol cloud kustom.

  7. Klik Lanjutkan.

  8. Tambahkan parameter tambahan yang diperlukan kontrol cloud.

    Misalnya, jika Anda ingin mengaktifkan kontrol cloud Data Security Posture Management (DSPM) seperti kontrol cloud Restrict Access to Sensitive Data to Permitted Users, tentukan lokasi yang harus digunakan akun utama. Untuk mengetahui informasi selengkapnya tentang kontrol Data Security Posture Management, lihat Kontrol cloud keamanan dan tata kelola data lanjutan.

  9. Klik Create.

CLI

Untuk membuat framework kustom, jalankan perintah gcloud compliance-manager frameworks create:

gcloud compliance-manager frameworks create FRAMEWORK \
   --location=LOCATION \
   --organization=ORGANIZATION \
   --display-name=DISPLAY_NAME \
   [--description=DESCRIPTION] \
   [--category=[CATEGORY,...] \
   [--cloud-control-details=[majorRevisionId=MAJOR_REVISION_ID],[name=NAME],[parameters=PARAMETERS]]

Ganti nilai berikut:

  • FRAMEWORK: ID alfanumerik unik untuk framework

  • ORGANIZATION: ID organisasi Anda

  • LOCATION: region tempat framework disimpan

  • DISPLAY_NAME: nama yang dapat dibaca manusia untuk framework

  • DESCRIPTION: deskripsi opsional tentang tujuan framework

  • [CATEGORY,...]: parameter opsional yang menentukan kategori yang menjadi bagian dari framework. Nilai yang direkomendasikan untuk framework yang disesuaikan adalah custom-framework.

  • --cloud-control-details=`[majorRevisionId=MAJOR_REVISION_ID],[name=NAME],[parameters=PARAMETERS]'

    adalah daftar opsional kontrol cloud yang akan disertakan dalam framework Anda, dalam format berikut:

    • MAJOR_REVISION_ID: flag opsional yang menentukan versi kontrol cloud yang akan dilihat. Jika Anda tidak menyertakan flag, versi terbaru akan digunakan.

    • NAME: nama kontrol cloud, dalam format organizations/ORGANIZATION_ID/locations/LOCATION/cloudControls/NAME. NAME adalah ID unik kontrol cloud. Anda dapat menemukan ID kontrol cloud menggunakan perintah gcloud compliance-manager cloud-controls list.

    • PARAMETERS: parameter opsional yang diperlukan oleh kontrol cloud tertentu—misalnya, jika Anda ingin mengaktifkan kontrol cloud Data Security Posture Management seperti kontrol cloud Restrict Access to Sensitive Data to Permitted Users, tentukan lokasi yang harus digunakan akun utama.

    Atau, Anda dapat menentukan file JSON atau YAML yang menyertakan daftar semua kontrol cloud. Misalnya, --cloud-control-details=path_to_file.(yaml|json). Luaskan bagian berikut untuk melihat contoh file JSON dan YAML.

    Contoh file JSON

      [
        {
          "name": "organizations/3589215982/locations/global/cloudControls/restrict-bucket-region",
          "majorRevisionId": 1,
          "parameters": [
            {
              "name": "location",
              "parameterValue": {
                "stringValue": "us-west"
              }
            }
          ]
        },
        {
          "name": "organizations/3589215982/locations/global/cloudControls/enable-binary-authorization",
          "majorRevisionId": 2
        }
      ]
          

    Contoh file YAML

      - name: organizations/3589215982/locations/global/cloudControls/restrict-bucket-region
        majorRevisionId: 1
        parameters:
        - name: location
          parameterValue:
            stringValue: us-west
      - name: organizations/3589215982/locations/global/cloudControls/enable-binary-authorization
        majorRevisionId: 2
          

    Jika Anda tidak menentukan kontrol cloud saat membuat framework, Anda dapat menambahkannya nanti menggunakan Konsol.

Misalnya, untuk membuat framework dengan nama my-custom-framework, jalankan perintah berikut:

gcloud compliance-manager frameworks create \
   my-custom-framework \
   --organization=3589215982 \
   --location=global \
   --description="This framework is my custom framework" \
   --display-name="My framework name" \
   --cloud-control-details='[{"name":"organizations/3589215982/locations/global/cloudControls/restrict-bucket-region","majorRevisionId":1,"parameters":[{"name":"location","parameterValue":{"stringValue":"us-west"}}]},{"name":"organizations/3589215982/locations/global/cloudControls/enable-binary-authorization","majorRevisionId":2}]'

Untuk mengetahui informasi selengkapnya, lihat gcloud compliance-manager frameworks create.

Terraform

Contoh berikut menunjukkan cara membuat framework menggunakan Terraform.

resource "google_cloud_security_compliance_framework" "example" {
  parent       = "organizations/123456789"
  location     = "global"
  framework_id = "example-framework"

  display_name = "Terraform Framework Name"
  description  = "An Terraform description for the framework"

  cloud_control_details {
		name              = "organizations/123456789/locations/global/cloudControls/builtin-assess-resource-availability"
		major_revision_id = "2"

    parameters {
      name = "location"
      parameter_value {
        string_value = "us-central1"
      }
    }
  }

    cloud_control_details {
		name              = "organizations/123456789/locations/global/cloudControls/builtin-cmek-key-in-use-for-bigquery-table"
		major_revision_id = "1"

    parameters {
      name = "location"
      parameter_value {
        string_list_value {
          values = ["us-central1", "us-west1"]
        }
      }
    }
  }

  cloud_control_details {
		name              = "organizations/123456789/locations/global/cloudControls/builtin-enable-automatic-backups-cloud-sql"
		major_revision_id = "3"

    parameters {
      name = "location"
      parameter_value {
        bool_value = true
      }
    }
  }

  cloud_control_details {
		name              = "organizations/123456789/locations/global/cloudControls/builtin-require-cmek-on-bigquery-datasets"
		major_revision_id = "2"

    parameters {
      name = "location"
      parameter_value {
        number_value = 1
      }
    }
  }


}

Men-deploy framework

Deploy framework ke organisasi, folder, atau project agar Anda dapat mengontrol dan memantau resource tersebut menggunakan kontrol cloud framework. Anda dapat men-deploy beberapa framework ke setiap organisasi, folder, atau project. Jika Anda men-deploy framework yang hanya menyertakan kontrol cloud keamanan data lanjutan, Anda dapat men-deploy framework ke aplikasi App Hub di folder yang dikonfigurasi untuk pengelolaan aplikasi.

Folder dan project mewarisi framework melalui Google Cloud hierarki resource. Oleh karena itu, jika Anda men-deploy framework di level organisasi dan di level project, semua kontrol cloud dalam kedua framework tersebut akan berlaku untuk resource dalam project. Jika ada perbedaan dalam definisi kontrol cloud, kontrol cloud level lebih rendah akan digunakan oleh resource dalam project. Misalnya, jika aturan kontrol cloud ditetapkan ke Allow di level organisasi dan ke Deny di level project, setelan Deny di level project akan diterapkan ke resource dalam project.

Sebagai praktik terbaik, sebaiknya Anda men-deploy framework di tingkat organisasi yang mencakup kontrol cloud yang dapat diterapkan ke seluruh bisnis Anda. Kemudian, Anda dapat men-deploy framework yang lebih ketat ke folder dan project yang memerlukannya.

Konsol

  1. Di konsol Google Cloud , buka halaman Compliance.

    Buka Kepatuhan

  2. Pilih organisasi atau project Anda.

  3. Di tab Configure, untuk framework yang ingin Anda deploy, klik More Actions > Apply to resources.

  4. Pilih Monitor atau Monitor and prevent untuk memantau penyimpangan saja.

  5. Pilih resource yang ingin Anda gunakan untuk men-deploy framework. Anda dapat memilih organisasi, folder, atau project yang sudah ada. Khusus untuk DSPM, Anda dapat memilih aplikasi untuk men-deploy framework yang hanya menyertakan kontrol cloud lanjutan DSPM ke aplikasi. Secara opsional, Anda dapat membuat folder atau project baru dan men-deploy framework ke dalamnya.

  6. Lakukan salah satu langkah berikut:

    • Jika Anda memilih Monitor, selesaikan langkah-langkah berikut:

      1. Verifikasi informasi.
      2. Jika Anda memilih folder yang dikonfigurasi untuk pengelolaan aplikasi dan framework Anda hanya menyertakan kontrol cloud DSPM lanjutan, pilih aplikasi yang ingin Anda pantau.
      3. Klik Monitor.
    • Jika Anda memilih Pantau dan cegah, selesaikan langkah-langkah berikut:

      1. Klik Berikutnya. Tinjau kontrol dan mode cloud.
      2. Klik Lanjutkan.
      3. Jika ditampilkan, verifikasi informasi tambahan yang diperlukan untuk beberapa kontrol cloud.
      4. Klik Berikutnya.
      5. Tinjau pilihan Anda, lalu klik Terapkan.

CLI

Untuk men-deploy framework di organisasi Anda, jalankan perintah gcloud compliance-manager framework-deployments create. Pertimbangkan praktik terbaik berikut:

  • Buat file YAML atau JSON terpisah untuk metadata kontrol cloud Anda.

  • Gunakan flag target yang sesuai untuk menunjukkan apakah Anda akan men-deploy ke organisasi, folder, atau project yang ada; atau apakah Anda akan membuat project atau folder baru sekaligus men-deploy framework.

  • Gunakan ID resource saja, bukan nama resource yang sepenuhnya memenuhi syarat, jika memungkinkan.

gcloud compliance-manager framework-deployments create \
   (FRAMEWORK_DEPLOYMENT : \
   --location=LOCATION \
   --organization=ORGANIZATION) \
   --cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE] \
   (--framework=FRAMEWORK : \
   --framework-major-revision-id=FRAMEWORK_MAJOR_REVISION_ID) \
   (--target-resource-config-existing=TARGET_RESOURCE_CONFIG_EXISTING     | \
   --target-resource-creation-config-folder-display-name=TARGET_RESOURCE_CREATION_CONFIG_FOLDER_DISPLAY_NAME \
   --target-resource-creation-config-folder-parent=TARGET_RESOURCE_CREATION_CONFIG_FOLDER_PARENT     | \
   --target-resource-creation-config-project-billing-account-id=TARGET_RESOURCE_CREATION_CONFIG_PROJECT_BILLING_ACCOUNT_ID \
   --target-resource-creation-config-project-display-name=TARGET_RESOURCE_CREATION_CONFIG_PROJECT_DISPLAY_NAME \
   --target-resource-creation-config-project-parent=TARGET_RESOURCE_CREATION_CONFIG_PROJECT_PARENT) \
   [--description=DESCRIPTION]

Ganti nilai berikut:

  • FRAMEWORK_DEPLOYMENT: ID deployment framework

  • ORGANIZATION: ID organisasi Anda

  • LOCATION: region tempat deployment framework disimpan

  • cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE]: daftar kontrol cloud dalam framework, dengan nama, parameter, ID revisi, dan mode penerapan, dalam format berikut:

    • CLOUD_CONTROL_DETAILS: objek yang menyertakan daftar nama kontrol cloud, parameter, dan ID revisi. Formatnya adalah sebagai berikut:

      • name=NAME: nama resource lengkap kontrol cloud, dalam format organizations/ORGANIZATION_ID/locations/LOCATION/cloudControls/CLOUD_CONTROL_NAME

      • majorRevisionId=MAJOR_REVISION_ID: versi utama kontrol cloud

      • parameters=PARAMETERS: parameter opsional yang diperlukan oleh kontrol cloud tertentu—misalnya, jika Anda ingin mengaktifkan kontrol cloud Data Security Posture Management seperti kontrol cloud Restrict Access to Sensitive Data to Permitted Users, tentukan lokasi yang harus digunakan akun utama.

    • ENFORCEMENT_MODE: apakah kontrol tersebut adalah kontrol AUDIT, DETECTIVE, atau PREVENTIVE

      Atau, Anda dapat menentukan file JSON atau YAML yang menyertakan detail kontrol cloud dan mode penerapan. Misalnya, --cloud-control-metadata=path_to_file.(yaml|json). Luaskan bagian berikut untuk melihat contoh file JSON dan YAML.

      Contoh file JSON

        [
          {
            "cloudControlDetails": {
              "name": "organizations/3589215982/locations/global/cloudControls/restrict-bucket-region",
              "majorRevisionId": 1,
              "parameters": [
                {
                  "name": "location",
                  "parameterValue": {
                    "stringValue": "us-west"
                  }
                }
              ]
            },
            "enforcementMode": "DETECTIVE"
          },
          {
            "cloudControlDetails": {
              "name": "organizations/3589215982/locations/global/cloudControls/enable-binary-authorization",
              "majorRevisionId": 2
            },
            "enforcementMode": "DETECTIVE"
          }
        ]
            

      Contoh file YAML

        - cloudControlDetails:
            name: organizations/3589215982/locations/global/cloudControls/restrict-bucket-region
            majorRevisionId: 1
            parameters:
            - name: location
              parameterValue:
                stringValue: us-west
          enforcementMode: DETECTIVE
        - cloudControlDetails:
            name: organizations/3589215982/locations/global/cloudControls/enable-binary-authorization
            majorRevisionId: 2
          enforcementMode: DETECTIVE
            
    • FRAMEWORK: nama framework yang ada yang ingin Anda deploy, dalam format organizations/ORGANIZATION_ID/locations/LOCATION/frameworks/FRAMEWORK_NAME

    • FRAMEWORK_MAJOR_REVISION_ID: nomor versi framework yang ingin Anda deploy

    • TARGET_RESOURCE_CONFIG_EXISTING : nama organisasi, folder, atau project yang sudah ada dan ingin Anda gunakan untuk men-deploy framework baru, dalam salah satu format berikut:

      • organizations/ORGANIZATION_ID
      • folders/FOLDER_ID
      • projects/PROJECT_ID
    • TARGET_RESOURCE_CREATION_CONFIG_FOLDER_DISPLAY_NAME: nama folder yang ingin Anda buat, lalu deploy framework ke folder tersebut

    • TARGET_RESOURCE_CREATION_CONFIG_FOLDER_PARENT: nama organisasi atau folder yang ada tempat Anda ingin membuat folder baru. Format yang didukung adalah organizations/ORGANIZATION_ID dan folders/FOLDER_ID.

    • TARGET_RESOURCE_CREATION_CONFIG_PROJECT_BILLING_ACCOUNT_ID: ID akun penagihan yang akan ditetapkan ke project baru, jika Anda membuat project baru yang ingin Anda deploy framework-nya

    • TARGET_RESOURCE_CREATION_CONFIG_PROJECT_DISPLAY_NAME: nama project yang ingin Anda buat, lalu deploy framework ke project tersebut

    • TARGET_RESOURCE_CREATION_CONFIG_PROJECT_PARENT: nama organisasi atau folder yang ada tempat Anda ingin membuat project baru. Format yang didukung adalah organizations/ORGANIZATION_ID dan folders/FOLDER_ID.

    • DESCRIPTION: deskripsi opsional untuk deployment framework

Misalnya, untuk men-deploy framework bernama organizations/3589215982/locations/global/frameworks/builtin-aipp ke folder yang ada dengan ID folder example-folder, jalankan perintah berikut:

gcloud compliance-manager framework-deployments create \
   example-framework-deployment \
   --organization=3589215982 \
   --location=global \
   --cloud-control-metadata='[{"cloudControlDetails": {"name": "organizations/3589215982/locations/global/cloudControls/restrict-bucket-region", "majorRevisionId": "1", "parameters": []}, "enforcementMode": "DETECTIVE"}, {"cloudControlDetails": {"name": "organizations/3589215982/locations/global/cloudControls/enable-binary-authorization", "majorRevisionId": 2}, "enforcementMode": "DETECTIVE"}]' \
   --framework="organizations/3589215982/locations/global/frameworks/builtin-aipp" \
   --framework-major-revision-id=6 \
   --target-resource-config-existing="folders/example-folder" \
   --description="Deployment for AI Platform into example-folder"

Misalnya, untuk men-deploy framework bernama organizations/3589215982/locations/global/frameworks/builtin-aipp, dan membuat project baru bernama example-new-project di folder yang ada dengan ID folder example-folder, jalankan perintah berikut:

gcloud compliance-manager framework-deployments create \
  example-framework-deployment \
   --organization=3589215982 \
   --location=global \
   --cloud-control-metadata=deploy-controls.yaml \
   --framework="organizations/3589215982/locations/global/frameworks/builtin-aipp" \
   --framework-major-revision-id=6 \
   --target-resource-creation-config-project-billing-account-id=012345-567890-ABCDEF \
   --target-resource-creation-config-project-display-name=example-new-project \
   --target-resource-creation-config-project-parent=folders/example-folder \
   --description="Deployment for AI Platform into a new example-new-project in example-folder"

Untuk mengetahui informasinya, lihat gcloud compliance-manager framework-deployments create.

Terraform

Contoh berikut menunjukkan cara men-deploy framework menggunakan Terraform.

resource "google_cloud_security_compliance_cloud_control" "example" {
  parent           = "organizations/123456789"
  location         = "global"
  cloud_control_id = "example-cloudcontrol"

  display_name              = "TF test CloudControl Name"
  description               = "A test cloud control for security compliance"
  categories                = ["CC_CATEGORY_INFRASTRUCTURE"]
  severity                  = "HIGH"
  finding_category          = "SECURITY_POLICY"
  remediation_steps         = "Review and update the security configuration according to best practices."
  supported_cloud_providers = ["GCP"]

  rules {
    description       = "Ensure compute instances have secure boot enabled"
    rule_action_types = ["RULE_ACTION_TYPE_DETECTIVE"]

    cel_expression {
      expression = "resource.data.shieldedInstanceConfig.enableSecureBoot == true"
      resource_types_values {
        values = ["compute.googleapis.com/Instance"]
      }
    }
  }

  parameter_spec {
    name        = "enabled"
    value_type  = "BOOLEAN"
    is_required = true
  }

  parameter_spec {
    name        = "regions"
    value_type  = "STRINGLIST"
    is_required = true
  }

  parameter_spec {
    name        = "location"
    value_type  = "STRING"
    is_required = true
  }

  parameter_spec {
    name        = "oneof-parameter"
    value_type  = "ONEOF"
    is_required = true

    sub_parameters {
      name        = "test-oneof"
      value_type  = "STRING"
      is_required = true
    }

    sub_parameters {
      name        = "updated-test-oneof"
      value_type  = "STRING"
      is_required = true
    }
  }

  parameter_spec {
    name        = "bool-parameter"
    value_type  = "ONEOF"
    is_required = true

    sub_parameters {
      name        = "bool-oneof"
      value_type  = "BOOLEAN"
      is_required = true
    }

    sub_parameters {
      name        = "updated-bool-oneof"
      value_type  = "BOOLEAN"
      is_required = true
    }
  }

  parameter_spec {
    name        = "number-parameter"
    value_type  = "ONEOF"
    is_required = true

    sub_parameters {
      name        = "number-oneof"
      value_type  = "NUMBER"
      is_required = true
    }

    sub_parameters {
      name        = "updated-number-oneof"
      value_type  = "NUMBER"
      is_required = true
    }
  }

  parameter_spec {
    name        = "string-list-parameter"
    value_type  = "ONEOF"
    is_required = true

    sub_parameters {
      name        = "string-list-oneof"
      value_type  = "STRINGLIST"
      is_required = true
    }

    sub_parameters {
      name        = "updated-string-list-oneof"
      value_type  = "STRINGLIST"
      is_required = true
    }
  }
}

resource "google_cloud_security_compliance_framework" "example" {
  parent       = "organizations/123456789"
  location     = "global"
  framework_id = "example-framework"

  display_name = "Terraform Framework Name"
  description  = "An Terraform description for the framework"

  cloud_control_details {
    name              = google_cloud_security_compliance_cloud_control.example.name
    major_revision_id = "1"

    parameters {
      name = "enabled"
      parameter_value {
        bool_value = true
      }
    }
  }
}

resource "google_cloud_security_compliance_framework_deployment" "example" {
  parent                  = "organizations/123456789"
  location                = "global"
  framework_deployment_id = "example-deployment"
  description             = "A framework deployment for cloud security compliance"

  framework {
    framework         = google_cloud_security_compliance_framework.example.name
    major_revision_id = "1"
  }

  target_resource_config {
    existing_target_resource = "organizations/123456789"
  }

  cloud_control_metadata {
    enforcement_mode = "DETECTIVE"

    cloud_control_details {
      name              = google_cloud_security_compliance_cloud_control.example.name
      major_revision_id = "1"

      parameters {
        name = "enabled"
        parameter_value {
          bool_value = true
        }
      }

      parameters {
        name = "regions"
        parameter_value {
          string_list_value {
            values = ["us-central1", "us-west1", "us-east1"]
          }
        }
      }

      parameters {
        name = "location"
        parameter_value {
          string_value = "us-central1"
        }
      }

      parameters {
        name = "oneof-parameter"
        parameter_value {
          oneof_value {
            name = "test-oneof"
            parameter_value {
              string_value = "test-value"
            }
          }
        }
      }

      parameters {
        name = "bool-parameter"
        parameter_value {
          oneof_value {
            name = "bool-oneof"
            parameter_value {
              bool_value = true
            }
          }
        }
      }

      parameters {
        name = "number-parameter"
        parameter_value {
          oneof_value {
            name = "number-oneof"
            parameter_value {
              number_value = 123.45
            }
          }
        }
      }

      parameters {
        name = "string-list-parameter"
        parameter_value {
          oneof_value {
            name = "string-list-oneof"
            parameter_value {
              string_list_value {
                values = ["value1", "value2"]
              }
            }
          }
        }
      }
    }
  }
}

Setelah men-deploy framework, Anda dapat memantau lingkungan untuk mengetahui adanya penyimpangan dari kontrol cloud yang telah ditentukan. Security Command Center melaporkan instance penyimpangan sebagai temuan yang dapat Anda tinjau, filter, dan selesaikan. Perlu waktu sekitar enam jam setelah Anda men-deploy framework agar temuan terkait kontrol cloud muncul.

Mengedit framework kustom

Setelah membuat framework, Anda dapat mengubah nama dan deskripsinya, menambahkan atau menghapus kontrol cloud, dan memperbarui parameter apa pun. Anda hanya dapat mengedit framework yang Anda buat; Anda tidak dapat mengedit framework bawaan. Selain itu, Anda hanya dapat mengedit framework yang tidak di-deploy.

  1. Di konsol Google Cloud , buka halaman Compliance.

    Buka Kepatuhan

  2. Pilih organisasi atau project Anda.

  3. Di tab Konfigurasi, klik framework yang ingin Anda edit.

  4. Di halaman Framework details, pastikan framework tidak ditetapkan ke resource. Jika diperlukan, hapus penetapan.

  5. Klik Actions > Edit.

  6. Di halaman Update framework details, ubah nama dan deskripsi sesuai kebutuhan. Klik Continue.

  7. Untuk mengubah kontrol cloud yang disertakan dalam framework, selesaikan langkah-langkah berikut:

    • Untuk menambahkan kontrol cloud yang ada, klik Tambahkan Kontrol Cloud. Pilih semua kontrol cloud yang Anda perlukan, lalu klik Add.

    • Untuk membuat kontrol cloud kustom, klik Create custom cloud control. Untuk mengetahui petunjuknya, lihat Membuat kontrol cloud kustom.

    • Untuk menghapus kontrol cloud, pilih kontrol cloud, lalu klik Remove.

  8. Klik Lanjutkan.

  9. Tambahkan parameter tambahan yang diperlukan kontrol cloud.

  10. Klik Simpan.

Menghapus framework yang di-deploy dari resource

Anda dapat menghapus framework dari organisasi, folder, atau project yang Anda tetapkan ke framework tersebut. Menghapus framework berarti Compliance Manager tidak lagi menghasilkan temuan untuk node hierarki resource tersebut.

Jika Anda menghapus framework, status sebagian besar temuan terkait akan berubah menjadi Inactive setelah tujuh hari. Jika framework Anda menyertakan kontrol cloud Restrict Flow of Sensitive Data Across Geographic Jurisdictions, temuan akan berubah menjadi Inactive setelah 90 hari. Status untuk temuan yang terkait dengan kontrol cloud Membatasi Aliran Data Sensitif di Seluruh Wilayah Hukum Geografis dan kontrol cloud Membatasi Akses ke Data Sensitif untuk Pengguna yang Diizinkan tidak otomatis diubah.

Konsol

  1. Di konsol Google Cloud , buka halaman Compliance.

    Buka Kepatuhan

  2. Pilih organisasi atau project Anda.

  3. Di tab Configure, klik framework yang ingin Anda hapus.

  4. Di halaman Framework details, klik Actions > Manage resource assignments.

  5. Di tabel Assigned resources, temukan resource yang ingin Anda hapus, lalu klik Delete.

  6. Tinjau pesan konfirmasi, lalu klik Batalkan penetapan.

  7. Opsional: Ubah status temuan terkait menjadi Inactive. Untuk mengetahui petunjuknya, lihat Mengubah status temuan.

CLI

Untuk menghapus deployment framework tertentu di organisasi Anda, jalankan perintah gcloud compliance-manager framework-deployments delete:

gcloud compliance-manager framework-deployments delete \
   FRAMEWORK_DEPLOYMENT \
   --location=LOCATION \
   --organization=ORGANIZATION \
   --etag=ETAG_ID

Ganti nilai berikut:

  • FRAMEWORK_DEPLOYMENT: ID deployment framework

  • ORGANIZATION: ID organisasi Anda

  • LOCATION: region tempat deployment framework disimpan

  • ETAG_ID: ID untuk versi deployment framework saat ini, yang membantu memastikan bahwa Anda menghapus versi deployment framework yang diinginkan. Jika ID tidak cocok dengan versi saat ini, permintaan akan gagal. Jika Anda menghilangkan nilai ini, Compliance Manager akan menghapus deployment framework tanpa syarat.

Misalnya, untuk menghapus example-deployment dari organisasi 3589215982 dan disimpan di lokasi global, jalankan perintah berikut:

gcloud compliance-manager framework-deployments delete \
   example-deployment \
   --organization=3589215982 \
   --location=global \
   --etag=MTc3NDU4MjM4OTY0MzU5MjQ5OTI=

Untuk mengetahui informasi tentang flag opsional, lihat gcloud compliance-manager framework-deployments delete.

Mengupdate framework bawaan ke rilis yang lebih baru

Google memublikasikan update rutin pada framework bawaannya saat layanan men-deploy fitur baru atau saat praktik terbaik baru muncul.

Anda dapat melihat rilis framework bawaan di dasbor framework di tab Configure atau di halaman detail framework.

Google akan memberi tahu Anda di konsol saat update berikut terjadi:

Untuk mengupdate framework yang telah Anda deploy, selesaikan langkah-langkah berikut:

  1. Di konsol Google Cloud , buka halaman Compliance.

    Buka Kepatuhan

  2. Pilih organisasi atau project Anda.

  3. Di tab Configure, klik framework yang ingin Anda perbarui.

  4. Di halaman Framework details, di tabel Assigned resources, tinjau Update status untuk setiap penetapan yang diidentifikasi sebagai Update available.

  5. Buat daftar kontrol cloud yang diperbarui, termasuk ID, parameter, dan ID revisinya, yang ingin Anda sertakan atau hapus dari framework yang diperbarui.

  6. Untuk menerapkan perubahan, selesaikan langkah-langkah berikut:

    Konsol

    Anda dapat menggunakan konsol Google Cloud untuk mengupdate framework dengan menghapus, lalu men-deploy ulang framework. Gunakan gcloud CLI atau Cloud Security Compliance REST API untuk mengupdate framework yang ada tanpa memengaruhi dasbor temuan dan tanpa harus menghapus dan men-deploy ulang framework.

    1. Hapus penetapan resource.

    2. Deploy ulang framework ke resource Anda agar Compliance Manager dapat melanjutkan evaluasi resource dan membuat temuan.

    CLI

    Untuk mengupdate deployment framework di tempat, jalankan perintah gcloud compliance-manager framework-deployments update. Untuk menentukan kontrol cloud dan mode penerapan yang berlaku untuk framework, gunakan salah satu opsi berikut:

    • Tentukan kontrol cloud dan mode penerapan secara inline menggunakan flag --cloud-control-metadata. Jika menggunakan flag ini, Anda harus menentukan semua kontrol cloud dan mode penerapan yang berlaku untuk framework.
    • Tentukan kontrol cloud dan mode penerapan dalam file JSON atau YAML. Jika menggunakan file, Anda harus menentukan semua kontrol cloud dan mode penerapan yang berlaku untuk framework.
    • Gunakan flag --add-cloud-control-metadata dan --remove-cloud-control-metadata untuk menambahkan atau menghapus kontrol cloud satu per satu.

    Jalankan perintah berikut:

    gcloud compliance-manager framework-deployments update \
       FRAMEWORK_DEPLOYMENT \
       --location=LOCATION \
       (--organization=ORGANIZATION | --project=PROJECT_ID) \
       [--framework-major-revision-id=FRAMEWORK_MAJOR_REVISION_ID] \
       [--cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE] \
          | [--add-cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE]] \
            [--remove-cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE]]] \
       [--etag=ETAG_ID] \
       [--async]
    

    Ganti kode berikut:

    • FRAMEWORK_DEPLOYMENT: ID deployment framework.

    • LOCATION: region tempat deployment framework disimpan.

    • ORGANIZATION atau PROJECT_ID: ID organisasi atau project ID Anda.

    • FRAMEWORK_MAJOR_REVISION_ID: ID revisi utama framework yang ingin Anda update. Jika Anda menghilangkan flag ini, Compliance Manager akan mengupdate deployment ke revisi utama terbaru framework. Anda tidak dapat mendowngrade ke ID revisi utama yang lebih lama.

    • Salah satu dari berikut ini:

      • --cloud-control-metadata=[cloudControlDetails=CLOUD_CONTROL_DETAILS],[enforcementMode=ENFORCEMENT_MODE]: daftar kontrol cloud dalam framework, dengan nama, parameter, ID revisi, dan mode penerapan, dalam format berikut:

      • CLOUD_CONTROL_DETAILS: objek yang menyertakan daftar nama kontrol cloud, parameter, dan ID revisi. Formatnya adalah sebagai berikut:

        • name=NAME: nama resource lengkap kontrol cloud, dalam format organizations/ORGANIZATION_ID/locations/LOCATION/cloudControls/CLOUD_CONTROL_NAME atau projects/PROJECT_ID/locations/LOCATION/cloudControls/CLOUD_CONTROL_NAME.

        • majorRevisionId=MAJOR_REVISION_ID: versi utama kontrol cloud.

        • parameters=PARAMETERS: parameter opsional yang diperlukan oleh kontrol cloud tertentu.

      • ENFORCEMENT_MODE: apakah kontrol tersebut adalah kontrol AUDIT, DETECTIVE, atau PREVENTIVE.

      • --cloud-control-metadata=PATH_TO_FILE: jalur ke file JSON atau YAML yang menyertakan detail kontrol cloud dan mode penerapan. Luaskan bagian berikut untuk melihat contoh file JSON dan YAML.

        Contoh file JSON

          [
            {
              "cloudControlDetails": {
                "name": "organizations/3589215982/locations/global/cloudControls/restrict-bucket-region",
                "majorRevisionId": 1,
                "parameters": [
                  {
                    "name": "location",
                    "parameterValue": {
                      "stringValue": "us-west"
                    }
                  }
                ]
              },
              "enforcementMode": "DETECTIVE"
            },
            {
              "cloudControlDetails": {
                "name": "organizations/3589215982/locations/global/cloudControls/enable-binary-authorization",
                "majorRevisionId": 2
              },
              "enforcementMode": "DETECTIVE"
            }
          ]
              

        Contoh file YAML

          - cloudControlDetails:
              name: organizations/3589215982/locations/global/cloudControls/restrict-bucket-region
              majorRevisionId: 1
              parameters:
              - name: location
                parameterValue:
                  stringValue: us-west
            enforcementMode: DETECTIVE
          - cloudControlDetails:
              name: organizations/3589215982/locations/global/cloudControls/enable-binary-authorization
              majorRevisionId: 2
            enforcementMode: DETECTIVE
              
      • --add-cloud-control-metadata atau --remove-cloud-control-metadata: kontrol cloud yang akan ditambahkan atau dihapus dari deployment framework. Anda dapat menggunakan kedua flag dalam perintah yang sama. Anda dapat menggunakan salah satu opsi berikut untuk menentukan lebih dari satu kontrol cloud yang akan ditambahkan atau dihapus:

        • Ulangi flag untuk setiap kontrol.
        • Sertakan kontrol di dalam daftar JSON [ {...}, {...} ] dalam satu flag.
        • Berikan jalur ke file JSON atau YAML yang menyertakan daftar kontrol. Gunakan skema yang sama dengan flag --cloud-control-metadata. Contoh: --add-cloud-control-metadata=add-controls.yaml --remove-cloud-control-metadata=remove-controls.yaml.
    • ETAG_ID: ID untuk versi deployment framework saat ini, yang membantu memastikan bahwa Anda mengupdate versi deployment framework yang diinginkan. Jika ID tidak cocok dengan versi saat ini, permintaan akan gagal. Jika Anda menghapus nilai ini, Compliance Manager akan mengupdate deployment framework tanpa syarat.

    Secara opsional, sertakan flag --async untuk segera kembali tanpa menunggu operasi update yang berjalan lama selesai.

    Misalnya, untuk mengupdate example-deployment yang di-deploy ke organisasi 3589215982 dan disimpan di lokasi global, jalankan perintah berikut:

    gcloud compliance-manager framework-deployments update \
       example-deployment \
       --organization=3589215982 \
       --location=global \
       --framework-major-revision-id=7 \
       --cloud-control-metadata=cloud-control-metadata.yaml \
       --etag=MTc3NDU4MjM4OTY0MzU5MjQ5OTI=
    

    Untuk mengetahui informasi tentang flag opsional, lihat gcloud compliance-manager framework-deployments update.

    REST

    Untuk mengupdate deployment framework di tempat, panggil metode frameworkDeployments.patch (untuk organisasi atau project). Tentukan ID revisi utama target serta semua kontrol cloud dan mode penerapan yang berlaku untuk framework di cloudControlMetadata.

    Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

    • RESOURCE_TYPE: jenis container resource induk untuk deployment framework: organizations atau projects.
    • RESOURCE_ID: ID organisasi atau project ID numerik. Contoh: 3589215982.
    • LOCATION: lokasi deployment framework. Nilai yang didukung: global.
    • FRAMEWORK_DEPLOYMENT: ID deployment framework yang ingin Anda update. Contoh: example-deployment.
    • UPDATE_MASK: daftar kolom opsional yang dipisahkan koma untuk ditimpa, relatif terhadap resource FrameworkDeployment. Misalnya: framework.majorRevisionId,cloudControlMetadata Jika dihilangkan, semua kolom akan ditimpa.
    • FRAMEWORK_NAME: nama resource framework, dalam format organizations/ORGANIZATION_ID/locations/LOCATION/frameworks/FRAMEWORK_ID atau projects/PROJECT_ID/locations/LOCATION/frameworks/FRAMEWORK_ID. Misalnya: organizations/3589215982/locations/global/frameworks/builtin-aipp.
    • FRAMEWORK_MAJOR_REVISION_ID: ID revisi utama framework yang ingin Anda update. Jika dihilangkan, Compliance Manager akan mengupdate deployment ke revisi utama terbaru framework.
    • CLOUD_CONTROL_NAME: nama resource lengkap kontrol cloud dalam framework, dalam format organizations/ORGANIZATION_ID/locations/LOCATION/cloudControls/CLOUD_CONTROL_ID.
    • MAJOR_REVISION_ID: ID revisi utama kontrol cloud.
    • ENFORCEMENT_MODE: apakah kontrol cloud adalah kontrol AUDIT, DETECTIVE, atau PREVENTIVE.
    • ETAG_ID: ID opsional untuk versi deployment framework saat ini guna mencegah update serentak saling menimpa. Contoh: MTc3NDU4MjM4OTY0MzU5MjQ5OTI=.

    Metode HTTP dan URL:

    PATCH https://cloudsecuritycompliance.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/LOCATION/frameworkDeployments/FRAMEWORK_DEPLOYMENT?updateMask=UPDATE_MASK

    Meminta isi JSON:

    {
      "framework": {
        "framework": "FRAMEWORK_NAME",
        "majorRevisionId": "FRAMEWORK_MAJOR_REVISION_ID"
      },
      "cloudControlMetadata": [
        {
          "cloudControlDetails": {
            "name": "CLOUD_CONTROL_NAME",
            "majorRevisionId": "MAJOR_REVISION_ID",
            "parameters": []
          },
          "enforcementMode": "ENFORCEMENT_MODE"
        }
      ],
      "etag": "ETAG_ID"
    }
    

    Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

    curl

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    curl -X PATCH \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "Content-Type: application/json; charset=utf-8" \
    -d @request.json \
    "https://cloudsecuritycompliance.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/LOCATION/frameworkDeployments/FRAMEWORK_DEPLOYMENT?updateMask=UPDATE_MASK"

    PowerShell

    Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

    $cred = gcloud auth print-access-token
    $headers = @{ "Authorization" = "Bearer $cred" }

    Invoke-WebRequest `
    -Method PATCH `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://cloudsecuritycompliance.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/locations/LOCATION/frameworkDeployments/FRAMEWORK_DEPLOYMENT?updateMask=UPDATE_MASK" | Select-Object -Expand Content

    Anda akan melihat respons JSON seperti berikut:

    {
      "name": "organizations/3589215982/locations/global/operations/operation-1726842525305-6228ddb4dca96-78a6db59-f9dd9a24",
      "done": false
    }
    

    Responsnya mencakup informasi berikut:

    • name: ID string unik untuk operasi update yang berjalan lama, yang dapat Anda gunakan untuk melacak progres update.
    • done: flag boolean yang ditetapkan ke false saat operasi update dimulai, dan ditetapkan ke true saat update selesai.

Menghapus framework kustom

Hapus framework jika tidak diperlukan lagi. Anda hanya dapat menghapus framework yang Anda buat; Anda tidak dapat menghapus framework bawaan.

Konsol

  1. Di konsol Google Cloud , buka halaman Compliance.

    Buka Kepatuhan

  2. Pilih organisasi atau project Anda.

  3. Di tab Configure, klik framework yang ingin Anda batalkan penetapan resource-nya.

  4. Di halaman Framework details, pastikan framework tidak ditetapkan ke resource. Jika diperlukan, hapus penetapan.

  5. Klik Actions > Delete.

  6. Di jendela Delete, tinjau pesannya. Ketik Delete, lalu klik Confirm.

CLI

Untuk menghapus framework tertentu di organisasi Anda, jalankan perintah gcloud compliance-manager frameworks delete:

gcloud compliance-manager frameworks delete \
   FRAMEWORK \
   --location=LOCATION \
   --organization=ORGANIZATION

Ganti nilai berikut:

  • FRAMEWORK: nama framework

  • ORGANIZATION: ID organisasi Anda

  • LOCATION: region tempat framework disimpan

Misalnya, untuk menghapus example-framework dari organisasi 3589215982 dan disimpan di lokasi global, jalankan perintah berikut:

gcloud compliance-manager frameworks delete \
   example-framework \
   --organization=3589215982 \
   --location=global

Untuk mengetahui informasi tentang flag opsional, lihat gcloud compliance-manager frameworks delete.

Langkah berikutnya