

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Utilizzo della sicurezza a livello di riga con regole basate sui tag per limitare l'accesso a un set di dati durante l'incorporamento dei pannelli di controllo per gli utenti anonimi
<a name="quicksight-dev-rls-tags"></a>


|  | 
| --- |
|  Si applica a: Enterprise Edition  | 


|  | 
| --- |
|    Destinatari: amministratori di Amazon Quick e sviluppatori Amazon Quick  | 

Quando incorpori dashboard di Amazon Quick nella tua applicazione per utenti che non sono stati forniti (registrati) in Quick, puoi utilizzare la sicurezza a livello di riga (RLS) per i dati con tag. filter/restrict Un tag è una stringa specificata dall'utente che identifica una sessione nell'applicazione. Puoi utilizzare i tag per implementare i controlli RLS per i tuoi set di dati. Configurando le restrizioni basate su RLS nei set di dati, Quick filtra i dati in base ai tag di sessione legati all'identità/sessione utente.

Ad esempio, supponiamo che tu sia una società di logistica che dispone di un'applicazione rivolta ai clienti per vari rivenditori. Migliaia di utenti di questi rivenditori accedono alla tua applicazione per visualizzare i parametri relative al modo in cui i loro ordini vengono spediti dal tuo magazzino. 

Non vuoi gestire migliaia di utenti in Quick, quindi utilizzi l'incorporamento anonimo per incorporare nella tua applicazione i dashboard selezionati in modo che gli utenti autenticati e autorizzati possano vederli. Tuttavia, vuoi assicurarti che i rivenditori visualizzino solo i dati relativi alla loro attività e non ad altri. Puoi utilizzare RLS con i tag per assicurarti che i tuoi clienti vedano solo i dati che li riguardano.

Per fare ciò, completa la seguente procedura:

1. Aggiungi i tag RLS a un set di dati.

1. Assegna valori a tali tag durante il runtime utilizzando l'operazione API `GenerateEmbedUrlForAnonymousUser`.

   Per ulteriori informazioni sull'incorporamento di pannelli di controllo per utenti anonimi utilizzando l'operazione API `GenerateEmbedUrlForAnonymousUser`, consulta [Integrazione di dashboard Amazon Quick Sight per utenti anonimi (non registrati)](embedded-analytics-dashboards-for-everyone.md).

Prima di utilizzare RLS con i tag, è importante considerare quanto segue:
+ L'utilizzo di RLS con tag al momento è supportato solo per l'incorporamento anonimo, in particolare per i pannelli di controllo incorporati che utilizzano l'operazione API `GenerateEmbedUrlForAnonymousUser`.
+ L'utilizzo di RLS con tag non è supportato per i pannelli di controllo incorporati che utilizzano l'operazione API `GenerateEmbedURLForRegisteredUser` o la vecchia operazione API `GetDashboardEmbedUrl`.
+ I tag RLS non sono supportati con AWS Identity and Access Management (IAM) o il tipo di identità Quick.
+ Quando si applicano i set di dati SPICE alla sicurezza a livello di riga, ogni campo del set di dati può contenere fino a 2.047 caratteri Unicode. I campi che contengono un numero maggiore di caratteri verranno troncati durante l'importazione. Per ulteriori informazioni sulle quote di dati SPICE, consulta [Quote di SPICE per i dati importati](data-source-limits.md#spice-limits).

## Fase 1: Aggiunta di tag RLS a un set di dati
<a name="quicksight-dev-rls-tags-add"></a>

