Menggunakan keamanan tingkat baris 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 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 () dengan tag. RLS Dalam hal ini, Anda menggunakan tag untuk menentukan data mana yang dapat dilihat pengguna Anda di dasbor tergantung 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 tag untuk memastikan pelanggan Anda hanya melihat data yang relevan dengan mereka.

Untuk melakukannya, selesaikan langkah-langkah berikut:

  1. Tambahkan RLS tag 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 GenerateEmbedUrlForAnonymousUser API operasi, lihat. Menyematkan QuickSight dasbor 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. GenerateEmbedUrlForAnonymousUser API

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

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

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

Langkah 1: Tambahkan RLS tag ke kumpulan data

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

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

Untuk menambahkan RLS tag 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 panjang

    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. Pada Nyalakan 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 RLS tag 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 akan 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 RLS tag

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 Anda
  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 untuk 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.

    Mengelola aturan kotak dialog dengan RLS aturan dan tombol Terapkan.

Tambahkan RLS tag ke kumpulan data menggunakan API

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

CreateDataSet

Berikut ini adalah contoh untuk membuat dataset yang menggunakan RLS 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 QuickSight APIReferensi Amazon.

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 RLS tag 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 UpdateDataSet API operasi untuk menambahkan atau memperbarui RLS tag untuk kumpulan data yang ada.

Berikut ini adalah contoh memperbarui dataset dengan RLS tag. 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 QuickSight APIReferensi Amazon.

Langkah 2: Tetapkan nilai ke RLS tag saat runtime

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

Contoh berikut menunjukkan cara menetapkan nilai untuk RLS tag 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" }

RLSdukungan tanpa mendaftarkan pengguna QuickSight hanya didukung dalam GenerateEmbedUrlForAnonymousUser API operasi. 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 yang dihasilkan hanya URL 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 GenerateEmbedUrlForAnonymousUser API operasi, lihatMenyematkan QuickSight dasbor untuk pengguna anonim (tidak terdaftar), atau GenerateEmbedUrlForAnonymousUserdi Referensi Amazon QuickSight API