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 - Amazon Quick Suite

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

 Si applica a: Enterprise Edition 
   Destinatari: amministratori di Amazon Quick Suite e sviluppatori di Amazon Quick Suite 

Quando incorpori dashboard di Amazon Quick Suite nella tua applicazione per utenti che non sono stati assegnati (registrati) in Quick Suite, puoi utilizzare la sicurezza a livello di riga (RLS) con tag. In questo caso, i tag vengono utilizzati per specificare quali dati gli utenti possono vedere nel pannelli di controllo a seconda di chi sono.

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 Suite, quindi utilizzi l'incorporamento anonimo per incorporare nella tua applicazione le dashboard selezionate in modo che gli utenti autenticati e autorizzati possano vederle. 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.

  2. 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 Incorporamento di dashboard Amazon Quick Sight per utenti anonimi (non registrati).

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 con il tipo di identità Quick Suite.

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

Fase 1: Aggiunta di tag RLS a un set di dati

Puoi aggiungere regole basate su tag a un set di dati in Amazon Quick Suite. 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.

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

Aggiunta di tag RLS a un set di dati
  1. Dalla pagina iniziale di Quick Suite, scegli Dati a sinistra.

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

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

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

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

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

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

  8. (Facoltativo) In Associa tutto, scegli il simbolo * 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.

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

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

  11. 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. Le regole influiscono sui lettori di Quick Suite solo quando sono attivi.

    Importante

    Dopo aver assegnato e abilitato i tag sul set di dati, assicurati di concedere agli autori di Quick Suite le autorizzazioni per visualizzare i dati nel set di dati durante la creazione di una dashboard.

    Per concedere agli autori di Quick Suite 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.

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

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 Suite. Quando si utilizza la condizione OR con le regole basate sui tag, le immagini in Quick Suite 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.

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

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

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.

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 RowLevelPermissionTagConfigurationAmazon Quick Suite 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.

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 Suite le autorizzazioni per visualizzare tutti i dati nel set di dati durante la creazione di una dashboard.

Per concedere agli autori di Quick Suite 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.

Per ulteriori informazioni sull'RowLevelPermissionTagConfigurationelemento, consulta RowLevelPermissionTagConfigurationAmazon Quick Suite API Reference.

Fase 2: Assegnazione di valori ai tag RLS durante il runtime

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

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 Suite è supportato solo nel funzionamento dell'GenerateEmbedUrlForAnonymousUserAPI. 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 *, 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'GenerateEmbedUrlForAnonymousUserAPIIncorporamento di dashboard Amazon Quick Sight per utenti anonimi (non registrati), consulta o GenerateEmbedUrlForAnonymousUserconsulta l'Amazon Quick Suite API Reference