Verwendung von Sicherheit auf Zeilenebene (RLS) mit tagbasierten Regeln, um den Zugriff auf einen Datensatz beim Einbetten von Dashboards für anonyme Benutzer einzuschränken - Amazon QuickSight

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwendung von Sicherheit auf Zeilenebene (RLS) mit tagbasierten Regeln, um den Zugriff auf einen Datensatz beim Einbetten von Dashboards für anonyme Benutzer einzuschränken

 Gilt für: Enterprise Edition 
   Zielgruppe: Amazon QuickSight -Administratoren und Amazon- QuickSight Entwickler 

Wenn Sie Amazon- QuickSight Dashboards in Ihre Anwendung für Benutzer einbetten, die nicht in bereitgestellt (registriert) werden QuickSight, können Sie Sicherheit auf Zeilenebene (RLS) mit Tags verwenden. In diesem Fall verwenden Sie Tags, um anzugeben, welche Daten Ihre Benutzer im Dashboard sehen können, je nachdem, wer sie sind.

Nehmen wir zum Beispiel an, Sie sind ein Logistikunternehmen, das eine kundenorientierte Anwendung für verschiedene Einzelhändler anbietet. Tausende von Benutzern dieser Einzelhändler greifen auf Ihre Anwendung zu, um Statistiken darüber zu erhalten, wie ihre Bestellungen aus Ihrem Lager versendet werden.

Sie möchten nicht Tausende von Benutzern in verwalten, daher verwenden Sie anonyme Einbettung QuickSight, um die ausgewählten Dashboards in Ihre Anwendung einzubetten, die Ihre authentifizierten und autorisierten Benutzer sehen können. Sie möchten jedoch sicherstellen, dass Einzelhändler nur Daten sehen, die für ihr Unternehmen und nicht für andere bestimmt sind. Sie können RLS mit Tags verwenden, um sicherzustellen, dass Ihre Kunden nur Daten sehen, die für sie relevant sind.

Führen Sie dazu die folgenden Schritte aus:

  1. Fügen Sie einem Datensatz RLS-Tags hinzu.

  2. Weisen Sie diesen Tags zur Laufzeit mithilfe der GenerateEmbedUrlForAnonymousUser-API-Operation Werte zu.

    Weitere Informationen zum Einbetten von Dashboards für anonyme Benutzer mithilfe der GenerateEmbedUrlForAnonymousUser-API-Operation finden Sie unter Einbetten von QuickSight Daten-Dashboards für anonyme (nicht registrierte) Benutzer.

Beachten Sie die folgenden Punkte, bevor Sie RLS mit Tags verwenden:

  • Die Verwendung von RLS mit Tags wird derzeit nur für anonymes Einbetten unterstützt, insbesondere für eingebettete Dashboards, die die GenerateEmbedUrlForAnonymousUser-API-Operation verwenden.

  • Die Verwendung von RLS mit Tags wird für eingebettete Dashboards, die den GenerateEmbedURLForRegisteredUser-API-Operation oder den alten GetDashboardEmbedUrl-API-Operation verwenden, nicht unterstützt.

  • RLS-Tags werden mit AWS Identity and Access Management (IAM) oder dem QuickSight Identitätstyp nicht unterstützt.

  • Bei der Anwendung von SPICE-Datensätzen auf die Sicherheit auf Zeilenebene kann jedes Feld im Datensatz bis zu 2.047 Unicode-Zeichen enthalten. Felder, die mehr als dieses Kontingent enthalten, werden bei der Aufnahme gekürzt. Weitere Informationen zu SPICE-Datenkontingenten finden Sie unter SPICE-Kontingente für importierte Daten.

Schritt 1: Hinzufügen von RLS-Tags zu einem Datensatz

Sie können einem Datensatz in Amazon tagbasierte Regeln hinzufügen QuickSight. Alternativ können Sie die CreateDataSet- oder UpdateDataSet-API-Operation aufrufen und auf diese Weise tagbasierte Regeln hinzufügen. Weitere Informationen finden Sie unter Fügen Sie mithilfe der API RLS-Tags zu einem Datensatz hinzu.

Gehen Sie wie folgt vor, um einem Datensatz in RLS-Tags hinzuzufügen QuickSight.

