Mengelola kebijakan konsumen

Pengaktifan layanan hierarkis memungkinkan Anda mengelola pengaktifan layanan yang diwarisi melalui hierarki resource Google Cloud . Untuk mengetahui informasi selengkapnya, lihat ringkasan.

ConsumerPolicy adalah resource Service Usage API yang ditemukan di setiap level hierarki resourceGoogle Cloud . Resource ini, yang selalu diberi nama default, berisi enableRules yang menentukan layanan mana yang diaktifkan. Daripada mengaktifkan atau menonaktifkan layanan tertentu, Anda dapat mengubah resource ConsumerPolicy. Jika nama layanan ada dalam daftarnya, layanan diaktifkan di tingkat hierarki tersebut.

Dokumen ini menunjukkan cara menggunakan Google Cloud CLI untuk mengelola kebijakan konsumen untuk project, folder, dan organisasi.

Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.

  3. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  4. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  5. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  6. Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.

  7. Verify that billing is enabled for your Google Cloud project.

  8. Enable the Service Usage API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable serviceusage.googleapis.com
  9. Install the Google Cloud CLI.

  10. Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.

  11. Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:

    gcloud init
  12. Create or select a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.
    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  13. Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.

  14. Verify that billing is enabled for your Google Cloud project.

  15. Enable the Service Usage API:

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    gcloud services enable serviceusage.googleapis.com
  16. Jika Anda tidak menunjukkan resource Google Cloud yang ingin dikelola, perintah dalam dokumen ini secara default akan menggunakan project saat ini. Misalnya, gcloud beta services policies get --policy-name=default menampilkan kebijakan konsumen untuk project saat ini.

    Anda dapat mengambil project ID saat ini:

    gcloud config list --format='text(core.project)'
  17. Peran yang diperlukan

    Guna mendapatkan izin yang diperlukan untuk mengelola kebijakan konsumen, minta administrator untuk memberi Anda peran IAM Service Usage Admin (roles/serviceusage.serviceUsageAdmin) di resource target Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Peran bawaan ini berisi izin yang diperlukan untuk mengelola kebijakan konsumen. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:

    Izin yang diperlukan

    Izin berikut diperlukan untuk mengelola kebijakan konsumen:

    • Mendapatkan kebijakan konsumen: serviceusage.consumerpolicy.get
    • Memperbarui kebijakan konsumen:
      • serviceusage.consumerpolicy.analyze
      • serviceusage.consumerpolicy.update
    • Mendapatkan kebijakan yang berlaku: serviceusage.effectivepolicy.get
    • Periksa apakah layanan diaktifkan: serviceusage.values.test

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

    Mendapatkan kebijakan konsumen

    Anda dapat mengambil ConsumerPolicy untuk project, folder, atau organisasi dengan menggunakan perintah gcloud beta services policies get.

    Perintah ini menampilkan enableRules yang ditetapkan di tingkat resource tersebut, dan bukan aturan yang diwariskan. Untuk tampilan yang lebih lengkap yang mencakup aturan yang diwariskan, Anda dapat mengambil kebijakan yang efektif. Hanya nama kebijakan default yang didukung.

    Project

    gcloud beta services policies get --policy-name=default \
        --project=PROJECT_ID \
        --output-file=OUTPUT_FILE
    

    Ganti kode berikut:

    • PROJECT_ID: Google Cloud Project ID Anda. Atau, hapus tanda untuk menggunakan project saat ini sebagai default.
    • OUTPUT_FILE: (opsional) jalur ke file output tempat konten kebijakan konsumen dapat disimpan. Format file yang didukung adalah JSON dan YAML.

    Folder

    gcloud beta services policies get --policy-name=default \
        --folder=FOLDER_ID \
        --output-file=OUTPUT_FILE
    

    Ganti kode berikut:

    • FOLDER_ID: Google Cloud ID folder Anda.
    • OUTPUT_FILE: (opsional) jalur ke file output tempat konten kebijakan konsumen dapat disimpan. Format file yang didukung adalah JSON dan YAML.

    Organisasi

    gcloud beta services policies get --policy-name=default \
        --organization=ORGANIZATION_ID \
        --output-file=OUTPUT_FILE
    

    Ganti kode berikut:

    • ORGANIZATION_ID: Google Cloud ID resource organisasi Anda.
    • OUTPUT_FILE: (opsional) jalur ke file output tempat konten kebijakan konsumen dapat disimpan. Format file yang didukung adalah JSON dan YAML.

    Memperbarui kebijakan konsumen

    Anda dapat mengupdate ConsumerPolicy menggunakan perintah gcloud beta services policies update. Dengan begitu, Anda dapat mengganti kebijakan saat ini dan menggunakan file YAML untuk memperbarui banyak layanan yang diaktifkan sekaligus.

    Perintah ini tidak otomatis mengaktifkan dependensi layanan. Anda harus mencantumkan semua dependensi layanan secara eksplisit dalam file input. Anda dapat menggunakan flag --validate-only untuk melihat pratinjau perubahan sebelum menerapkannya.

    gcloud beta services policies update --consumer-policy-file=PATH_TO_CONSUMER_POLICY
    

    Ganti PATH_TO_CONSUMER_POLICY dengan jalur ke file YAML yang berisi kebijakan konsumen—misalnya:

    gcloud beta services policies update --consumer-policy-file=/path/to/the/file.yaml

    Flag yang didukung:

    • --bypass-api-usage-check untuk melewati pemeriksaan penggunaan. Jika tidak, sistem akan menampilkan error jika ada layanan yang ingin Anda nonaktifkan telah digunakan dalam 30 hari terakhir atau diaktifkan dalam 3 hari terakhir.

    • --bypass-dependency-check untuk melewati pemeriksaan dependensi. Saat menambahkan layanan, semua dependensi layanan harus ada dalam kebijakan. Saat menghapus layanan, tidak ada layanan lain dalam kebijakan yang dapat bergantung padanya. Jika tidak, update tidak akan berhasil dan error akan ditampilkan.

    • --validate-only untuk memvalidasi update tanpa benar-benar melakukan operasi.

    Perhatikan hal berikut:

    • Untuk mendapatkan template YAML untuk file kebijakan, ambil kebijakan konsumen terlebih dahulu, lalu gunakan tanda --output-file untuk menyimpan kebijakan ke file. Kemudian, ubah file ini dan gunakan sebagai input untuk perintah update. Contoh template:

      name: projects/PROJECT_ID/consumerPolicies/default
      enableRules:
        services:
          - services/SERVICE
          - ...
          - ...
      

      Ganti kode berikut:

      • PROJECT_ID: Google Cloud Project ID Anda. Nama resource lain yang didukung mengikuti format serupa—misalnya: folders/FOLDER_ID/consumerPolicies/default.

      • SERVICE: nama layanan—misalnya: bigquery.googleapis.com.

    Mendapatkan kebijakan yang berlaku

    Anda dapat mengambil kebijakan efektif untuk resource menggunakan perintah gcloud beta services policies get-effective.

    Kebijakan efektif menggabungkan ConsumerPolicy resource dengan kebijakan semua ancestor-nya. Dengan demikian, Anda akan mendapatkan tampilan lengkap semua layanan yang diaktifkan, termasuk semua layanan yang diaktifkan langsung di resource, dan layanan yang diwarisi dari induknya.

    Project

    gcloud beta services policies get-effective --project=PROJECT_ID \
        --view=VIEW
    

    Ganti kode berikut:

    • PROJECT_ID: Google Cloud Project ID Anda. Atau, hapus tanda untuk menggunakan project saat ini sebagai default.
    • VIEW: BASIC untuk mengambil kumpulan metadata terbatas atau FULL untuk mengambil kumpulan metadata lengkap, termasuk tempat setiap layanan diaktifkan dalam hierarki. Default-nya adalah BASIC.

    Folder

    gcloud beta services policies get-effective --folder=FOLDER_ID \
        --view=VIEW
    

    Ganti kode berikut:

    • FOLDER_ID: Google Cloud ID folder Anda.
    • VIEW: BASIC untuk mengambil kumpulan metadata terbatas atau FULL untuk mengambil kumpulan metadata lengkap, termasuk tempat setiap layanan diaktifkan dalam hierarki. Default-nya adalah BASIC.

    Organisasi

    gcloud beta services policies get-effective --organization=ORGANIZATION_ID \
        --view=VIEW
    

    Ganti kode berikut:

    • ORGANIZATION_ID: Google Cloud ID resource organisasi Anda.
    • VIEW: BASIC untuk mengambil kumpulan metadata terbatas atau FULL untuk mengambil kumpulan metadata lengkap, termasuk tempat setiap layanan diaktifkan dalam hierarki. Default-nya adalah BASIC.

    Memeriksa apakah layanan diaktifkan

    Anda dapat memeriksa apakah layanan diaktifkan di resource menggunakan perintah gcloud beta services policies test-enabled.

    Saat memeriksa status layanan, perintah ini mempertimbangkan kebijakan efektif dan hierarki resource lengkap. Google Cloud

    Project

    gcloud beta services policies test-enabled SERVICE \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • SERVICE: nama layanan yang ingin Anda periksa.
    • PROJECT_ID: Google Cloud Project ID Anda. Atau, hapus tanda untuk menggunakan project saat ini sebagai default.

    Folder

    gcloud beta services policies test-enabled SERVICE \
        --folder=FOLDER_ID
    

    Ganti kode berikut:

    Organisasi

    gcloud beta services policies test-enabled SERVICE \
        --organization=ORGANIZATION_ID
    

    Ganti kode berikut:

    Contoh

    Mengambil kebijakan konsumen

    • Mengambil kebijakan konsumen untuk project saat ini:
      gcloud beta services policies get

      Output:

      name: projects/PROJECT_ID/consumerPolicies/default
      enableRules:
       services:
        - services/apikeys.googleapis.com
        - services/compute.googleapis.com
        - services/oslogin.googleapis.com
        - services/serviceusage.googleapis.com
      updateTime: 2025-09-11T23:05:22.758394Z
      createTime: 2025-01-31T20:17:37.272343Z
      etag: W/"W9nsVJK0V1m7ee7tM7pFDg=="

    Memperbarui kebijakan konsumen

    • Berhasil memperbarui kebijakan konsumen:
      gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml

      Output:

      Operation [operations/ucpat.p39-581601899707-86fe7e37-c7f9-4624-90c4-d54754d57eed] complete. Result: {
          "@type":"type.googleapis.com/google.api.serviceusage.v2beta.ConsumerPolicy",
          "createTime":"1970-01-01T00:00:00Z",
          "enableRules":[
              {
                  "services":[
                      "services/apikeys.googleapis.com"
                  ]
              }
          ],
          "name":"projects/PROJECT_ID/consumerPolicies/default",
          "updateTime":"1970-01-01T00:00:00Z"
      }
    • Gagal memperbarui kebijakan konsumen:
      gcloud beta services policies update --consumer-policy-file=/tmp/test.json

      Pesan error:

      ERROR: (gcloud.beta.services.policies.update) Invalid consumer_policy_file format. Please provide path to a yaml file.
    • Mencoba memperbarui kebijakan konsumen saat layanan telah digunakan atau diaktifkan baru-baru ini:
      gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml

      Output:

      The operation "operations/ucpat.p39-581601899707-4884bdb0-d899-49ac-9c83-38457950ef33" resulted in a failure "The services apikeys.googleapis.com have usage in the last 30 days or were enabled in the past 3 days. Please specify force if you want to proceed with the destructive policy change. Help Token: AVSZLmtCfGwMm4oHmOyExdDEFRQ0pFiBrl879nbZlY2JkfVzeU63u66ApXYr6MIEAoig..."
    • Memperbarui kebijakan konsumen saat layanan telah digunakan atau diaktifkan baru-baru ini dengan melewati pemeriksaan penggunaan:
      gcloud beta services policies update --consumer-policy-file=/tmp/test.yaml --bypass-api-usage-check

      Output:

      Operation [operations/ucpat.p39-581601899707-8ffda670-ed04-4776-8d43-d2f8e1817e00] complete. Result: {
          "@type":"type.googleapis.com/google.api.serviceusage.v2beta.ConsumerPolicy",
          "createTime":"1970-01-01T00:00:00Z",
          "enableRules":[
              {
                  "services":[
                      "services/serviceusage.googleapis.com"
                  ]
              }
          ],
          "name":"projects/PROJECT_ID/consumerPolicies/default",
          "updateTime":"1970-01-01T00:00:00Z"
      }

    Mengambil kebijakan yang berlaku

    • Mengambil tampilan BASIC kebijakan yang berlaku untuk project saat ini:
      gcloud beta services policies get-effective

      Output:

      EnabledRules:
       Services:
        -   services/apikeys.googleapis.com
        -   services/compute.googleapis.com
        -   services/computescanning.googleapis.com
        -   services/containeranalysis.googleapis.com
        -   services/containerscanning.googleapis.com
        -   services/gkebackup.googleapis.com
        -   services/osconfig.googleapis.com
        -   services/oslogin.googleapis.com
        -   services/serviceusage.googleapis.com
    • Mengambil tampilan FULL kebijakan yang berlaku untuk project saat ini:
      gcloud beta services policies get-effective --view=FULL

      Output:

      EnabledRules:
       Services:
        -   services/apikeys.googleapis.com
        -   services/compute.googleapis.com
        -   services/computescanning.googleapis.com
        -   services/containeranalysis.googleapis.com
        -   services/containerscanning.googleapis.com
        -   services/gkebackup.googleapis.com
        -   services/osconfig.googleapis.com
        -   services/oslogin.googleapis.com
        -   services/serviceusage.googleapis.com
      
      Metadata of effective policy:
      EnabledService: services/apikeys.googleapis.com
      EnabledPolicies: ['projects/PROJECT_ID/consumerPolicies/default']
      
      EnabledService: services/bcidcloudenforcer-pa.googleapis.com
      EnabledPolicies: ['folders/FOLDER_ID/consumerPolicies/default']
      
      EnabledService: services/compute.googleapis.com
      EnabledPolicies: ['projects/PROJECT_ID/consumerPolicies/default']
      ...

    Memeriksa apakah layanan diaktifkan

    • Memeriksa status layanan kunci API yang diaktifkan untuk project saat ini:
      gcloud beta services policies test-enabled apikeys.googleapis.com

      Output:

      Service apikeys.googleapis.com is ENABLED for resource projects/test-project Hierarchical Service Activation.
    • Memeriksa status layanan App Hub yang dinonaktifkan untuk project saat ini:
      gcloud beta services policies test-enabled apphub.googleapis.com

      Output:

      Service apphub.googleapis.com is NOT ENABLED for resource projects/test-project Hierarchical Service Activation.

    Langkah berikutnya