

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
<a name="quicksight-dev-rls-tags"></a>


|  | 
| --- |
|  Berlaku untuk: Enterprise Edition  | 


|  | 
| --- |
|    Pemirsa yang dituju: Administrator Cepat Amazon dan pengembang Amazon Quick  | 

Saat menyematkan dasbor Amazon Quick di aplikasi untuk pengguna yang tidak disediakan (terdaftar) di Quick, Anda dapat menggunakan keamanan tingkat baris (RLS) ke data dengan tag. filter/restrict Tag adalah string yang ditentukan pengguna yang mengidentifikasi sesi dalam aplikasi Anda. Anda dapat menggunakan tag untuk mengimplementasikan kontrol RLS untuk kumpulan data Anda. Dengan mengonfigurasi RLS-based pembatasan dalam kumpulan data, Quick memfilter data berdasarkan tag sesi yang terkait dengan pengguna. identity/session

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 di Quick, jadi Anda menggunakan penyematan anonim untuk menyematkan dasbor yang dipilih di aplikasi Anda 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.

1. 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 Amazon Quick Sight untuk pengguna anonim (tidak terdaftar)](embedded-analytics-dashboards-for-everyone.md)

Sebelum Anda dapat menggunakan RLS dengan tag, ingatlah poin-poin 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 identitas Cepat.
+ 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, lihat[SPICEkuota untuk data yang diimpor](data-source-limits.md#spice-limits).

## Langkah 1: Tambahkan tag RLS ke dataset
<a name="quicksight-dev-rls-tags-add"></a>

Anda dapat menambahkan aturan berbasis tag ke kumpulan data di Amazon Quick. 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](#quicksight-dev-rls-tags-add-api).

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

**Untuk menambahkan tag RLS ke kumpulan data**

1. Dari halaman Mulai cepat, pilih **Data** di sebelah kiri.

1. Pilih kumpulan data yang ingin Anda tambahkan RLS.

1. Pada halaman detail kumpulan data yang terbuka, untuk **Row-levelkeamanan**, pilih **Siapkan**.

1. **Pada halaman **Siapkan keamanan tingkat baris** yang terbuka, pilih Tag-based aturan.**

1. 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.

1. 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.

1. (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.

1. (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.

1. 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.

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

1. 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 **Tag-Based aturan**, lalu masukkan “konfirmasi” di kotak teks yang muncul.

   Pada halaman **Data**, ikon kunci muncul di baris kumpulan data untuk menunjukkan bahwa aturan tag diaktifkan.

   Anda sekarang dapat menggunakan aturan tag untuk menetapkan nilai tag saat runtime, dijelaskan dalam[Langkah 2: Tetapkan nilai ke tag RLS saat runtime](#quicksight-dev-rls-tags-assign-values). Aturan hanya memengaruhi pembaca Cepat saat aktif.
**penting**  
Setelah tag ditetapkan dan diaktifkan pada kumpulan data, pastikan untuk memberikan izin kepada penulis Cepat untuk melihat data apa pun di kumpulan data saat membuat dasbor.   
Untuk memberikan izin kepada penulis Cepat 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](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security).

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**.

### (Opsional) Tambahkan kondisi OR ke tag RLS
<a name="quicksight-dev-rls-tags-or"></a>

Anda juga dapat menambahkan kondisi OR ke aturan berbasis tag untuk menyesuaikan lebih lanjut cara data disajikan kepada pengguna akun Cepat Anda. Saat Anda menggunakan kondisi OR dengan aturan berbasis tag, visual di Quick 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**.

1. 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.

1. Pilih **Perbarui** untuk menambahkan kondisi ke aturan Anda, lalu pilih **Terapkan** untuk menerapkan aturan yang diperbarui ke kumpulan data Anda.

### Menambahkan tag RLS ke kumpulan data menggunakan API
<a name="quicksight-dev-rls-tags-add-api"></a>

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.

**penting**  
Saat mengonfigurasi tag sesi dalam panggilan API,  
Perlakukan tag sesi sebagai kredensyal keamanan. Jangan mengekspos tag sesi ke pengguna akhir atau kode sisi klien.
Menerapkan kontrol sisi server. Pastikan tag sesi disetel secara eksklusif oleh layanan backend tepercaya Anda, bukan oleh parameter yang dapat dimodifikasi oleh pengguna akhir.
Lindungi tag sesi dari enumerasi. Pastikan bahwa pengguna dalam satu penyewa tidak dapat menemukan atau menebak nilai SessionTag milik penyewa lain.
Tinjau arsitektur Anda. Jika pelanggan atau mitra hilir diizinkan untuk memanggil API secara langsung, evaluasi apakah pihak-pihak tersebut dapat menentukan nilai SessionTag untuk penyewa yang tidak boleh mereka akses.

------
#### [ 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 [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)di *Referensi API Cepat 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` atau`manager`.

Untuk setiap tag, Anda dapat menentukan `TagMultiValueDelimiter` dan`MatchAllValue`. 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 dalam[Langkah 2: Tetapkan nilai ke tag RLS saat runtime](#quicksight-dev-rls-tags-assign-values).

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 penulis Cepat untuk melihat data apa pun di kumpulan data saat membuat dasbor.   
Untuk memberikan izin kepada penulis Cepat 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](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security).

Untuk informasi selengkapnya tentang `RowLevelPermissionTagConfiguration` elemen, lihat [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)di *Referensi API Cepat Amazon*.

## Langkah 2: Tetapkan nilai ke tag RLS saat runtime
<a name="quicksight-dev-rls-tags-assign-values"></a>

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

**penting**  
Saat mengonfigurasi tag sesi dalam panggilan API,  
Perlakukan tag sesi sebagai kredensyal keamanan. Jangan mengekspos tag sesi ke pengguna akhir atau kode sisi klien.
Menerapkan kontrol sisi server. Pastikan tag sesi disetel secara eksklusif oleh layanan backend tepercaya Anda, bukan oleh parameter yang dapat dimodifikasi oleh pengguna akhir.
Lindungi tag sesi dari enumerasi. Pastikan bahwa pengguna dalam satu penyewa tidak dapat menemukan atau menebak nilai SessionTag milik penyewa lain.
Tinjau arsitektur Anda. Jika pelanggan atau mitra hilir diizinkan untuk memanggil API secara langsung, evaluasi apakah pihak-pihak tersebut dapat menentukan nilai SessionTag untuk penyewa yang tidak boleh mereka akses.

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 di Quick hanya didukung dalam operasi `GenerateEmbedUrlForAnonymousUser` API. Dalam operasi ini, di bawah`SessionTags`, Anda dapat menentukan nilai untuk tag yang terkait dengan kolom dataset.

Dalam hal ini, tugas berikut didefinisikan:
+ Nilai`West`,`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 nilai`West`,`Central`, atau `South` di `retailer_id` kolom.

Untuk informasi selengkapnya tentang menyematkan dasbor untuk pengguna anonim yang menggunakan operasi `GenerateEmbedUrlForAnonymousUser` API, lihat[Menyematkan dasbor Amazon Quick Sight untuk pengguna anonim (tidak terdaftar)](embedded-analytics-dashboards-for-everyone.md), atau [GenerateEmbedUrlForAnonymousUser](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GenerateEmbedUrlForAnonymousUser.html)di Referensi API *Cepat Amazon*