Mengontrol akses IAM berdasarkan sensitivitas data

Halaman ini menjelaskan cara memberikan atau menolak akses Identity and Access Management (IAM) ke resource secara otomatis berdasarkan sensitivitas data dalam resource tersebut.

Anda dapat mengonfigurasi layanan penemuan Sensitive Data Protection agar otomatis melampirkan tag ke resource berdasarkan tingkat sensitivitas yang dihitung dari resource tersebut. Kemudian, Anda dapat menggunakan kondisi IAM untuk memberikan atau menolak akses ke resource, berdasarkan ada atau tidaknya kunci tag atau nilai tag tingkat sensitivitas.

Misalkan Anda ingin tim data organisasi Anda dapat menyalin dan membagikan data BigQuery secara bebas dalam operasi sehari-hari mereka. Namun, Anda tidak tahu apakah data tersebut berisi informasi identitas pribadi (PII) pelanggan Anda. Anda dapat menjalankan penemuan untuk mengklasifikasikan tingkat sensitivitas data BigQuery Anda. Kemudian, berikan akses secara bersyarat kepada tim data, sehingga mereka hanya dapat mengakses tabel BigQuery yang hanya memiliki data dengan sensitivitas rendah.

Untuk mengetahui informasi selengkapnya tentang cara Sensitive Data Protection menghitung sensitivitas data, lihat Tingkat risiko dan sensitivitas data.

Untuk mengetahui informasi selengkapnya tentang penggunaan tag untuk mengontrol akses ke resource, lihat Tag dan akses bersyarat dalam dokumentasi IAM. Untuk mengetahui informasi umum tentang tag, lihat Ringkasan tag dalam dokumentasi Resource Manager.

Tag tingkat sensitivitas

Dokumen ini menggunakan istilah tag tingkat sensitivitas untuk merujuk ke tag yang Anda lampirkan secara otomatis ke resource untuk menunjukkan tingkat sensitivitas data yang dihitung dalam resource tersebut.

Manfaat

Dengan fitur ini, Anda dapat melakukan hal berikut:

  • Mengotomatiskan kontrol akses di berbagai resource yang didukung berdasarkan atribut dan klasifikasi data dalam resource tersebut. Otomatisasi membantu Anda mengikuti pertumbuhan dan perubahan data di organisasi, folder, dan project Anda.
  • Membatasi akses ke resource yang didukung hingga resource tersebut diprofilkan dan diklasifikasikan oleh Sensitive Data Protection. Praktik ini sesuai dengan prinsip aman secara default.
  • Konfigurasi penemuan untuk memperbarui nilai tag tingkat sensitivitas setiap kali data Anda diprofilkan. Akibatnya, akses prinsipal ke resource berubah secara otomatis saat tingkat sensitivitas data yang dihitung untuk resource tersebut berubah.
  • Konfigurasi penemuan untuk menurunkan tingkat risiko data yang dihitung pada resource jika penemuan mendeteksi bahwa tag tingkat sensitivitas ada di resource tersebut. Opsi ini membantu Anda mengukur peningkatan postur keamanan dan privasi data Anda.

Resource yang didukung

Dengan fitur ini, Sensitive Data Protection secara otomatis memberi tag pada data di tingkat berikut:

  • Tabel BigQuery
  • Instance Cloud SQL
  • Bucket Cloud Storage

Cara kerjanya

Berikut adalah alur kerja tingkat tinggi untuk mengontrol akses ke resource berdasarkan sensitivitas data. Tugas ini tidak harus dilakukan oleh orang yang sama.

  1. Membuat tag tingkat sensitivitas
  2. Memberikan akses bersyarat ke resource berdasarkan nilai tag tingkat sensitivitas
  3. Aktifkan pemberian tag otomatis dalam konfigurasi penemuan
  4. Memberi agen layanan izin untuk melampirkan tag tingkat sensitivitas ke resource

Izin yang diperlukan

Izin yang Anda perlukan bergantung pada tindakan yang harus Anda lakukan.

Untuk mendapatkan izin ini, minta administrator Anda untuk memberikan peran yang disarankan pada level hierarki resource yang sesuai.

Izin untuk mengelola tag

Lihat Mengelola tag dalam dokumentasi Resource Manager.

Izin untuk memberikan akses bersyarat ke resource

Lihat Peran yang diperlukan di dokumentasi IAM.

Izin untuk mengonfigurasi penemuan

Lihat Peran yang diperlukan untuk mengonfigurasi dan melihat profil data.

Membuat tag tingkat sensitivitas

