Menggunakan keamanan tingkat baris (RLS) dengan aturan berbasis tag untuk membatasi akses ke kumpulan data saat menyematkan dasbor untuk pengguna anonim - Amazon QuickSight

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menggunakan keamanan tingkat baris (RLS) dengan aturan berbasis tag untuk membatasi akses ke kumpulan data saat menyematkan dasbor untuk pengguna anonim

 Berlaku untuk: Enterprise Edition 
   Pemirsa yang dituju: QuickSight Administrator Amazon dan pengembang Amazon QuickSight  

Saat menyematkan QuickSight dasbor Amazon di aplikasi untuk pengguna yang tidak disediakan (terdaftar) QuickSight, Anda dapat menggunakan keamanan tingkat baris (RLS) dengan tag. Dalam hal ini, Anda menggunakan tag untuk menentukan data mana yang dapat dilihat pengguna Anda di dasbor tergantung pada siapa mereka.

Misalnya, katakanlah Anda adalah perusahaan logistik yang memiliki aplikasi yang menghadap pelanggan untuk berbagai pengecer. Ribuan pengguna dari pengecer ini mengakses aplikasi Anda untuk melihat metrik yang terkait dengan bagaimana pesanan mereka dikirim dari gudang Anda.

Anda tidak ingin mengelola ribuan pengguna QuickSight, jadi Anda menggunakan penyematan anonim untuk menyematkan dasbor yang dipilih di aplikasi yang dapat dilihat oleh pengguna yang diautentikasi dan resmi. Namun, Anda ingin memastikan pengecer hanya melihat data yang untuk bisnis mereka dan bukan untuk orang lain. Anda dapat menggunakan RLS dengan tag untuk memastikan pelanggan Anda hanya melihat data yang relevan dengan mereka.

Untuk melakukannya, selesaikan langkah-langkah berikut:

  1. Tambahkan tag RLS ke kumpulan data.

  2. Tetapkan nilai ke tag tersebut saat runtime menggunakan operasi GenerateEmbedUrlForAnonymousUser API.

    Untuk informasi selengkapnya tentang menyematkan dasbor untuk pengguna anonim yang menggunakan operasi GenerateEmbedUrlForAnonymousUser API, lihat. Menyematkan dasbor QuickSight data untuk pengguna anonim (tidak terdaftar)

Sebelum Anda dapat menggunakan RLS dengan tag, ingatlah hal-hal berikut:

  • Menggunakan RLS dengan tag saat ini hanya didukung untuk penyematan anonim, khususnya untuk dasbor tertanam yang menggunakan operasi API. GenerateEmbedUrlForAnonymousUser

  • Menggunakan RLS dengan tag tidak didukung untuk dasbor tertanam yang menggunakan operasi GenerateEmbedURLForRegisteredUser API atau operasi GetDashboardEmbedUrl API lama.

  • Tag RLS tidak didukung dengan AWS Identity and Access Management (IAM) atau tipe QuickSight identitas.

  • Saat menerapkan kumpulan data SPICE ke keamanan tingkat baris, setiap bidang dalam kumpulan data dapat berisi hingga 2.047 karakter Unicode. Kolom yang berisi lebih dari kuota ini dipotong selama konsumsi. Untuk mempelajari lebih lanjut tentang kuota data SPICE, lihatSPICEkuota untuk data yang diimpor.

Langkah 1: Tambahkan tag RLS ke dataset

Anda dapat menambahkan aturan berbasis tag ke kumpulan data di Amazon. QuickSight Atau, Anda dapat memanggil operasi CreateDataSet atau UpdateDataSet API dan menambahkan aturan berbasis tag dengan cara itu. Untuk informasi selengkapnya, lihat Menambahkan tag RLS ke kumpulan data menggunakan API.

Gunakan prosedur berikut untuk menambahkan tag RLS ke kumpulan data di. QuickSight