So fügen Sie einem Datensatz RLS-Tags hinzu
  1. Wählen Sie auf der QuickSight Startseite links Datensätze aus.

  2. Wählen Sie auf der Seite Datensätze den Datensatz aus, dem Sie RLS hinzufügen möchten.

  3. Wählen Sie auf der sich öffnenden Datensatz-Detailseite für Sicherheit auf Zeilenebene die Option Einrichten aus.

    Die Sicherheitsoption auf Zeilenebene, wenn Sie auf der Datensatzseite einen Datensatz auswählen.
  4. Wählen Sie auf der daraufhin geöffneten Seite Sicherheit auf Zeilenebene einrichten die Option Tag-basierte Regeln aus.

  5. Wählen Sie unter Spalte eine Spalte aus, der Sie Tag-Regeln hinzufügen möchten.

    Im Fall des Logistikunternehmens wird die retailer_id-Spalte beispielsweise verwendet.

    Es werden nur Spalten mit einem Zeichenfolgendatentyp aufgeführt.

  6. Geben Sie für Tag einen Tag-Schlüssel ein. Sie können einen beliebigen Tagnamen eingeben.

    Im Fall des Logistikunternehmens wird beispielsweise der Tag-Schlüssel tag_retailer_id verwendet. Dadurch wird die Sicherheit auf Zeilenebene auf der Grundlage des Einzelhändlers festgelegt, der auf die Anwendung zugreift.

  7. (Optional) Wählen Sie unter Trennzeichen ein Trennzeichen aus der Liste aus, oder geben Sie ein eigenes ein.

    Sie können Trennzeichen verwenden, um Textzeichenfolgen zu trennen, wenn Sie einem Tag mehr als einen Wert zuweisen. Der Wert für ein Trennzeichen kann maximal 10 Zeichen lang sein.

  8. (Optional) Wählen Sie für Match all (Alle übereinstimmen) das Sternchen * aus, oder geben Sie ein oder mehrere eigene Zeichen ein.

    Bei dieser Option kann es sich um ein beliebiges Zeichen handeln, das Sie verwenden möchten, wenn Sie nach allen Werten in dieser Spalte im Datensatz filtern möchten. Anstatt die Werte einzeln aufzulisten, können Sie das Zeichen verwenden. Wenn dieser Wert angegeben ist, kann er mindestens ein Zeichen oder höchstens 256 Zeichen lang sein

    Tabelle Tags verwalten.
  9. Wählen Sie Hinzufügen aus.

    Die Tag-Regel wird dem Datensatz hinzugefügt und unten aufgeführt, aber sie wurde noch nicht angewendet. Um dem Datensatz eine weitere Tag-Regel hinzuzufügen, wiederholen Sie die Schritte 5 - 9. Um eine Tag-Regel zu bearbeiten, wählen Sie das Stiftsymbol, das der Regel folgt. Um eine Tagregel zu löschen, wählen Sie das Löschsymbol, das der Regel folgt. Sie können einem Datensatz bis zu 50 Tags hinzufügen.

  10. Wenn Sie bereit sind, die Tag-Regeln auf den Datensatz anzuwenden, wählen Sie Regeln anwenden aus.

    Dialogfeld „Tag-basierte Regeln“: Schaltfläche „Regeln anwenden“ für tagbasierte Sicherheit auf Zeilenebene.
  11. Auf der Seite Tag-basierte Sicherheit aktivieren? auf der sich öffnenden Seite wählen Sie Anwenden und aktivieren aus.

    Die tagbasierten Regeln sind jetzt aktiv. Auf der Seite Sicherheit auf Zeilenebene einrichten wird ein Schalter angezeigt, mit dem Sie Tag-Regeln für den Datensatz ein- und ausschalten können.

    Um alle tagbasierten Regeln für den Datensatz zu deaktivieren, schalten Sie den Schalter Tag-basierte Regeln aus und geben Sie dann „Bestätigen“ in das angezeigte Textfeld ein.

    Wenn Sie tagbasierte Regeln auf EIN setzen, können Sie die Sicherheit auf Zeilenebene einrichten.

    Auf der Seite Datensätze wird in der Datensatzzeile ein Schlosssymbol angezeigt, das darauf hinweist, dass Tag-Regeln aktiviert sind.

    Sie können jetzt Tag-Regeln verwenden, um Tag-Werte zur Laufzeit festzulegen, wie unter Schritt 2: Weisen Sie RLS-Tags zur Laufzeit Werte zu beschrieben. Die Regeln wirken sich nur auf QuickSight Leser aus, wenn sie aktiv sind.

    Wichtig

    Nachdem Tags für den Datensatz zugewiesen und aktiviert wurden, stellen Sie sicher, dass Sie QuickSight Autoren die Berechtigung erteilen, beim Erstellen eines Dashboards alle Daten im Datensatz anzuzeigen.

    Um QuickSight Autoren die Berechtigung zum Anzeigen von Daten im Datensatz zu erteilen, erstellen Sie eine Berechtigungsdatei oder Abfrage, die als Datensatzregeln verwendet werden soll. Weitere Informationen finden Sie unter Erstellen von Dataset-Regeln für die Sicherheit auf Zeilenebene.

