Mengontrol akses IAM berdasarkan sensitivitas data

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

Anda dapat mengonfigurasi layanan penemuan Sensitive Data Protection untuk secara 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 keberadaan atau tidak adanya kunci tag tingkat sensitivitas atau nilai tag.

Misalnya, Anda ingin tim data organisasi dapat menyalin dan membagikan data BigQuery secara bebas dalam operasi harian mereka. Namun, Anda tidak mengetahui apakah data tersebut berisi informasi identitas pribadi (PII) pelanggan Anda. Anda dapat menjalankan penemuan untuk mengklasifikasikan tingkat sensitivitas data BigQuery. 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 sensitivitas dan risiko data.

Untuk mengetahui informasi selengkapnya tentang penggunaan tag untuk mengontrol akses ke resource, lihat Tag dan akses bersyarat dalam dokumentasi IAM. Untuk 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

Fitur ini memungkinkan Anda 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.
  • Batasi akses ke resource yang didukung hingga resource tersebut dibuat profilnya dan diklasifikasikan oleh Perlindungan Data Sensitif. Praktik ini sesuai dengan prinsip aman secara default.
  • Konfigurasikan penemuan untuk memperbarui nilai tag tingkat sensitivitas setiap kali membuat profil data Anda. Akibatnya, akses akun utama ke resource akan otomatis berubah saat tingkat sensitivitas data yang dihitung untuk resource tersebut berubah.
  • Konfigurasikan 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.

Resource yang didukung

Dengan fitur ini, Perlindungan Data Sensitif akan 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. Mengaktifkan pemberian tag otomatis dalam konfigurasi penemuan
  4. Berikan izin kepada agen layanan untuk melampirkan tag tingkat sensitivitas ke resource

Izin yang diperlukan

Izin yang Anda perlukan bergantung pada tindakan yang harus dilakukan.

Untuk mendapatkan izin ini, minta administrator 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 dalam 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 dengan sensitivitas rendah
    moderate
    Nilai tag yang akan dilampirkan ke data dengan sensitivitas sedang
    high
    Nilai tag yang akan dilampirkan ke data sensitivitas tinggi

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

  3. Perhatikan hal berikut. Anda memerlukannya dalam tugas berikutnya:

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

Untuk memudahkan, contoh ini menetapkan pemetaan satu-ke-satu 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 informasi tentang cara membuat tag, lihat Membuat dan mengelola tag dalam 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 akun 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 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 di Membuat tag tingkat sensitivitas di halaman ini.

Memberikan akses kepada akun utama hanya ke data dengan tingkat sensitivitas rendah

Dalam contoh ini, Anda memberikan akses ke resource jika resource tersebut hanya berisi data dengan sensitivitas rendah. Anda juga dapat menggunakan contoh ini untuk membatasi semua akses ke resource hingga penemuan data sensitif telah berjalan 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 dengan sensitivitas rendah

Memberikan akses kepada akun utama hanya ke data dengan sensitivitas sedang dan rendah

Dalam contoh ini, Anda memberikan akses ke resource jika resource tersebut 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 dengan sensitivitas rendah
  • TAG_VALUE_FOR_MODERATE_SENSITIVITY: ID numerik nilai tag yang Anda buat untuk data dengan sensitivitas sedang

Memberikan akses kepada akun utama hanya jika tag tingkat sensitivitas ada

Hal ini berguna, misalnya, jika Anda ingin menentukan kebijakan organisasi yang memerlukan 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 telah berjalan 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 informasi tentang cara membuat kebijakan tolak untuk digunakan dengan tag resource, lihat Struktur kebijakan tolak. Untuk mengetahui daftar izin yang didukung, lihat Izin yang didukung oleh kebijakan penolakan.

Menolak akses jika tidak ada tag tingkat sensitivitas

Cuplikan kebijakan tolak 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

Cuplikan 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 dengan sensitivitas sedang
  • TAG_VALUE_FOR_HIGH_SENSITIVITY: ID numerik nilai tag yang Anda buat untuk data dengan sensitivitas tinggi

Mengaktifkan pemberian tag otomatis di konfigurasi penemuan

Dalam tugas ini, Anda akan mengaktifkan tindakan Beri tag pada resource. Tindakan ini memberi petunjuk kepada 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 pada resource secara otomatis sesuai dengan tingkat sensitivitas yang dihitung, ikuti langkah-langkah berikut:

  1. Aktifkan opsi Tag resources.
  2. Untuk setiap tingkat sensitivitas (tinggi, sedang, rendah, dan tidak diketahui), masukkan jalur nilai tag yang Anda buat untuk tingkat sensitivitas yang diberikan.

    Jika Anda melewati tingkat sensitivitas, tidak ada tag yang terlampir 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 ke RENDAH. Opsi ini membantu Anda mengukur peningkatan postur keamanan dan privasi data.

  4. Pilih salah satu atau kedua opsi berikut:

    • Beri tag pada resource saat dibuat profilnya untuk pertama kalinya.
    • Memberi tag pada fasilitas saat profilnya diperbarui. Pilih opsi ini jika Anda ingin Perlindungan Data Sensitif menimpa nilai tag tingkat sensitivitas pada penemuan berikutnya. Akibatnya, akses akun utama ke resource akan 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 resource Anda secara manual. Jika Anda memilih opsi ini, Perlindungan Data Sensitif dapat menimpa 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 level project menimpa nilai tag yang ditetapkan oleh penemuan level organisasi, pastikan hanya agen layanan dari konfigurasi penemuan level 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 mengatasi 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 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 Tag resources dalam konfigurasi pemindaian penemuan Anda.

Nilai tag dihapus atau diganti namanya dan Discovery mencoba melampirkan nilai tersebut ke resource

Jika nilai tag untuk tag tingkat sensitivitas dihapus atau diganti namanya dan Perlindungan Data Sensitif 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 direferensikan 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. Pilih konfigurasi pemindaian Anda.
    3. Di halaman detail yang terbuka, salin ID agen layanan. ID ini menggunakan format alamat email.
  2. Berikan peran Tag User (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 selanjutnya

  • Buat atau edit konfigurasi pemindaian.