Puoi aggiungere regole basate su tag a un set di dati in Amazon Quick. In alternativa, puoi chiamare l'operazione API `CreateDataSet` o `UpdateDataSet` e aggiungere regole basate su tag in questo modo. Per ulteriori informazioni, consulta [Aggiunta di tag RLS a un set di dati tramite l'API](#quicksight-dev-rls-tags-add-api).

Usa la seguente procedura per aggiungere tag RLS a un set di dati in Quick.

**Aggiunta di tag RLS a un set di dati**

1. Dalla pagina di avvio rapido, scegli **Dati a sinistra**.

1. Scegli il set di dati a cui vuoi aggiungere RLS.

1. Nella pagina dei dettagli del set di dati che si apre, per **Sicurezza a livello di riga**, scegli **Configura**.

1. Nella pagina **Configura sicurezza a livello di riga** che si apre, scegli **Regole basate su tag**.

1. Per **Colonna**, scegli una colonna a cui desideri aggiungere le regole dei tag.

   Ad esempio, nel caso della società di logistica, viene utilizzata la colonna `retailer_id`.

   Vengono elencate solo le colonne con un tipo di dati stringa.

1. Per **Tag**, inserisci una chiave di tag. Puoi inserire il nome del tag che desideri.

   Ad esempio, nel caso della società di logistica, viene utilizzata la chiave di tag `tag_retailer_id`. In questo modo, viene impostata la sicurezza a livello di riga in base al rivenditore che accede all'applicazione.

1. (Facoltativo) Per **Delimitatore**, scegli un delimitatore dall'elenco o inserisci il tuo.

   È possibile utilizzare i delimitatori per separare le stringhe di testo quando si assegna più di un valore a un tag. Il valore per un delimitatore può avere una lunghezza massima di 10 caratteri.

1. (Facoltativo) In **Associa tutto**, scegli il simbolo **\$1** o inserisci uno o più caratteri personalizzati.

   Questa opzione può essere qualsiasi carattere da utilizzare quando si desidera filtrare in base a tutti i valori in quella colonna del set di dati. Invece di elencare i valori uno per uno, puoi usare il carattere. Se questo valore è specificato, può contenere almeno un carattere o al massimo 256 caratteri.

1. Scegliere **Aggiungi**.

   La regola del tag viene aggiunta al set di dati ed è elencata in basso, ma non è ancora stata applicata. Per aggiungere un'altra regola di tag al set di dati, ripeti le fasi 5-9. Per modificare una regola di tag, scegli l'icona a forma di matita che segue la regola. Per eliminare una regola di tag, scegli l'icona di eliminazione che segue la regola. A un set di dati è possibile aggiungere un massimo di 50 tag.

1. Una volta pronto per applicare le regole dei tag al set di dati, scegli **Applica regole**.

1. Nella finestra **Attivare la sicurezza basata su tag?** nella pagina che si apre, scegli **Applica e attiva**.

   Le regole basate sui tag sono ora attive. Nella pagina **Configura la sicurezza a livello di riga**, viene visualizzato un pulsante che consente di attivare e disattivare le regole dei tag per il set di dati.

   Per disattivare tutte le regole basate sui tag per il set di dati, disattiva l'interruttore **Regole basate sui tag**, quindi digita "confirm" nella casella di testo visualizzata.

   Nella pagina **Dati**, viene visualizzata un'icona a forma di lucchetto nella riga del set di dati per indicare che le regole dei tag sono abilitate.

   È ora possibile utilizzare nuove regole dei tag per impostare i valori dei tag durante il runtime, come descritto in [Fase 2: Assegnazione di valori ai tag RLS durante il runtime](#quicksight-dev-rls-tags-assign-values). Le regole influiscono sui lettori rapidi solo quando sono attivi.
**Importante**  
Dopo aver assegnato e abilitato i tag sul set di dati, assicurati di concedere agli autori di Quick le autorizzazioni per visualizzare tutti i dati nel set di dati durante la creazione di una dashboard.   
Per concedere agli autori di Quick l'autorizzazione a visualizzare i dati nel set di dati, crea un file di autorizzazioni o una query da utilizzare come regole del set di dati. Per ulteriori informazioni, consulta [Creazione di regole del set di dati per la sicurezza a livello di riga](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security).

Dopo aver creato una regola basata su tag, viene visualizzata una nuova tabella di **Gestisci regole** che mostra come le regole basate sui tag si relazionano tra loro. Per apportare modifiche alle regole elencate nella tabella **Gestisci regole**, scegli l'icona a forma di matita che segue la regola. Quindi aggiungi o rimuovi i tag e scegli **Aggiorna**. Per applicare la regola aggiornata al set di dati, scegli **Applica**.

### (Facoltativo) Aggiunta della condizione OR ai tag RLS
<a name="quicksight-dev-rls-tags-or"></a>

Puoi anche aggiungere la condizione OR alle regole basate sui tag per personalizzare ulteriormente il modo in cui i dati vengono presentati agli utenti del tuo account Quick. Quando si utilizza la condizione OR con le regole basate sui tag, le immagini in Quick vengono visualizzate se almeno un tag definito nella regola è valido.

**Aggiunta della condizione OR alle regole basate sui tag**

1. Nella tabella **Gestisci regole**, scegli **Aggiungi condizione OR**.

1. Nell'elenco a discesa **Seleziona tag** che appare, scegli il tag per cui desideri creare una condizione OR. Puoi aggiungere fino a 50 condizioni OR alla tabella **Gestisci regole**. È possibile aggiungere più tag a una singola colonna in un set di dati, ma è necessario includere almeno un tag di colonna in una regola.

1. Scegli **Aggiorna** per aggiungere la condizione alla regola, quindi scegli **Applica** per applicare la regola aggiornata al set di dati.

### Aggiunta di tag RLS a un set di dati tramite l'API
<a name="quicksight-dev-rls-tags-add-api"></a>

In alternativa, puoi configurare e abilitare la sicurezza a livello di riga basata su tag sul tuo set di dati chiamando l'operazione API `CreateDataSet` o `UpdateDataSet`. Utilizza gli esempi seguenti per scoprire come.

**Importante**  
Quando si configurano i tag di sessione nella chiamata API,  
Tratta i tag di sessione come credenziali di sicurezza. Non esponete i tag di sessione agli utenti finali o al codice lato client.
Implementa controlli lato server. Assicurati che i tag di sessione siano impostati esclusivamente dai tuoi servizi di backend affidabili, non da parametri che gli utenti finali possono modificare.
Proteggi i tag di sessione dall'enumerazione. Assicurati che gli utenti di un tenant non possano scoprire o indovinare i valori di SessionTag appartenenti ad altri tenant.
Rivedi la tua architettura. Se i clienti o i partner a valle sono autorizzati a chiamare direttamente l'API, valuta se tali parti potrebbero specificare valori SessionTag per i tenant a cui non dovrebbero accedere.

------
#### [ CreateDataSet ]

Di seguito è riportato un esempio di creazione di un set di dati che utilizza RLS con i tag. Presuppone lo scenario della società di logistica descritto in precedenza. I tag sono definiti nell'elemento `row-level-permission-tag-configuration`. I tag sono definiti nelle colonne per le quali si desidera proteggere i dati. Per ulteriori informazioni su questo elemento opzionale, consulta [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)*Amazon Quick API Reference*.

```
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
			]
	}'
]
```

I tag in questo esempio sono definiti nella parte `TagRules` dell'elemento. In questo esempio, due tag sono definiti in base a due colonne:
+ La chiave del tag `tag_retailer_id` è definita per la colonna `retailer_id`. In questo caso, per l'azienda di logistica, imposta la sicurezza a livello di riga in base al rivenditore che accede all'applicazione.
+ La chiave del tag `tag_role` è definita per la colonna `role`. In questo caso, per l'azienda di logistica, imposta un ulteriore livello di sicurezza a livello di riga in base al ruolo dell'utente che accede all'applicazione da un rivenditore specifico. Un esempio è `store_supervisor` o `manager`.

Per ogni tag, puoi definire `TagMultiValueDelimiter` e `MatchAllValue`. Queste opzioni sono facoltative.
+ `TagMultiValueDelimiter`: questa opzione può essere qualsiasi stringa che si desidera utilizzare per delimitare i valori quando li si passa durante il runtime. Il valore può avere una lunghezza massima di 10 caratteri. In questo caso, viene utilizzata una virgola come valore delimitatore.
+ `MatchAllValue`: questa opzione può essere qualsiasi carattere da utilizzare quando si desidera filtrare in base a tutti i valori in quella colonna del set di dati. Invece di elencare i valori uno per uno, puoi usare il carattere. Se specificato, questo valore può contenere almeno un carattere o al massimo 256 caratteri. In questo caso, viene utilizzato un asterisco come valore di corrispondenza con tutti.

Durante la configurazione dei tag per le colonne del set di dati, attivali o disattivali utilizzando la proprietà obbligatoria `Status`. Per abilitare le regole dei tag, usa il valore `ENABLED` di questa proprietà. Attivando le regole dei tag, è possibile utilizzarle per impostare i valori dei tag durante il runtime, come descritto in [Fase 2: Assegnazione di valori ai tag RLS durante il runtime](#quicksight-dev-rls-tags-assign-values).

Di seguito è riportato un esempio della definizione di risposta.

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

------
#### [ UpdateDataSet ]

**UpdateDataSet**

È possibile utilizzare l'operazione API `UpdateDataSet` per aggiungere o aggiornare i tag RLS per un set di dati esistente.

Di seguito è riportato un esempio di aggiornamento di un set di dati con tag RLS. Presuppone lo scenario della società di logistica descritto in precedenza.

```
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
			]
	}'
]
```

Di seguito è riportato un esempio della definizione di risposta.

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

------

**Importante**  
Dopo aver assegnato e abilitato i tag sul set di dati, assicurati di concedere agli autori di Quick le autorizzazioni per visualizzare tutti i dati nel set di dati durante la creazione di una dashboard.   
Per concedere agli autori di Quick l'autorizzazione a visualizzare i dati nel set di dati, crea un file di autorizzazioni o una query da utilizzare come regole del set di dati. Per ulteriori informazioni, consulta [Creazione di regole del set di dati per la sicurezza a livello di riga](restrict-access-to-a-data-set-using-row-level-security.md#create-data-set-rules-for-row-level-security).

Per ulteriori informazioni sull'`RowLevelPermissionTagConfiguration`elemento, consulta [RowLevelPermissionTagConfiguration](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_RowLevelPermissionTagConfiguration.html)*Amazon Quick API Reference*.

## Fase 2: Assegnazione di valori ai tag RLS durante il runtime
<a name="quicksight-dev-rls-tags-assign-values"></a>

È possibile utilizzare i tag per RLS solo per l'incorporamento anonimo. È possibile impostare valori per i tag utilizzando l'operazione API `GenerateEmbedUrlForAnonymousUser`.

**Importante**  
Quando configuri i tag di sessione nella chiamata API,  
Tratta i tag di sessione come credenziali di sicurezza. Non esponete i tag di sessione agli utenti finali o al codice lato client.
Implementa controlli lato server. Assicurati che i tag di sessione siano impostati esclusivamente dai tuoi servizi di backend affidabili, non da parametri che gli utenti finali possono modificare.
Proteggi i tag di sessione dall'enumerazione. Assicurati che gli utenti di un tenant non possano scoprire o indovinare i valori di SessionTag appartenenti ad altri tenant.
Rivedi la tua architettura. Se i clienti o i partner a valle sono autorizzati a chiamare direttamente l'API, valuta se tali parti potrebbero specificare valori SessionTag per i tenant a cui non dovrebbero accedere.

L'esempio seguente mostra come assegnare valori ai tag RLS definiti nel set di dati nella fase precedente.

```
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.
					}
			}
	}
```

Di seguito è riportato un esempio della definizione di risposta.

```
HTTP/1.1 Status
	Content-type: application/json

	{
	"EmbedUrl": "string",
	"RequestId": "string"
	}
```

Il supporto RLS senza registrazione degli utenti in Quick è supportato solo nel funzionamento dell'API. `GenerateEmbedUrlForAnonymousUser` In questa operazione, in `SessionTags`, è possibile definire i valori per i tag associati alle colonne del set di dati.

In questo caso, vengono definite le assegnazioni seguenti:
+ I valori `West`, `Central` e `South` vengono assegnati al tag `tag_retailer_id` durante il runtime. Viene utilizzata una virgola per il delimitatore, che è stato definito in `TagMultipleValueDelimiter` nel set di dati. Per utilizzare i valori di chiamata nella colonna, puoi impostare il valore su *\$1*, che è stato definito come `MatchAllValue` durante la creazione del tag.
+ Il valore `shift_manager` viene assegnato al tag `tag_role`.

L'utente che utilizza l'URL generato può visualizzare solo le righe con il valore `shift_manager` nella colonna `role`. Tale utente può visualizzare solo il valore `West`, `Central` o `South` nella colonna `retailer_id`.

Per ulteriori informazioni sull'incorporamento di dashboard per utenti anonimi che utilizzano il funzionamento dell'`GenerateEmbedUrlForAnonymousUser`API[Integrazione di dashboard Amazon Quick Sight per utenti anonimi (non registrati)](embedded-analytics-dashboards-for-everyone.md), consulta o [GenerateEmbedUrlForAnonymousUser](https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GenerateEmbedUrlForAnonymousUser.html)consulta *Amazon Quick* API Reference