Untuk menambahkan tag RLS ke kumpulan data
  1. Dari halaman QuickSight awal, pilih Datasets di sebelah kiri.

  2. Pada halaman Datasets, pilih dataset yang ingin Anda tambahkan RLS.

  3. Pada halaman detail kumpulan data yang terbuka, untuk keamanan tingkat Baris, pilih Siapkan.

    Opsi keamanan tingkat baris saat Anda memilih kumpulan data di halaman kumpulan data.
  4. Pada halaman Siapkan keamanan tingkat baris yang terbuka, pilih aturan berbasis Tag.

  5. Untuk Kolom, pilih kolom yang ingin Anda tambahkan aturan tag.

    Misalnya, dalam kasus untuk perusahaan logistik, retailer_id kolom digunakan.

    Hanya kolom dengan tipe data string yang terdaftar.

  6. Untuk Tag, masukkan kunci tag. Anda dapat memasukkan nama tag apa pun yang Anda inginkan.

    Misalnya, dalam kasus untuk perusahaan logistik, kunci tag tag_retailer_id digunakan. Melakukan hal ini menetapkan keamanan tingkat baris berdasarkan pengecer yang mengakses aplikasi.

  7. (Opsional) Untuk Pembatas, pilih pembatas dari daftar, atau masukkan pembatas Anda sendiri.

    Anda dapat menggunakan pembatas untuk memisahkan string teks saat menetapkan lebih dari satu nilai ke tag. Nilai untuk pembatas bisa 10 karakter, paling banyak.

  8. (Opsional) Untuk Cocokkan semua, pilih *, atau masukkan karakter atau karakter Anda sendiri.

    Opsi ini dapat berupa karakter apa pun yang ingin Anda gunakan saat Anda ingin memfilter berdasarkan semua nilai di kolom itu di kumpulan data. Alih-alih mencantumkan nilai satu per satu, Anda dapat menggunakan karakter. Jika nilai ini ditentukan, itu bisa setidaknya satu karakter, atau paling banyak 256 karakter

    Mengelola tabel tag.
  9. Pilih Tambahkan.

    Aturan tag ditambahkan ke kumpulan data dan terdaftar di bagian bawah, tetapi belum diterapkan. Untuk menambahkan aturan tag lain ke kumpulan data, ulangi langkah 5—9. Untuk mengedit aturan tag, pilih ikon pensil yang mengikuti aturan. Untuk menghapus aturan tag, pilih ikon hapus yang mengikuti aturan. Anda dapat menambahkan hingga 50 tag ke kumpulan data.

  10. Saat Anda siap menerapkan aturan tag ke kumpulan data, pilih Terapkan aturan.

    Kotak dialog aturan berbasis tag: Terapkan tombol aturan untuk keamanan tingkat baris berbasis tag.
  11. Aktifkan keamanan berbasis tag? halaman yang terbuka, pilih Terapkan dan aktifkan.

    Aturan berbasis tag sekarang aktif. Pada halaman Mengatur keamanan tingkat baris, sakelar muncul bagi Anda untuk mengaktifkan dan menonaktifkan aturan tag untuk kumpulan data.

    Untuk menonaktifkan semua aturan berbasis tag untuk kumpulan data, matikan aturan Berbasis Tag, lalu masukkan “konfirmasi” di kotak teks yang muncul.

    Aturan berbasis tag beralih disetel ke ON untuk mengatur keamanan tingkat baris.

    Pada halaman Datasets, ikon kunci muncul di baris dataset untuk menunjukkan bahwa aturan tag diaktifkan.

    Anda sekarang dapat menggunakan aturan tag untuk menetapkan nilai tag saat runtime, dijelaskan dalamLangkah 2: Tetapkan nilai ke tag RLS saat runtime. Aturan hanya mempengaruhi QuickSight pembaca saat aktif.

    penting

    Setelah tag ditetapkan dan diaktifkan pada kumpulan data, pastikan untuk memberikan izin kepada QuickSight penulis untuk melihat data apa pun di kumpulan data saat membuat dasbor.

    Untuk memberi izin kepada QuickSight penulis untuk melihat data dalam kumpulan data, buat file izin atau kueri untuk digunakan sebagai aturan kumpulan data. Untuk informasi selengkapnya, lihat Membuat aturan kumpulan data untuk keamanan tingkat baris.

Setelah Anda membuat aturan berbasis tag, tabel Kelola aturan baru muncul yang menunjukkan bagaimana aturan berbasis tag Anda terkait satu sama lain. Untuk membuat perubahan pada aturan yang tercantum dalam tabel Kelola aturan, pilih ikon pensil yang mengikuti aturan. Kemudian tambahkan atau hapus tag, dan pilih Perbarui. Untuk menerapkan aturan yang diperbarui ke kumpulan data, pilih Terapkan.

Kelola tabel aturan dengan ikon edit dan hapus.

(Opsional) Tambahkan kondisi OR ke tag RLS

Anda juga dapat menambahkan kondisi OR ke aturan berbasis tag Anda untuk lebih menyesuaikan cara data disajikan kepada pengguna QuickSight akun Anda. Saat Anda menggunakan kondisi OR dengan aturan berbasis tag, visual QuickSight akan muncul jika setidaknya satu tag yang ditentukan dalam aturan valid.