Nachdem Sie eine tagbasierte Regel erstellt haben, wird eine neue Tabelle Regeln verwalten angezeigt, die zeigt, wie Ihre tagbasierten Regeln zueinander in Beziehung stehen. Um Änderungen an den in der Tabelle Regeln verwalten aufgelisteten Regeln vorzunehmen, wählen Sie das Stiftsymbol, das der Regel folgt. Fügen Sie dann Tags hinzu oder entfernen Sie sie und wählen Sie Aktualisieren. Um Ihre aktualisierte Regel auf den Datensatz anzuwenden, wählen Sie Anwenden aus.

Tabelle Regel verwalten mit den Symbolen Bearbeiten und Löschen.

(Optional) Fügen Sie die ODER-Bedingung zu RLS-Tags hinzu

Sie können Ihren tagbasierten Regeln auch die OR-Bedingung hinzufügen, um die Art und Weise, wie Daten Ihren QuickSight Kontobenutzern angezeigt werden, weiter anzupassen. Wenn Sie die OR-Bedingung mit Ihren Tag-basierten Regeln verwenden, QuickSight werden Visualisierungen in angezeigt, wenn mindestens ein in der Regel definiertes Tag gültig ist.

So fügen Sie die ODER-Bedingung zu Ihren tagbasierten Regeln hinzu
  1. Wählen Sie in der Tabelle Regeln verwalten die Option ODER-Bedingung hinzufügen aus.

    Dialogfeld „Tags verwalten“: Schaltfläche „ODER-Bedingung hinzufügen“.
  2. Wählen Sie in der daraufhin angezeigten Dropdownliste Tag auswählen das Tag aus, für das Sie eine ODER-Bedingung erstellen möchten. Sie können der Tabelle Regeln verwalten bis zu 50 ODER-Bedingungen hinzufügen. Sie können einer einzelnen Spalte in einem Datensatz mehrere Tags hinzufügen, aber mindestens ein Spalten-Tag muss in einer Regel enthalten sein.

    Wählen Sie die auf die ODER-Bedingung anzuwendenden Tags aus.
  3. Wählen Sie Aktualisieren, um die Bedingung zu Ihrer Regel hinzuzufügen, und wählen Sie dann Anwenden, um die aktualisierte Regel auf Ihren Datensatz anzuwenden.

    Dialogfeld „Regeln verwalten“ mit RLS-Regeln und der Schaltfläche „Anwenden“.

Fügen Sie mithilfe der API RLS-Tags zu einem Datensatz hinzu

Alternativ können Sie die tagbasierte Sicherheit auf Zeilenebene für Ihren Datensatz konfigurieren und aktivieren, indem Sie die CreateDataSet- oder UpdateDataSet-API-Operation aufrufen. Im folgenden Beispiel wird es erläutert.

CreateDataSet

Im Folgenden finden Sie ein Beispiel für die Erstellung eines Datensatzes, der RLS mit Tags verwendet. Es geht von dem zuvor beschriebenen Szenario des Logistikunternehmens aus. Die Tags sind im row-level-permission-tag-configuration-Element definiert. Die Tags sind in den Spalten definiert, für die Sie die Daten sichern möchten. Weitere Informationen zu diesem optionalen Element finden Sie unter RowLevelPermissionTagConfiguration in der Amazon QuickSight -API-Referenz .

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

Die Tags in diesem Beispiel sind im TagRules-Teil des Elements definiert. In diesem Beispiel werden zwei Tags auf der Grundlage von zwei Spalten definiert:

  • Der tag_retailer_id-Tag-Schlüssel ist für die retailer_id-Spalte definiert. In diesem Fall wird für das Logistikunternehmen die Sicherheit auf Zeilenebene auf der Grundlage des Einzelhändlers festgelegt, der auf die Anwendung zugreift.

  • Der tag_role-Tag-Schlüssel ist für die role-Spalte definiert. In diesem Fall wird für das Logistikunternehmen eine zusätzliche Sicherheitsebene auf Zeilenebene eingerichtet, die auf der Rolle des Benutzers basiert, der von einem bestimmten Einzelhändler aus auf Ihre Anwendung zugreift. Ein Beispiel ist store_supervisor oder manager.