Dalam tugas ini, Anda akan membuat kunci tag dengan nilai tag yang dipetakan ke tingkat sensitivitas data yang digunakan Perlindungan Data Sensitif untuk mengklasifikasikan data Anda. Misalnya, Anda dapat menggunakan kunci tag dan nilai tag berikut.

  1. Tetapkan kunci tag ke sensitivity-level.
  2. Tetapkan nilai tag berikut:

    low
    Nilai tag yang akan dilampirkan ke data sensitivitas rendah
    moderate
    Nilai tag untuk dilampirkan ke data sensitivitas sedang
    high
    Nilai tag yang akan dilampirkan ke data sensitivitas tinggi

    Anda juga dapat membuat nilai tag untuk resource yang memiliki tingkat sensitivitas tidak diketahui. Atau, Anda dapat menggunakan kembali nilai tag low, medium, atau high untuk resource tersebut.

  3. Perhatikan hal berikut. Anda akan memerlukannya di tugas berikutnya:

    • ID kunci tag—misalnya, tagKeys/281478077849901
    • Nilai kunci tag—misalnya, tagValues/281479490918432
    • Jalur nilai tag—misalnya, example-project/tag-key/tag-value1

Agar lebih sederhana, contoh ini menetapkan pemetaan one-to-one antara nilai tag dan tingkat sensitivitas. Dalam praktiknya, Anda dapat menyesuaikan nilai tag agar sesuai dengan kebutuhan bisnis Anda. Misalnya, Anda dapat menggunakan nilai seperti confidential, PII, atau SPII (PII sensitif).

Penemuan data sensitif dapat dikonfigurasi di tingkat organisasi, folder, dan project. Jika Anda ingin menggunakan tag tingkat sensitivitas ini untuk penemuan tingkat organisasi atau tingkat folder, sebaiknya buat tag ini di tingkat organisasi.

Untuk mengetahui informasi tentang cara membuat tag, lihat Membuat dan mengelola tag di dokumentasi Resource Manager.

Memberikan akses bersyarat ke resource berdasarkan nilai tag tingkat sensitivitas

Dalam tugas ini, Anda memberikan peran kepada akun utama hanya jika tag tingkat sensitivitas yang dilampirkan ke resource memiliki nilai tertentu. Misalnya, Anda dapat memberikan akses utama hanya ke data dengan nilai tag moderate dan low.

Bagian ini memberikan contoh kondisi yang diformat untuk digunakan dengan editor kondisi. Editor kondisi menyediakan antarmuka berbasis teks untuk memasukkan ekspresi secara manual menggunakan sintaksis CEL. Untuk mengetahui informasi tentang cara melampirkan kondisi IAM ke binding peran, lihat Mengelola binding peran bersyarat dalam dokumentasi IAM.

Contoh ini mengikuti model pemberian tag yang ditentukan dalam Membuat tag tingkat sensitivitas di halaman ini.

Memberi akun utama akses hanya ke data dengan sensitivitas rendah

Dalam contoh ini, Anda memberikan akses ke resource jika resource hanya berisi data dengan sensitivitas rendah. Anda juga dapat menggunakan contoh ini untuk membatasi semua akses ke resource hingga penemuan data sensitif telah dijalankan di resource tersebut.

resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY",
"tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY")

Ganti kode berikut:

  • SENSITIVITY_LEVEL_TAG_KEY: ID numerik kunci tag tingkat sensitivitas yang Anda buat
  • TAG_VALUE_FOR_LOW_SENSITIVITY: ID numerik nilai tag yang Anda buat untuk data sensitivitas rendah

Memberi akses pokok hanya ke data dengan sensitivitas sedang dan rendah

Dalam contoh ini, Anda memberikan akses ke resource jika resource hanya berisi data dengan sensitivitas sedang atau rendah. Perhatikan bahwa ada operator OR di antara kedua kondisi tersebut.

resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_LOW_SENSITIVITY") ||
resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY")

Ganti kode berikut:

  • SENSITIVITY_LEVEL_TAG_KEY: ID numerik kunci tag tingkat sensitivitas yang Anda buat
  • TAG_VALUE_FOR_LOW_SENSITIVITY: ID numerik nilai tag yang Anda buat untuk data sensitivitas rendah
  • TAG_VALUE_FOR_MODERATE_SENSITIVITY: ID numerik nilai tag yang Anda buat untuk data sensitivitas sedang

Memberikan akses utama hanya jika tag tingkat sensitivitas ada