Untuk menambahkan kondisi OR ke aturan berbasis tag
  1. Dalam tabel Kelola aturan, pilih Tambah ATAU kondisi.

    Kotak dialog Kelola Tag: Tambahkan ATAU tombol Kondisi.
  2. Dalam daftar tarik-turun Pilih tag yang muncul, pilih tag yang ingin Anda buat kondisi OR. Anda dapat menambahkan hingga 50 kondisi OR ke tabel Kelola aturan. Anda dapat menambahkan beberapa tag ke satu kolom dalam kumpulan data, tetapi setidaknya satu tag kolom perlu disertakan dalam aturan.

    Pilih tag yang akan diterapkan pada kondisi OR.
  3. Pilih Perbarui untuk menambahkan kondisi ke aturan Anda, lalu pilih Terapkan untuk menerapkan aturan yang diperbarui ke kumpulan data Anda.

    Kelola kotak dialog aturan dengan aturan RLS dan tombol Terapkan.

Menambahkan tag RLS ke kumpulan data menggunakan API

Atau, Anda dapat mengonfigurasi dan mengaktifkan keamanan tingkat baris berbasis tag pada kumpulan data Anda dengan memanggil operasi atau API. CreateDataSet UpdateDataSet Gunakan contoh berikut untuk mempelajari caranya.

CreateDataSet

Berikut ini adalah contoh untuk membuat dataset yang menggunakan RLS dengan tag. Ini mengasumsikan skenario perusahaan logistik yang dijelaskan sebelumnya. Tag didefinisikan dalam row-level-permission-tag-configuration elemen. Tag ditentukan pada kolom yang ingin Anda amankan datanya. Untuk informasi selengkapnya tentang elemen opsional ini, lihat RowLevelPermissionTagConfigurationdi Referensi Amazon QuickSight API.

create-data-set --aws-account-id <value> --data-set-id <value> --name <value> --physical-table-map <value> [--logical-table-map <value>] --import-mode <value> [--column-groups <value>] [--field-folders <value>] [--permissions <value>] [--row-level-permission-data-set <value>] [--column-level-permission-rules <value>] [--tags <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>] [--row-level-permission-tag-configuration '{ "Status": "ENABLED", "TagRules": [ { "TagKey": "tag_retailer_id", "ColumnName": "retailer_id", "TagMultiValueDelimiter": ",", "MatchAllValue": "*" }, { "TagKey": "tag_role", "ColumnName": "role" } ], "TagRuleConfigurations": [ tag_retailer_id ], [ tag_role ] }' ]

Tag dalam contoh ini didefinisikan di TagRules bagian elemen. Dalam contoh ini, dua tag didefinisikan berdasarkan dua kolom:

  • Kunci tag_retailer_id tag didefinisikan untuk retailer_id kolom. Dalam hal ini untuk perusahaan logistik, ini menetapkan keamanan tingkat baris berdasarkan pengecer yang mengakses aplikasi.

  • Kunci tag_role tag didefinisikan untuk role kolom. Dalam hal ini untuk perusahaan logistik, ini menetapkan lapisan tambahan keamanan tingkat baris berdasarkan peran pengguna yang mengakses aplikasi Anda dari pengecer tertentu. Contohnya adalah store_supervisor ataumanager.

Untuk setiap tag, Anda dapat menentukan TagMultiValueDelimiter danMatchAllValue. Ini opsional.

  • TagMultiValueDelimiter— Opsi ini dapat berupa string apa pun yang ingin Anda gunakan untuk membatasi nilai saat Anda meneruskannya saat runtime. Nilainya bisa 10 karakter, paling banyak. Dalam hal ini, koma digunakan sebagai nilai pembatas.

  • MatchAllValue— Opsi ini dapat berupa karakter apa pun yang ingin Anda gunakan saat Anda ingin memfilter berdasarkan semua nilai di kolom itu di kumpulan data. Alih-alih mencantumkan nilai satu per satu, Anda dapat menggunakan karakter. Jika ditentukan, nilai ini bisa setidaknya satu karakter, atau paling banyak 256 karakter. Dalam hal ini, tanda bintang digunakan sebagai kecocokan semua nilai.

Saat mengonfigurasi tag untuk kolom kumpulan data, aktifkan atau nonaktifkan menggunakan properti wajib. Status Untuk mengaktifkan aturan tag, gunakan nilai ENABLED untuk properti ini. Dengan mengaktifkan aturan tag, Anda dapat menggunakannya untuk menetapkan nilai tag saat runtime, dijelaskan dalamLangkah 2: Tetapkan nilai ke tag RLS saat runtime.

Berikut ini adalah contoh definisi respons.

{ "Status": 201, "Arn": "arn:aws:quicksight:us-west-2:11112222333:dataset/RLS-Dataset", "DataSetId": "RLS-Dataset", "RequestId": "aa4f3c00-b937-4175-859a-543f250f8bb2" }
UpdateDataSet

UpdateDataSet