Für jedes Tag können Sie TagMultiValueDelimiter und MatchAllValue definieren. Sie sind optional.

  • TagMultiValueDelimiter – Bei dieser Option kann es sich um eine beliebige Zeichenfolge handeln, mit der Sie die Werte abgrenzen möchten, wenn Sie sie zur Laufzeit übergeben. Der Wert kann bis zu 10 Zeichen lang sein. In diesem Fall wird ein Komma als Trennzeichen verwendet.

  • MatchAllValue – Bei dieser Option kann es sich um ein beliebiges Zeichen handeln, das Sie verwenden möchten, wenn Sie nach allen Werten in dieser Spalte im Datensatz filtern möchten. Anstatt die Werte einzeln aufzulisten, können Sie das Zeichen verwenden. Falls angegeben, kann dieser Wert mindestens ein Zeichen oder höchstens 256 Zeichen lang sein. In diesem Fall wird ein Sternchen als Match-All-Wert verwendet.

Wenn Sie die Tags für Datensatzspalten konfigurieren, schalten Sie sie mithilfe der obligatorischen Eigenschaft Status ein oder aus. Verwenden Sie den Wert ENABLED für diese Eigenschaft, um die Tag-Regeln zu aktivieren. Wenn Sie Tag-Regeln aktivieren, können Sie sie verwenden, um Tag-Werte zur Laufzeit festzulegen, wie unter Schritt 2: Weisen Sie RLS-Tags zur Laufzeit Werte zu beschrieben.

Im Folgenden sehen Sie ein Beispiel für die Antwortdefinition.

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

UpdateDataSet

Sie können die UpdateDataSet-API-Operation verwenden, um RLS-Tags für einen vorhandenen Datensatz hinzuzufügen oder zu aktualisieren.

Im Folgenden finden Sie ein Beispiel für die Aktualisierung eines Datensatzes mit RLS-Tags. Es geht von dem zuvor beschriebenen Szenario des Logistikunternehmens aus.

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

Im Folgenden sehen Sie ein Beispiel für die Antwortdefinition.

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

Nachdem Tags für den Datensatz zugewiesen und aktiviert wurden, stellen Sie sicher, dass Sie QuickSight Autoren die Berechtigung erteilen, beim Erstellen eines Dashboards alle Daten im Datensatz anzuzeigen.

Um QuickSight Autoren die Berechtigung zum Anzeigen von Daten im Datensatz zu erteilen, erstellen Sie eine Berechtigungsdatei oder Abfrage, die als Datensatzregeln verwendet werden soll. Weitere Informationen finden Sie unter Erstellen von Dataset-Regeln für die Sicherheit auf Zeilenebene.

Weitere Informationen zum -RowLevelPermissionTagConfigurationElement finden Sie unter RowLevelPermissionTagConfiguration in der Amazon QuickSight -API-Referenz.

Schritt 2: Weisen Sie RLS-Tags zur Laufzeit Werte zu

Sie können Tags für RLS nur zum anonymen Einbetten verwenden. Mithilfe der GenerateEmbedUrlForAnonymousUser-API-Operation können Sie Werte für Tags festlegen.

Das folgende Beispiel zeigt, wie RLS-Tags, die im vorherigen Schritt im Datensatz definiert wurden, Werte zugewiesen werden.

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

Im Folgenden sehen Sie ein Beispiel für die Antwortdefinition.

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

RLS-Unterstützung ohne Registrierung von Benutzern in QuickSight wird nur in der GenerateEmbedUrlForAnonymousUser-API-Operation unterstützt. In dieser Operation können Sie unter SessionTags die Werte für die Tags definieren, die den Datensatzspalten zugeordnet sind.

In diesem Fall werden die folgenden Zuweisungen definiert:

  • Die Werte West, Central und South werden dem tag_retailer_id-Tag zur Laufzeit zugewiesen. Für das Trennzeichen, das in TagMultipleValueDelimiter im Datensatz definiert wurde, wird ein Komma verwendet. Um Aufrufwerte in der Spalte zu verwenden, können Sie den Wert auf * setzen, der bei der Erstellung des Tags als MatchAllValue definiert wurde.

  • Der Wert shift_manager wird dem tag_role-Tag zugewiesen.

Der Benutzer, der die generierte URL verwendet, kann nur die Zeilen anzeigen, die den shift_manager-Wert in der role-Spalte enthalten. Dieser Benutzer kann nur den Wert West, Central oder South in der retailer_id-Spalte sehen.

Weitere Informationen zum Einbetten von Dashboards für anonyme Benutzer mithilfe der GenerateEmbedUrlForAnonymousUser-API-Operation finden Sie unter Einbetten von QuickSight Daten-Dashboards für anonyme (nicht registrierte) Benutzeroder GenerateEmbedUrlForAnonymousUser in der Amazon QuickSight -API-Referenz.