Hal ini berguna, misalnya, jika Anda ingin menentukan kebijakan organisasi yang mewajibkan semua akses IAM bersifat kondisional berdasarkan keberadaan tag tingkat sensitivitas. Anda juga dapat menggunakan contoh ini untuk membatasi semua akses ke resource hingga penemuan data sensitif dijalankan di resource tersebut.

resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")

Ganti SENSITIVITY_LEVEL_TAG_KEY dengan ID numerik kunci tag tingkat sensitivitas yang Anda buat.

Contoh kebijakan penolakan

Untuk mengetahui informasi tentang cara membuat kebijakan penolakan untuk digunakan dengan tag resource, lihat Struktur kebijakan penolakan. Untuk mengetahui daftar izin yang didukung, lihat Izin yang didukung oleh kebijakan penolakan.

Menolak akses jika tidak ada tag tingkat sensitivitas

Kutipan kebijakan penolakan berikut menolak izin bigquery.googleapis.com/tables.get jika resource tidak memiliki tag tingkat sensitivitas.

  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principalSet://goog/group/data-team@example.com"
        ],
        "deniedPermissions": [
          "bigquery.googleapis.com/tables.get"
        ],
        "denialCondition": {
          "title": "Resource has no key",
          "expression": "!resource.hasTagKeyId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY")"
        }
      }
    }
  ]

Ganti SENSITIVITY_LEVEL_TAG_KEY dengan ID numerik kunci tag tingkat sensitivitas yang Anda buat.

Menolak akses jika ada data dengan sensitivitas sedang atau tinggi

Kutipan kebijakan penolakan berikut menolak izin bigquery.googleapis.com/tables.get jika resource memiliki data dengan sensitivitas sedang atau tinggi.

  "rules": [
    {
      "denyRule": {
        "deniedPrincipals": [
          "principalSet://goog/group/data-team@example.com"
        ],
        "deniedPermissions": [
          "bigquery.googleapis.com/tables.get"
        ],
        "denialCondition": {
          "title": "Resource has moderate or high data sensitivity",
          "expression": "resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_MODERATE_SENSITIVITY") || resource.matchTagId("tagKeys/SENSITIVITY_LEVEL_TAG_KEY", "tagValues/TAG_VALUE_FOR_HIGH_SENSITIVITY")"
        }
      }
    }
  ]

Ganti kode berikut:

  • SENSITIVITY_LEVEL_TAG_KEY: ID numerik kunci tag tingkat sensitivitas yang Anda buat
  • TAG_VALUE_FOR_MODERATE_SENSITIVITY: ID numerik nilai tag yang Anda buat untuk data sensitivitas sedang
  • TAG_VALUE_FOR_HIGH_SENSITIVITY: ID numerik nilai tag yang Anda buat untuk data sensitivitas tinggi

Aktifkan pemberian tag otomatis dalam konfigurasi penemuan

Dalam tugas ini, Anda akan mengaktifkan tindakan Beri tag resource. Tindakan ini menginstruksikan Perlindungan Data Sensitif untuk otomatis memberi tag pada data Anda sesuai dengan tingkat sensitivitas yang dihitung. Anda melakukan tugas ini saat membuat atau mengedit konfigurasi pemindaian penemuan.

Untuk memberi tag otomatis pada resource sesuai dengan tingkat sensitivitas yang dihitung, ikuti langkah-langkah berikut:

  1. Aktifkan opsi Beri tag pada resource.
  2. Untuk setiap tingkat sensitivitas (tinggi, sedang, rendah, dan tidak diketahui), masukkan jalur nilai tag yang Anda buat untuk tingkat sensitivitas tertentu.

    Jika Anda melewati tingkat sensitivitas, tidak ada tag yang dilampirkan untuk tingkat tersebut.

  3. Untuk menurunkan tingkat risiko data resource secara otomatis saat tag tingkat sensitivitas ada, pilih Saat tag diterapkan ke resource, turunkan risiko data profilnya menjadi RENDAH. Opsi ini membantu Anda mengukur peningkatan postur keamanan dan privasi data Anda.

  4. Pilih salah satu atau kedua opsi berikut:

    • Beri tag pada resource saat diprofilkan untuk pertama kalinya.
    • Beri tag pada fasilitas saat profilnya diperbarui. Pilih opsi ini jika Anda ingin Perlindungan Data Sensitif mengganti nilai tag tingkat sensitivitas pada proses penemuan berikutnya. Akibatnya, akses principal ke resource berubah secara otomatis saat tingkat sensitivitas data yang dihitung untuk resource tersebut meningkat atau menurun.

      Jangan pilih opsi ini jika Anda berencana memperbarui nilai tag tingkat sensitivitas yang dilampirkan layanan penemuan ke aset Anda secara manual. Jika Anda memilih opsi ini, Perlindungan Data Sensitif dapat menggantikan pembaruan manual Anda.

