Menganalisis kebijakan organisasi

Halaman ini berisi informasi tentang menganalisis setelan kebijakan organisasi Anda untuk melihat resource mana yang dicakup oleh kebijakan organisasi tertentu. Dengan Penganalisis Kebijakan untuk Kebijakan Organisasi, Anda dapat membuat kueri analisis untuk mendapatkan informasi tentang kebijakan organisasi kustom dan yang telah ditetapkan.

Kueri analisis terdiri dari ruang lingkup dan batasan.

  • Batasan: menentukan nama resource batasan.
  • Ruang Lingkup: menentukan sebuah organisasi untuk menyusun cakupan analisis. Semua kebijakan organisasi dengan batasan yang ditentukan dalam cakupan ini disertakan dalam analisis.

Untuk informasi selengkapnya tentang kebijakan organisasi, lihat Pengantar Layanan Kebijakan Organisasi. Untuk mengetahui informasi selengkapnya tentang cara membuat batasan kustom, lihat Membuat dan mengelola batasan kustom.

Sebelum memulai

Enable the Cloud Asset API.

Enable the API

Anda harus mengaktifkan API di project atau organisasi yang akan digunakan untuk mengirim kueri. ID ini tidak harus berupa resource yang sama dengan tempat Anda menentukan cakupan kueri.

Peran dan izin yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk menjalankan analisis kebijakan organisasi, minta administrator Anda untuk memberi Anda peran IAM berikut di resource organisasi tempat Anda ingin melakukan analisis:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Peran yang telah ditetapkan ini berisi izin yang diperlukan untuk menjalankan analisis kebijakan organisasi. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

Izin yang diperlukan

Izin berikut diperlukan untuk menjalankan analisis kebijakan organisasi:

  • Untuk melakukan analisis:
    • cloudasset.assets.analyzeOrgPolicy
    • cloudasset.assets.searchAllResources
    • cloudasset.assets.searchAllIamPolicies
  • Untuk melihat batasan kustom: orgpolicy.customConstraints.get

Anda mung juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaanlainnya.

Harga dan kuota

Penganalisis Kebijakan untuk Kebijakan Organisasi dalam skala besar (di atas 20 kueri per organisasi per hari) dan visualisasi warisan hanya tersedia untuk pelanggan dengan aktivasi Security Command Center tingkat organisasi.

Kuota untuk Penganalisis Kebijakan untuk Kebijakan Organisasi dibagikan di semua alat Penganalisis Kebijakan. Namun, kueri ke Penganalisis Kebijakan untuk kebijakan izin IAM tidak akan mengurangi kuota hingga 29 April 2024. Untuk informasi selengkapnya, lihat pertanyaan terkait Penagihan.

Menganalisis kebijakan yang dikonfigurasi

Kebijakan organisasi dibuat dari batasan dan kondisi opsional tempat batasan tersebut diterapkan. Anda dapat menggunakan Penganalisis Kebijakan untuk menampilkan daftar kebijakan organisasi dengan batasan tertentu dan resource tempat kebijakan tersebut disertakan.

Untuk setiap kebijakan organisasi yang terdeteksi dalam cakupan kueri, Penganalisis Kebijakan akan menampilkan entri hasil. Entri hasil berisi kolom berikut:

  • consolidatedPolicy: resource tempat kebijakan organisasi dilampirkan, dan penegakan kebijakan yang efektif pada resource tersebut sehubungan dengan aturan evaluasi hierarki.

  • project: ID resource project yang mencakup kebijakan gabungan ini.

  • folders: ID resource folder apa pun yang merupakan ancestor resource tempat kebijakan organisasi dilampirkan.

  • organization: ID resource organisasi yang merupakan ancestor resource tempat kebijakan organisasi dilampirkan.

  • policyBundle: kebijakan organisasi yang dikonfigurasi lengkap dan dilampirkan pada resource di atas, serta kebijakan organisasi yang ditentukan pada ancestornya dalam hierarki resource.