Anda dapat menggunakan operasi UpdateDataSet API untuk menambahkan atau memperbarui tag RLS untuk kumpulan data yang ada.

Berikut ini adalah contoh memperbarui dataset dengan tag RLS. Ini mengasumsikan skenario perusahaan logistik yang dijelaskan sebelumnya.

update-data-set --aws-account-id <value> --data-set-id <value> --name <value> --physical-table-map <value> [--logical-table-map <value>] --import-mode <value> [--column-groups <value> [--field-folders <value>] [--row-level-permission-data-set <value>] [--column-level-permission-rules <value>] [--cli-input-json <value>] [--generate-cli-skeleton <value>] [--row-level-permission-tag-configuration '{ "Status": "ENABLED", "TagRules": [ { "TagKey": "tag_retailer_id", "ColumnName": "retailer_id", "TagMultiValueDelimiter": ",", "MatchAllValue": "*" }, { "TagKey": "tag_role", "ColumnName": "role" } ], "TagRuleConfigurations": [ tag_retailer_id ], [ tag_role ] }' ]

Berikut ini adalah contoh definisi respons.

{ "Status": 201, "Arn": "arn:aws:quicksight:us-west-2:11112222333:dataset/RLS-Dataset", "DataSetId": "RLS-Dataset", "RequestId": "aa4f3c00-b937-4175-859a-543f250f8bb2" }
penting

Setelah tag ditetapkan dan diaktifkan pada kumpulan data, pastikan untuk memberikan izin kepada QuickSight penulis untuk melihat data apa pun di kumpulan data saat membuat dasbor.

Untuk memberi izin kepada QuickSight penulis untuk melihat data dalam kumpulan data, buat file izin atau kueri untuk digunakan sebagai aturan kumpulan data. Untuk informasi selengkapnya, lihat Membuat aturan kumpulan data untuk keamanan tingkat baris.

Untuk informasi selengkapnya tentang RowLevelPermissionTagConfiguration elemen, lihat RowLevelPermissionTagConfigurationdi Referensi Amazon QuickSight API.

Langkah 2: Tetapkan nilai ke tag RLS saat runtime

Anda dapat menggunakan tag untuk RLS hanya untuk penyematan anonim. Anda dapat menetapkan nilai untuk tag menggunakan operasi GenerateEmbedUrlForAnonymousUser API.

Contoh berikut menunjukkan cara menetapkan nilai untuk tag RLS yang didefinisikan dalam dataset pada langkah sebelumnya.

POST /accounts/AwsAccountId/embed-url/anonymous-user HTTP/1.1 Content-type: application/json { “AwsAccountId”: “string”, “SessionLifetimeInMinutes”: integer, “Namespace”: “string”, // The namespace to which the anonymous end user virtually belongs “SessionTags”: // Optional: Can be used for row-level security [ { “Key”: “tag_retailer_id”, “Value”: “West,Central,South” } { “Key”: “tag_role”, “Value”: “shift_manager” } ], “AuthorizedResourceArns”: [ “string” ], “ExperienceConfiguration”: { “Dashboard”: { “InitialDashboardId”: “string” // This is the initial dashboard ID the customer wants the user to land on. This ID goes in the output URL. } } }

Berikut ini adalah contoh definisi respons.

HTTP/1.1 Status Content-type: application/json { "EmbedUrl": "string", "RequestId": "string" }

Dukungan RLS tanpa mendaftarkan pengguna hanya QuickSight didukung dalam operasi GenerateEmbedUrlForAnonymousUser API. Dalam operasi ini, di bawahSessionTags, Anda dapat menentukan nilai untuk tag yang terkait dengan kolom dataset.

Dalam hal ini, tugas berikut didefinisikan:

  • NilaiWest,Central, dan South ditetapkan ke tag_retailer_id tag saat runtime. Koma digunakan untuk pembatas, yang didefinisikan TagMultipleValueDelimiter dalam kumpulan data. Untuk menggunakan nilai panggilan di kolom, Anda dapat mengatur nilai ke *, yang didefinisikan sebagai MatchAllValue saat membuat tag.

  • Nilai shift_manager diberikan ke tag_role tag.

Pengguna yang menggunakan URL yang dihasilkan hanya dapat melihat baris yang memiliki shift_manager nilai di role kolom. Pengguna itu hanya dapat melihat nilaiWest,Central, atau South di retailer_id kolom.

Untuk informasi selengkapnya tentang menyematkan dasbor untuk pengguna anonim yang menggunakan operasi GenerateEmbedUrlForAnonymousUser API, lihatMenyematkan dasbor QuickSight data untuk pengguna anonim (tidak terdaftar), atau GenerateEmbedUrlForAnonymousUserdi Referensi API Amazon QuickSight