Penemuan data sensitif dapat dikonfigurasi di tingkat organisasi, folder, dan project. Jika Anda ingin menggunakan tag tingkat sensitivitas ini untuk penemuan tingkat organisasi dan jika Anda tidak ingin operasi penemuan tingkat project menggantikan nilai tag yang ditetapkan oleh penemuan tingkat organisasi, pastikan hanya agen layanan konfigurasi penemuan tingkat organisasi yang dapat melampirkan tag ini ke resource. Untuk mengetahui informasi tentang cara memberikan peran di tingkat tag, lihat Mengelola akses ke tag dalam dokumentasi Resource Manager.

Mengatasi error

Bagian ini menjelaskan error yang mungkin Anda alami saat menggunakan fitur ini dan cara menyelesaikan error tersebut.

Melebihi jumlah tag maksimum

Setiap resource dapat melampirkan maksimum 50 pasangan nilai kunci. Mencoba memberi tag pada resource yang sudah memiliki jumlah tag maksimum akan menyebabkan pembuatan profil gagal. Anda akan mendapatkan error berikut:

The resource RESOURCE_NAME cannot be tagged because there are
too many existing tags bound to the resource. You can either disable automatic
tagging or delete at least one tag binding from the resource.

Untuk mengatasi masalah ini, lepaskan tag dari resource. Untuk informasi selengkapnya, lihat referensi berikut:

Atau, nonaktifkan tindakan Beri tag pada resource dalam konfigurasi pemindaian penemuan Anda.

Nilai tag dihapus atau diganti namanya dan penemuan mencoba melampirkannya ke resource

Jika nilai tag untuk tag tingkat sensitivitas dihapus atau diganti namanya dan Sensitive Data Protection mencoba melampirkan nilai tag tersebut ke resource yang diprofilkan, Anda akan mendapatkan error berikut:

Tag value TAG_VALUE not found, it has possibly been either deleted or renamed.

Untuk menyelesaikan masalah ini, lakukan salah satu tindakan berikut:

  • Jika tag dihapus, buat ulang nilai tag yang dihapus. Pastikan nilai tag yang dibuat ulang cocok dengan nilai tag yang dirujuk dalam konfigurasi pemindaian penemuan Anda. Untuk mengetahui informasi selengkapnya, lihat Membuat tag tingkat sensitivitas di halaman ini.
  • Jika nilai tag diganti namanya, perbarui konfigurasi pemindaian penemuan untuk menggunakan nama baru nilai tag.

Agen layanan tidak memiliki izin

Jika agen layanan tidak memiliki izin yang diperlukan untuk melampirkan tag tingkat sensitivitas ke resource yang diprofilkan, Anda akan mendapatkan error berikut:

The DLP service account SERVICE_AGENT_NAME is missing
permissions needed for attaching tags to resources. Check that the role
'resourcemanager.tagUser' is granted to the DLP service account.

Untuk menyelesaikan masalah ini, ikuti langkah berikut:

  1. Dapatkan ID agen layanan yang terkait dengan konfigurasi pemindaian penemuan Anda:

    1. Buka daftar konfigurasi pemindaian penemuan.

      Buka konfigurasi pemindaian penemuan

    2. Di toolbar, pilih organisasi Anda.
    3. Pilih konfigurasi pemindaian Anda.
    4. Di halaman Detail konfigurasi pemindaian, salin nilai kolom Agen layanan. ID agen layanan dalam format alamat email.
  2. Berikan peran Pengguna Tag (roles/resourcemanager.tagUser) kepada agen layanan di tag tingkat sensitivitas.

    Atau, Anda dapat memberikan peran kustom pada tag tingkat sensitivitas. Peran kustom harus memiliki izin resourcemanager.tagValues.get dan izin khusus resource untuk mengelola binding tag. Anda memerlukan izin createTagBinding, deleteTagBinding, dan listEffectiveTags khusus resource. Misalnya, untuk tabel BigQuery, Anda memerlukan hal berikut:

    • resourcemanager.tagValues.get
    • bigquery.tables.createTagBinding
    • bigquery.tables.deleteTagBinding
    • bigquery.tables.listEffectiveTags

    Untuk mengetahui informasi tentang cara memberikan peran di tingkat tag, lihat Mengelola akses ke tag dalam dokumentasi Resource Manager.

Langkah berikutnya

  • Buat atau edit konfigurasi pemindaian.