Konsol

  1. Di konsol Google Cloud, buka halaman Policy Analyzer.

    Buka Penganalisis Kebijakan

  2. Di bagian Analyze organization policy, cari panel berlabel How are organization policies disabled for resources in my organization?, lalu klik Create query di panel tersebut.

  3. Di kotak Select query organization, pilih organisasi yang kebijakan organisasinya ingin dianalisis.

  4. Pilih jenis batasan yang ingin dianalisis. Untuk batasan yang telah ditentukan, pilih Built-in constraint. Untuk batasan kustom, pilih Custom constraint.

  5. Masukkan nama batasan yang ingin Anda analisis. Awalan untuk jenis batasan yang Anda analisis sudah disertakan. Misalnya, untuk batasan domain yang telah ditetapkan sebelumnya, masukkan iam.allowedPolicyMemberDomains, dan untuk batasan khusus, masukkan namanya, seperti disableGkeAutoUpgrade.

  6. Klik Analyze, lalu Run query. Halaman laporan menunjukkan parameter kueri yang Anda masukkan, dan tabel hasil yang berisi semua resource tempat batasan ini diterapkan secara langsung.

  7. Anda dapat menyimpan kueri ini untuk dilihat lagi nanti dengan mengklik Salin URL kueri. Untuk melihat kueri ini, buka URL yang dihasilkan.

  8. Anda dapat memvisualisasikan pewarisan batasan yang dianalisis dengan memilih minimal satu resource dari daftar, lalu mengklik View pewarisan. Anda juga dapat langsung membuka tampilan visualisasi saat membuat kueri analisis dengan mengklik Analyze, lalu Visualize. Lihat Memvisualisasikan pewarisan untuk informasi selengkapnya.

gcloud

Untuk mendapatkan analisis tentang cara penerapan batasan kebijakan organisasi dalam organisasi, gunakan perintah gcloud asset analyze-org-policies:

gcloud asset analyze-org-policies \
    --constraint=CONSTRAINT_NAME  \
    --scope=organizations/ORGANIZATION_ID \
    --limit=LIMIT_POLICIES \
    --filter=FILTER_QUERY

Ganti kode berikut:

  • CONSTRAINT_NAME: nama batasan kebijakan organisasi yang ingin Anda analisis. Untuk daftar batasan, lihat Batasan kebijakan organisasi.

  • ORGANIZATION_ID: ID resource organisasi Anda. Untuk informasi selengkapnya tentang cara menemukan ID organisasi Anda, lihat Membuat dan mengelola organisasi.

  • LIMIT_POLICIES: jumlah entri hasil yang ingin Anda lihat. Untuk melihat entri tidak terbatas, masukkan unlimited.

  • FILTER_QUERY: kueri filter untuk hanya melihat kebijakan yang cocok dengan ekspresi pemfilteran Anda. Satu-satunya isian yang tersedia untuk pemfilteran adalah consolidated_policy.attached_resource. Misalnya, consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890" hanya akan menampilkan kebijakan yang disertakan ke project dengan project ID 1234567890.

Respons YAML mirip dengan berikut ini:

Contoh respons YAML

---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  rules:
  - enforce: true
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  reset: true
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true

REST

Untuk mendapatkan analisis tentang penerapan batasan kebijakan organisasi dalam organisasi, gunakan metode analyzeOrgPolicies Cloud Asset API.

Metode HTTP dan URL:

GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicies

Meminta isi JSON:

JSON_REQUEST="{
  'constraint': 'CONSTRAINT_NAME',
  'filter': 'FILTER_QUERY',
  'page_size': PAGE_SIZE,
  'page_token': PAGE_TOKEN
}"

Ganti kode berikut:

  • ORGANIZATION_ID: ID resource organisasi Anda. Untuk informasi selengkapnya tentang cara menemukan ID organisasi Anda, lihat Membuat dan mengelola organisasi.

  • CONSTRAINT_NAME: nama batasan kebijakan organisasi yang ingin Anda analisis. Untuk daftar batasan, lihat Batasan kebijakan organisasi.

  • FILTER_QUERY: kueri filter untuk hanya melihat kebijakan yang cocok dengan ekspresi pemfilteran Anda. Satu-satunya isian yang tersedia untuk pemfilteran adalah consolidated_policy.attached_resource. Misalnya, consolidated_policy.attached_resource="//cloudresourcemanager.googleapis.com/projects/1234567890" hanya akan menampilkan kebijakan yang disertakan ke project dengan project ID 1234567890.

  • PAGE_SIZE: jumlah entri hasil per halaman yang ingin Anda lihat. Untuk melihat entri tidak terbatas, masukkan unlimited. Permintaan yang dibuat dengan kumpulan flag ini akan menampilkan nilai nextPageToken jika jumlah total entri hasil lebih besar dari PAGE_SIZE.

  • PAGE_TOKEN: hanya untuk ditetapkan pada permintaan setelah permintaan pertama yang menyertakan flag page_size. Anda dapat menggunakan nilai nextPageToken yang diterima dari respons sebelumnya untuk menampilkan halaman hasil tertentu.

Respons JSON mirip dengan berikut ini:

Contoh respons JSON

{
  "orgPolicyResults": [
    {
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012",
        "rules": [
          {
            "values": {
              "allowedValues": [
                "C0265whk2"
              ]
            }
          },
          {
            "values": {
              "allowedValues": [
                "C03kd36xr"
              ]
            }
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012",
          "rules": [
            {
              "values": {
                "allowedValues": [
                  "C03kd36xr"
                ]
              }
            }
          ],
          "inheritFromParent": true,
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/123456789012"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123",
          "rules": [
            {
              "values": {
                "allowedValues": [
                  "C0265whk2"
                ]
              }
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123"
        }
      ]
    },
    {
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123",
        "rules": [
          {
            "values": {
              "allowedValues": [
                "C0265whk2"
              ]
            }
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123",
          "rules": [
            {
              "values": {
                "allowedValues": [
                  "C0265whk2"
                ]
              }
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/234567890123"
        }
      ]
    }
  ]
  "constraint": {
    "googleDefinedConstraint": {
      "name": "constraints/iam.allowedPolicyMemberDomains",
      "displayName": "Domain restricted sharing",
      "description": "This list constraint defines one or more Cloud Identity or Google Workspace customer IDs whose principals can be added to IAM policies. \u003cbr\u003eBy default, all user identities are allowed to be added to IAM policies. Only allowed values can be defined in this constraint, denied values are not supported. \u003cbr\u003eIf this constraint is active, only principals that belong to the allowed customer IDs can be added to IAM policies.",
      "constraintDefault": "ALLOW",
      "listConstraint": {}
    }
  }
}

Menganalisis container

Container dalam konteks ini adalah project, folder, atau resource organisasi. Anda dapat menggunakan Penganalisis Kebijakan untuk menampilkan daftar semua penampung yang memiliki kebijakan organisasi dengan batasan tertentu yang diberlakukan. Penganalisis Kebijakan juga menampilkan nama lengkap setiap penampung, induk penampung dalam hierarki, dan tag yang diwarisi oleh atau dilampirkan ke penampung.

Untuk setiap penampung yang terdeteksi dalam cakupan kueri, Penganalisis Kebijakan akan menampilkan entri hasil. Entri hasil berisi kolom berikut:

  • consolidatedPolicy: penampung tempat kebijakan organisasi dilampirkan, dan penerapan kebijakan yang efektif pada penampung tersebut sehubungan dengan aturan evaluasi hierarki.

  • conditionEvaluation: jika ketentuan yang disertakan mengakibatkan penegakan kebijakan organisasi, evaluationValue adalah TRUE. Jika kondisi menyebabkan kebijakan organisasi tidak diterapkan, evaluationValue adalah FALSE. Jika kondisi tidak didukung oleh satu atau beberapa resource tempat kebijakan organisasi diberlakukan, kondisi itu sendiri akan ditampilkan.

  • effectiveTags: semua tag yang secara langsung dilampirkan ke atau diwarisi oleh penampung dan induk penampung dalam hierarki.

  • folders: ID dari setiap resource folder yang berisi penampung tempat kebijakan organisasi dilampirkan.

  • fullResourceName: nama lengkap penampung.

  • organization: ID resource organisasi yang merupakan ancestor dari container tempat kebijakan organisasi dilampirkan.

  • parent: nama resource lengkap induk penampung ini.

  • policyBundle: kebijakan organisasi yang dikonfigurasi secara langsung pada container, jika ada, dan kebijakan organisasi yang ditentukan pada ancestor container dalam hierarki resource.

  • project: ID penampung tempat kebijakan organisasi dilampirkan, jika merupakan resource project.

Konsol

  1. Di konsol Google Cloud, buka halaman Policy Analyzer.

    Buka Penganalisis Kebijakan

  2. Di bagian Menganalisis kebijakan organisasi, cari panel berlabel Manakah penampung yang memiliki batasan kebijakan organisasi yang diterapkan padanya?, lalu klik Buat kueri di panel tersebut.

  3. Di kotak Select query organization, pilih organisasi yang kebijakan organisasinya ingin dianalisis.

  4. Pilih jenis batasan yang ingin dianalisis. Untuk batasan yang telah ditentukan, pilih Built-in constraint. Untuk batasan kustom, pilih Custom constraint.

  5. Masukkan nama batasan yang ingin Anda analisis. Awalan untuk jenis batasan yang Anda analisis sudah disertakan. Misalnya, untuk batasan domain yang telah ditetapkan sebelumnya, masukkan iam.allowedPolicyMemberDomains, dan untuk batasan khusus, masukkan namanya, seperti disableGkeAutoUpgrade.

  6. Klik Jalankan kueri. Halaman laporan menunjukkan parameter kueri yang Anda masukkan, dan tabel hasil dari semua penampung tempat batasan ini diterapkan atau diwarisi.

  7. Anda dapat menyimpan kueri ini untuk dilihat lagi nanti dengan mengklik Salin URL kueri. Untuk melihat kueri ini, buka URL yang dihasilkan.

  8. Anda dapat memvisualisasikan pewarisan batasan yang dianalisis dengan memilih minimal satu penampung dari daftar, lalu mengklik View pewarisan. Anda juga dapat langsung membuka tampilan visualisasi saat membuat kueri analisis dengan mengklik Analyze, lalu Visualize. Lihat Memvisualisasikan pewarisan untuk informasi selengkapnya.

gcloud

Untuk mendapatkan analisis tentang cara penerapan batasan kebijakan organisasi pada penampung dalam organisasi, gunakan perintah gcloud asset analyze-org-policy-governed-containers:

gcloud asset analyze-org-policy-governed-containers \
    --constraint=CONSTRAINT_NAME  \
    --scope=organizations/ORGANIZATION_ID \
    --limit=LIMIT_CONTAINERS \
    --filter=FILTER_QUERY

Ganti kode berikut:

  • CONSTRAINT_NAME: nama batasan kebijakan organisasi yang ingin Anda analisis. Untuk daftar batasan, lihat Batasan kebijakan organisasi.

  • ORGANIZATION_ID: ID resource organisasi Anda. Untuk informasi selengkapnya tentang cara menemukan ID organisasi Anda, lihat Membuat dan mengelola organisasi.

  • LIMIT_CONTAINERS: jumlah entri hasil yang ingin Anda lihat. Untuk melihat entri tidak terbatas, masukkan unlimited.

  • FILTER_QUERY: kueri filter untuk hanya melihat penampung yang cocok dengan ekspresi pemfilteran Anda. Satu-satunya isian yang tersedia untuk pemfilteran adalah parent. Misalnya, parent="//cloudresourcemanager.googleapis.com/organizations/012345678901" hanya akan menampilkan penampung yang merupakan turunan organisasi dengan ID organisasi 012345678901.

Respons YAML mirip dengan berikut ini:

Contoh respons YAML

---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1
  attachedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1
  rules:
  - values:
      allowedValues:
      - projects/donghe-project1/zones/us-central1-a/instances/instance-1
fullResourceName: //cloudresourcemanager.googleapis.com/projects/donghe-project1
parent: //cloudresourcemanager.googleapis.com/folders/86513245445
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1
  attachedResource: //cloudresourcemanager.googleapis.com/projects/donghe-project1
  inheritFromParent: true
  rules:
  - values:
      allowedValues:
      - projects/donghe-project1/zones/us-central1-a/instances/instance-1
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
  attachedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
  rules:
  - denyAll: true
fullResourceName: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
parent: //cloudresourcemanager.googleapis.com/organizations/474566717491
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
  attachedResource: //cloudresourcemanager.googleapis.com/projects/jeffreyai-prj01-on-ipa1
  inheritFromParent: true
  rules:
  - denyAll: true
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  rules:
  - values:
      allowedValues:
      - projects/opa-test-project-1-364621/zones/us-central1-a/instances/instance-1
fullResourceName: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
parent: //cloudresourcemanager.googleapis.com/folders/666681422980
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-1-364621
  rules:
  - values:
      allowedValues:
      - projects/opa-test-project-1-364621/zones/us-central1-a/instances/instance-1

REST

Untuk mendapatkan analisis tentang penerapan batasan kebijakan organisasi pada penampung dalam organisasi, gunakan metode analyzeOrgPolicyGovernedContainers Cloud Asset API.

Metode HTTP dan URL:

GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicyGovernedContainers

Meminta isi JSON:

JSON_REQUEST="{
  'constraint': 'CONSTRAINT_NAME',
  'filter': '"FILTER_QUERY"',
  'page_size': PAGE_SIZE,
  'page_token': PAGE_TOKEN
}"

Ganti kode berikut:

  • ORGANIZATION_ID: ID resource organisasi Anda. Untuk informasi selengkapnya tentang cara menemukan ID organisasi Anda, lihat Membuat dan mengelola organisasi.

  • CONSTRAINT_NAME: nama batasan kebijakan organisasi yang ingin Anda analisis. Untuk daftar batasan, lihat Batasan kebijakan organisasi.

  • FILTER_QUERY: kueri filter untuk hanya melihat penampung yang cocok dengan ekspresi pemfilteran Anda. Satu-satunya isian yang tersedia untuk pemfilteran adalah parent. Misalnya, parent="//cloudresourcemanager.googleapis.com/organizations/012345678901" hanya akan menampilkan penampung yang merupakan turunan organisasi dengan ID organisasi 012345678901.

  • PAGE_SIZE: jumlah halaman entri hasil yang ingin Anda lihat. Untuk melihat entri tidak terbatas, masukkan unlimited. Permintaan yang dibuat dengan kumpulan flag ini akan menampilkan nilai nextPageToken jika jumlah total entri hasil lebih besar dari PAGE_SIZE.

  • PAGE_TOKEN: hanya untuk ditetapkan pada permintaan setelah permintaan pertama yang menyertakan flag page_size. Anda dapat menggunakan nilai nextPageToken yang diterima dari respons sebelumnya untuk menampilkan halaman hasil tertentu.

Respons JSON mirip dengan berikut ini:

Contoh respons JSON

{
  "governedContainers": [
    {
      "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2",
      "parent": "//cloudresourcemanager.googleapis.com/folders/513502730678",
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678",
        "rules": [
          {
            "enforce": false
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678",
          "rules": [
            {
              "enforce": false
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980",
          "rules": [
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980"
        }
      ]
    },
    {
      "fullResourceName": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-1",
      "parent": "//cloudresourcemanager.googleapis.com/folders/513502730678",
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678",
        "rules": [
          {
            "enforce": false
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678",
          "rules": [
            {
              "enforce": false
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/513502730678"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980",
          "rules": [
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/666681422980"
        }
      ]
    }
  ]
  "constraint": {
    "googleDefinedConstraint": {
      "name": "constraints/compute.requireOsLogin",
      "displayName": "Require OS Login",
      "description": "This boolean constraint, when set to \u003ccode\u003etrue\u003c/code\u003e, enables OS Login on all newly created Projects. All VM instances created in new projects will have OS Login enabled. On new and existing projects, this constraint prevents metadata updates that disable OS Login at the project or instance level. \u003cbr\u003eBy default, the OS Login feature is disabled on Compute Engine projects.\u003cbr\u003eGKE instances in private clusters running node pool versions 1.20.5-gke.2000 and later support OS Login. GKE instances in public clusters do not currently support OS Login. If this constraint is applied to a Project running public clusters, GKE instances running in that Project may not function properly.",
      "constraintDefault": "ALLOW",
      "booleanConstraint": {}
    }
  }
}

Menganalisis aset

Aset dalam konteks ini adalah kebijakan izin resource Google Cloud atau Identity and Access Management (IAM). Anda dapat menggunakan Penganalisis Kebijakan untuk menampilkan daftar semua aset yang memiliki kebijakan organisasi dengan batasan tertentu yang diterapkan pada aset tersebut. Batasan kustom dan batasan standar berikut didukung:

  • constraints/ainotebooks.accessMode
  • constraints/ainotebooks.disableFileDownloads
  • constraints/ainotebooks.disableRootAccess
  • constraints/ainotebooks.disableTerminal
  • constraints/ainotebooks.environmentOptions
  • constraints/ainotebooks.requireAutoUpgradeSchedule
  • constraints/ainotebooks.restrictVpcNetworks
  • constraints/compute.disableGuestAttributesAccess
  • constraints/compute.disableInstanceDataAccessApis
  • constraints/compute.disableNestedVirtualization
  • constraints/compute.disableSerialPortAccess
  • constraints/compute.disableSerialPortLogging
  • constraints/compute.disableVpcExternalIpv6
  • constraints/compute.requireOsLogin
  • constraints/compute.requireShieldedVm
  • constraints/compute.restrictLoadBalancerCreationForTypes
  • constraints/compute.restrictProtocolForwardingCreationForTypes
  • constraints/compute.restrictXpnProjectLienRemoval
  • constraints/compute.setNewProjectDefaultToZonalDNSOnly
  • constraints/compute.skipDefaultNetworkCreation
  • constraints/compute.trustedImageProjects
  • constraints/compute.vmCanIpForward
  • constraints/compute.vmExternalIpAccess
  • constraints/gcp.detailedAuditLoggingMode
  • constraints/gcp.resourceLocations
  • constraints/iam.allowedPolicyMemberDomains
  • constraints/iam.automaticIamGrantsForDefaultServiceAccounts
  • constraints/iam.disableServiceAccountCreation
  • constraints/iam.disableServiceAccountKeyCreation
  • constraints/iam.disableServiceAccountKeyUpload
  • constraints/iam.restrictCrossProjectServiceAccountLienRemoval
  • constraints/iam.serviceAccountKeyExpiryHours
  • constraints/resourcemanager.accessBoundaries
  • constraints/resourcemanager.allowedExportDestinations
  • constraints/sql.restrictAuthorizedNetworks
  • constraints/sql.restrictNoncompliantDiagnosticDataAccess
  • constraints/sql.restrictNoncompliantResourceCreation
  • constraints/sql.restrictPublicIp
  • constraints/storage.publicAccessPrevention
  • constraints/storage.restrictAuthTypes
  • constraints/storage.uniformBucketLevelAccess

Penganalisis Kebijakan menampilkan nama lengkap setiap aset, induk aset dalam hierarki, serta resource project ancestor, folder, dan organisasi di atas aset dalam hierarki.

Untuk setiap aset yang terdeteksi dalam cakupan kueri, Penganalisis Kebijakan akan menampilkan entri hasil.

Entri hasil untuk resource berisi kolom berikut:

  • consolidatedPolicy: resource tempat kebijakan organisasi dilampirkan, dan penegakan kebijakan yang efektif pada resource tersebut sehubungan dengan aturan evaluasi hierarki.

  • conditionEvaluation: jika ketentuan yang disertakan mengakibatkan penegakan kebijakan organisasi, evaluationValue adalah TRUE. Jika kondisi menyebabkan kebijakan organisasi tidak diterapkan, evaluationValue adalah FALSE. Jika kondisi tidak didukung oleh satu atau beberapa resource tempat kebijakan organisasi diberlakukan, kondisi itu sendiri akan ditampilkan.

  • assetType: jenis resource aset.

  • effectiveTags: semua tag yang secara langsung dilampirkan ke atau diwarisi oleh resource tempat kebijakan organisasi dilampirkan dan induk resource dalam hierarki.

  • folders: ID resource folder apa pun yang berisi resource tempat kebijakan organisasi dilampirkan.

  • fullResourceName: nama resource lengkap resource.

  • organization: nama resource relatif organisasi yang berisi resource.

  • parent: nama resource lengkap induk resource.

  • project: ID project yang berisi resource.

  • policyBundle: kebijakan organisasi yang dikonfigurasi lengkap dan dilampirkan pada resource di atas, serta kebijakan organisasi yang ditentukan pada ancestornya dalam hierarki resource.

Entri hasil untuk kebijakan izinkan berisi kolom berikut:

  • consolidatedPolicy: resource tempat kebijakan organisasi dilampirkan, dan penegakan kebijakan yang efektif pada resource tersebut sehubungan dengan aturan evaluasi hierarki.

  • assetType: jenis resource resource tempat kebijakan izinkan dilampirkan.

  • attachedResource: nama lengkap resource tempat kebijakan izinkan dilampirkan.

  • folders: nama resource relatif dari setiap folder yang berisi kebijakan izinkan.

  • organization: nama resource relatif organisasi yang berisi kebijakan izinkan.

  • policy: kebijakan izin.

  • project: nama resource relatif project yang berisi kebijakan izin.

  • policyBundle: kebijakan organisasi yang dikonfigurasi lengkap dan dilampirkan pada resource di atas, serta kebijakan organisasi yang ditentukan pada ancestornya dalam hierarki resource.

Konsol

  1. Di konsol Google Cloud, buka halaman Policy Analyzer.

    Buka Penganalisis Kebijakan

  2. Di bagian Menganalisis kebijakan organisasi, cari panel berlabel Manakah aset yang memiliki batasan kebijakan organisasi yang diterapkan padanya?, lalu klik Buat kueri di panel tersebut.

  3. Di kotak Select query organization, pilih organisasi yang kebijakan organisasinya ingin dianalisis.

  4. Pilih jenis batasan yang ingin dianalisis. Untuk batasan yang telah ditentukan, pilih Built-in constraint. Untuk batasan kustom, pilih Custom constraint.

  5. Masukkan nama batasan yang ingin Anda analisis. Awalan untuk jenis batasan yang Anda analisis sudah disertakan. Misalnya, untuk batasan akses level bucket yang telah ditentukan, masukkan storage.uniformBucketLevelAccess, dan untuk batasan kustom, masukkan namanya, seperti disableGkeAccess.

  6. Klik Jalankan kueri. Halaman laporan menunjukkan parameter kueri yang Anda masukkan, dan tabel hasil yang berisi semua aset tempat batasan ini diterapkan atau diwarisi.

  7. Anda dapat menyimpan kueri ini untuk dilihat lagi nanti dengan mengklik Salin URL kueri. Untuk melihat kueri ini, buka URL yang dihasilkan.

  8. Anda dapat memvisualisasikan pewarisan batasan yang dianalisis dengan memilih minimal satu aset dari daftar, lalu mengklik View pewarisan. Anda juga dapat langsung membuka tampilan visualisasi saat membuat kueri analisis dengan mengklik Analyze, lalu Visualize. Lihat Memvisualisasikan pewarisan untuk informasi selengkapnya.

gcloud

Untuk mendapatkan analisis tentang penerapan batasan kebijakan organisasi pada aset dalam organisasi, gunakan perintah gcloud asset analyze-org-policy-governed-assets:

gcloud asset analyze-org-policy-governed-assets \
    --constraint=CONSTRAINT_NAME  \
    --scope=organizations/ORGANIZATION_ID \
    --limit=LIMIT_ASSETS \
    --filter=FILTER_QUERY

Ganti kode berikut:

  • CONSTRAINT_NAME: nama batasan kebijakan organisasi yang ingin Anda analisis. Untuk daftar batasan, lihat Batasan kebijakan organisasi.

  • ORGANIZATION_ID: ID resource organisasi Anda. Untuk informasi selengkapnya tentang cara menemukan ID organisasi Anda, lihat Membuat dan mengelola organisasi.

  • LIMIT_ASSETS: jumlah entri hasil yang ingin Anda lihat. Untuk melihat entri tidak terbatas, masukkan unlimited.

  • FILTER_QUERY: kueri filter untuk hanya melihat aset yang cocok dengan ekspresi pemfilteran Anda. Kolom yang tersedia untuk pemfilteran adalah governed_resource.folders, governed_resource.project, governed_iam_policy.folders, dan governed_iam_policy.project. Misalnya, governed_resource.project="projects/1234567890" hanya akan menampilkan aset yang terlampir ke project dengan project ID 1234567890.

Respons YAML mirip dengan berikut ini:

Contoh respons YAML

---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2
  rules:
  - enforce: false
governedResource:
  folders:
  - folders/513502730678
  - folders/666681422980
  fullResourceName: //container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1/nodePools/default-pool
  organization: organizations/474566717491
  parent: //container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1
  project: projects/892625391619
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2
  attachedResource: //cloudresourcemanager.googleapis.com/projects/opa-test-project-2
  reset: true
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918
  attachedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918
  rules:
  - enforce: false
governedResource:
  folders:
  - folders/800636178739
  - folders/408342778736
  fullResourceName: //container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1/nodePools/default-pool
  organization: organizations/474566717491
  parent: //container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1
  project: projects/761097189269
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918
  attachedResource: //cloudresourcemanager.googleapis.com/projects/project2-244918
  rules:
  - enforce: false
- appliedResource: //cloudresourcemanager.googleapis.com/folders/408342778736
  attachedResource: //cloudresourcemanager.googleapis.com/folders/408342778736
  rules:
  - condition:
      description: cond-desc1
      expression: resource.matchTag("474566717491/env", "prod")
      title: cond-title1
    enforce: false
  - enforce: true
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
---
consolidatedPolicy:
  appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true
governedResource:
  fullResourceName: //container.googleapis.com/projects/probe-per-rt-project/zones/us-west1-a/clusters/test-cluster-for-backup/nodePools/default-pool
  organization: organizations/474566717491
  parent: //container.googleapis.com/projects/probe-per-rt-project/zones/us-west1-a/clusters/test-cluster-for-backup
  project: projects/896190383908
policyBundle:
- appliedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  attachedResource: //cloudresourcemanager.googleapis.com/organizations/474566717491
  rules:
  - enforce: true

REST

Untuk mendapatkan analisis tentang penerapan batasan kebijakan organisasi pada aset dalam organisasi, gunakan metode analyzeOrgPolicyGovernedAssets Cloud Asset API.

Metode HTTP dan URL:

GET https://cloudasset.googleapis.com/v1/organizations/ORGANIZATION_ID:analyzeOrgPolicyGovernedAssets

Meminta isi JSON:

JSON_REQUEST="{
  'constraint': 'CONSTRAINT_NAME',
  'filter': 'FILTER_QUERY',
  'page_size': PAGE_SIZE,
  'page_token': PAGE_TOKEN
}"

Ganti kode berikut:

  • ORGANIZATION_ID: ID resource organisasi Anda. Untuk informasi selengkapnya tentang cara menemukan ID organisasi Anda, lihat Membuat dan mengelola organisasi.

  • CONSTRAINT_NAME: nama batasan kebijakan organisasi yang ingin Anda analisis. Untuk daftar batasan, lihat Batasan kebijakan organisasi.

  • FILTER_QUERY: kueri filter untuk hanya melihat aset yang cocok dengan ekspresi pemfilteran Anda. Kolom yang tersedia untuk pemfilteran adalah governed_resource.folders, governed_resource.project, governed_iam_policy.folders, dan governed_iam_policy.project. Misalnya, governed_resource.project="projects/1234567890" hanya akan menampilkan aset yang terlampir ke project dengan project ID 1234567890.

  • PAGE_SIZE: jumlah halaman entri hasil yang ingin Anda lihat. Untuk melihat entri tidak terbatas, masukkan unlimited. Permintaan yang dibuat dengan kumpulan flag ini akan menampilkan nilai nextPageToken jika jumlah total entri hasil lebih besar dari PAGE_SIZE.

  • PAGE_TOKEN: hanya untuk ditetapkan pada permintaan setelah permintaan pertama yang menyertakan flag page_size. Anda dapat menggunakan nilai nextPageToken yang diterima dari respons sebelumnya untuk menampilkan halaman hasil tertentu.

Respons JSON mirip dengan berikut ini:

Contoh respons JSON

{
  "governedAssets": [
    {
      "governedResource": {
        "fullResourceName": "//container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1/nodePools/default-pool",
        "parent": "//container.googleapis.com/projects/opa-test-project-2/zones/us-central1-c/clusters/opa-test-project-2-cluster-1",
        "project": "projects/892625391619",
        "folders": [
          "folders/513502730678",
          "folders/666681422980"
        ],
        "organization": "organizations/474566717491"
      },
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2",
        "rules": [
          {
            "enforce": false
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2",
          "reset": true,
          "appliedResource": "//cloudresourcemanager.googleapis.com/projects/opa-test-project-2"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491",
          "rules": [
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491"
        }
      ]
    },
    {
      "governedResource": {
        "fullResourceName": "//container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1/nodePools/default-pool",
        "parent": "//container.googleapis.com/projects/project2-244918/zones/us-central1-c/clusters/cluster-1",
        "project": "projects/761097189269",
        "folders": [
          "folders/800636178739",
          "folders/408342778736"
        ],
        "organization": "organizations/474566717491"
      },
      "consolidatedPolicy": {
        "attachedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918",
        "rules": [
          {
            "enforce": false
          }
        ],
        "appliedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918"
      },
      "policyBundle": [
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918",
          "rules": [
            {
              "enforce": false
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/projects/project2-244918"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/folders/408342778736",
          "rules": [
            {
              "enforce": false,
              "condition": {
                "expression": "resource.matchTag(\"474566717491/env\", \"prod\")",
                "title": "cond-title1",
                "description": "cond-desc1"
              }
            },
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/folders/408342778736"
        },
        {
          "attachedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491",
          "rules": [
            {
              "enforce": true
            }
          ],
          "appliedResource": "//cloudresourcemanager.googleapis.com/organizations/474566717491"
        }
      ]
    }
  ]
  "constraint": {
    "customConstraint": {
      "name": "organizations/474566717491/customConstraints/custom.disableGkeAutoUpgrade",
      "resourceTypes": [
        "container.googleapis.com/NodePool"
      ],
      "methodTypes": [
        "CREATE",
        "UPDATE"
      ],
      "condition": "resource.management.autoUpgrade == false",
      "actionType": "ALLOW",
      "displayName": "Disable GKE auto upgrade",
      "description": "Only allow GKE NodePool resource create or updates if AutoUpgrade is not enabled"
    }
  }
}

Memvisualisasikan pewarisan

Jika memiliki aktivasi Security Command Center tingkat organisasi, Anda dapat memvisualisasikan pewarisan kebijakan organisasi yang telah dianalisis menggunakan Konsol Google Cloud.

Untuk melihat visualisasi pewarisan, buat kueri analisis kebijakan organisasi untuk kebijakan, containers, atau aset yang dikonfigurasi. Di halaman Run query analysis, klik Analyze, lalu pilih Visualize.

Anda juga dapat membuka URL kueri tersimpan, memilih resource yang ingin diperjelas, lalu mengklik View pewarisan.

Halaman Pewarisan resource menampilkan visualisasi hierarki resource untuk resource yang dipilih dalam kueri analisis Anda:

Visualisasi pewarisan kebijakan organisasi dalam hierarki resource. Visualisasi kebijakan boolean yang tidak diterapkan.

  1. Menunjukkan apakah resource merupakan organisasi, folder, atau project.

  2. Titik biru menunjukkan resource dipilih dalam kueri.

  3. Menunjukkan bahwa resource menggantikan kebijakan resource induknya.

  4. Menunjukkan bahwa resource mereset kebijakan organisasi ke default yang dikelola Google untuk kebijakan tersebut. Resource yang mereset kebijakan ke default memiliki garis putus-putus yang menghubungkannya ke induknya.

  5. Menunjukkan kebijakan penggabungan resource dengan induknya.

  6. Menunjukkan bahwa kebijakan organisasi di resource ini menerapkan batasan boolean yang diterapkan, atau batasan daftar dengan nilai yang diizinkan.

  7. Menunjukkan bahwa kebijakan organisasi pada resource ini merupakan batasan daftar dengan nilai yang ditolak.

  8. Menunjukkan bahwa kebijakan organisasi pada resource ini adalah batasan boolean yang tidak diterapkan.

Langkah selanjutnya