Direkt zum Inhalt

Wie verwende ich Vorlagen, um den kontoübergreifenden Zugriff in QuickSight einzurichten?

Lesedauer: 7 Minute
0

Ich möchte meine Datensätze und mein Dashboard mit einem anderen AWS-Konto in Amazon QuickSight teilen.

Kurzbeschreibung

Mithilfe von Vorlagen kannst du kontoübergreifenden Zugriff einrichten, um die QuickSight-Analyse und das Dashboard für andere AWS-Konten und AWS-Regionen freizugeben. Du kannst die Vorlagen auch verwenden, um Dashboards oder andere Vorlagen zu erstellen.

Gehe wie folgt vor, um kontoübergreifenden Zugriff in QuickSight bereitzustellen:

  1. Erstelle in Konto A eine neue Vorlage aus einer vorhandenen Analyse.
  2. Verwende in Konto B dasselbe Schema wie in Konto A, um einen Datensatz zu erstellen.
  3. Erstelle ein Dashboard in Konto B anhand der Vorlage in Konto A.

(Optional) Erstelle in Konto B eine Vorlage aus der vorhandenen Vorlage in Konto A. Verwende diese Option, wenn du Ressourcen von einem Konto auf ein anderes verschieben und die Ressourcen aus dem Quellkonto entfernen möchtest.

Hinweis: In diesem Artikel werden die Schritte für den kontoübergreifenden Zugriff mithilfe der AWS Command Line Interface (AWS CLI) beschrieben. Wenn du beim Ausführen von AWS-CLI-Befehlen Fehlermeldungen erhältst, findest du weitere Informationen unter Beheben von AWS-CLI-Fehlern. Stelle außerdem sicher, dass du die neueste Version der AWS CLI verwendest.

Behebung

Erstellen einer Vorlage in Konto A aus einer vorhandenen Analyse in demselben Konto

  1. Verwende den AWS-CLI-Befehl list-dashboards, um die Dashboards aufzulisten, die in deinem Konto verfügbar sind:

    aws quicksight list-dashboards --aws-account-id account_a_id

    Hinweis: Ersetze account_a_id durch die ID von Konto A.

  2. Notiere dir die ID des Dashboards, das du teilen möchtest.

  3. Verwende den AWS-CLI-Befehl describe-dashboard, um Details aus dem Dashboard abzurufen:

    aws quicksight describe-dashboard --aws-account-id account_a_id --dashboard-id dashboard_id

    Hinweis: Ersetze dashboard_id durch die ID deines Dashboards.

  4. Erstelle die JSON-Datei der Vorlage und füge die ARNs der Analyse und des Datensatzes hinzu:

    { "SourceEntity": {
       "SourceAnalysis": {
         "Arn": "arn:aws:quicksight:aws_region:account_a_id:analysis/analysis_id",
         "DataSetReferences": [
           {
             "DataSetPlaceholder": "dataset_name",
             "DataSetArn": "arn:aws:quicksight:aws_region:account_a_id:dataset/dataset_id"
           }
         ]
       }
     },
     "VersionDescription": "1"
    }

    Hinweis: Ersetze aws_region durch deine AWS-Region, analysis_id durch die ID deiner Analyse, dataset_name durch den Datensatznamen und dataset_id durch die ID deines Datensatzes.

  5. Erstelle eine Vorlage in derselben Region wie die Analyse:

    aws quicksight create-template --aws-account-id account_a_id --template-id template_name --cli-input-json file://template.json --profile default

    Hinweis: Ersetze template_name durch den Namen der Vorlage für Konto A.

  6. Führe den AWS-CLI-Befehl describe-template aus, um dich zu vergewissern, dass die Vorlage erstellt wurde:

    aws quicksight describe-template --aws-account-id account_a_id --template-id template_id

    Hinweis: Ersetze template_id durch die ID deiner Vorlage. Vergewissere dich, dass die Antwort auf den Befehl describe-template den Status CREATION_SUCCESSFUL enthält.

  7. Notiere dir den ARN der Vorlage aus der Ausgabe, um ihn in einem späteren Schritt zu verwenden.

  8. Verwende den AWS-CLI-Befehl update-template-permissions, um Konto B kontoübergreifende LESE-Berechtigungen von der Vorlage in Konto A aus zu gewähren:

    aws quicksight update-template-permissions --aws-account-id account_a_id --template-id template_id --grant-permissions file://TemplatePermission.json

    Beispiel für eine JSON-Datei mit Berechtigungen:

    [  {
        "Principal": "arn:aws:iam::account_b_id:root",
        "Actions": [
          "quicksight:UpdateTemplatePermissions",
          "quicksight:DescribeTemplate"
        ]
      }
    ]

    Hinweis: Ersetze account_b_id durch die ID von Konto B. Um die Vorlage mit mehreren Konten zu teilen, gib das Root-Konto aller Konten als Prinzipal an. Du kannst die Vorlage nur mit dem Root-Konto teilen. Das Prinzipal-Element unterstützt keine Rollen von AWS Identity and Access Management (IAM).

Erstellen eines Datensatzes in Konto B mit demselben Schema wie Konto A

Du kannst ein Dashboard nicht direkt aus einem Datensatz erstellen, der sich in einem anderen Konto wie z. B. Konto A befindet. Stattdessen musst du denselben Datensatz in dem Konto erstellen, in dem du das Dashboard erstellen möchtest, z. B. Konto B. Erstelle dann das Dashboard aus dem neu erstellten Datensatz.

  1. Verwende entweder die Amazon-QuickSight-Konsole oder die AWS CLI, um den Datensatz in Konto B zu erstellen.

    Verwendung der Amazon-QuickSight-Konsole

    Informationen zur Verwendung der Amazon-QuickSight-Konsole zum Erstellen des Datensatzes findest du unter Datensätze erstellen.

    Verwendung der AWS CLI

    Verwende den AWS-CLI-Befehl create-data-set, um den Datensatz zu erstellen:

    aws quicksight create-data-set --aws-account-id account_b_id --dataset-id dataset_name --cli-input-json file://datasetB.json

    Beispiel für eine JSON-Datei für einen Datensatz:

    {  "Name": "dataset_name",
      "PhysicalTableMap": {
        "Physicaltablename": {
          "RelationalTable": {
             "DataSourceArn": "arn:aws:quicksight:aws_region:account_b_id:datasource/datasource_id",
             "Schema": "schema_name",
             "Name": "table_name",
             "InputColumns": [
               {
                 "Name": "column_name",
                 "Type": "STRING"|"INTEGER"|"DECIMAL"|"DATETIME"|"BIT"|"BOOLEAN"|"JSON"
               }
            ]
          }
        }
      },
     "LogicalTableMap": {
       "Logicaltablename": {
         "Alias": "any_alias",
         "DataTransforms": [
           {
             "ProjectOperation": {
               "ProjectedColumns": [
                 "column_name", "column_name"
             ]
           }
         }
       ],
       "Source": {
         "PhysicalTableId": "Physicaltablename"
       }
      }
     },
     "ImportMode": "SPICE",
     "Permissions": [
       {
         "Principal": "arn:aws:quicksight:aws_region:account_b_id:user/namespace/user_name",
         "Actions": [
           "quicksight:UpdateDataSetPermissions",
           "quicksight:DescribeDataSet",
           "quicksight:DescribeDataSetPermissions",
           "quicksight:PassDataSet",
           "quicksight:DescribeIngestion",
           "quicksight:ListIngestions",
           "quicksight:UpdateDataSet",
           "quicksight:DeleteDataSet",
           "quicksight:CreateIngestion",
           "quicksight:CancelIngestion"
        ]
      }
     ]
    }

    Hinweis: Ersetze namespace durch deinen Namespace und user_name durch den Namen des QuickSight-Benutzers. Das obige Beispiel bezieht sich auf einen SPICE-Datensatz.

  2. Vergewissere dich, dass der Datensatz erfolgreich erstellt wurde:

    aws quicksight describe-data-set --aws-account-id account_b_id --data-set-id dataset_id

    Vergewissere dich, dass die Antwort für den Befehl describe-data-set den Statuscode 201 enthält. Der Statuscode 201 bedeutet, dass der Datensatz erfolgreich erstellt wurde.

  3. Notiere dir den ARN des Datensatzes aus der Ausgabe, um ihn in einem späteren Schritt zu verwenden.

Erstellen eines Dashboards in Konto B anhand der Vorlage in Konto A

  1. Führe den folgenden Befehl aus und gib den ARN der Vorlage an:

    aws quicksight create-dashboard --aws-account-id account_b_id --dashboard-id dashboard_id --name dashboard_name --source-entity file://DashboardFromTemplate.json

    Hinweis: Du kannst das Dashboard in einer anderen Region erstellen, indem du den Parameter --region target_region hinzufügst. Ersetze target_region durch die Region, in der du die Vorlage erstellen möchtest.

    Beispiel für eine Dashboard-JSON-Datei für Konto B:

    { "SourceTemplate": {
       "DataSetReferences": [
         {
           "DataSetPlaceholder": "dataset_name",
           "DataSetArn": "arn:aws:quicksight:aws_region:account_b_id:dataset/dataset_id"
         }
       ],
       "Arn": "arn:aws:quicksight:aws_region:account_a_id:template/template_id"
     }
    }

    In der vorherigen Dashboard-JSON-Datei:

  • Für DataSetPlaceholder musst du denselben Datensatznamen aus der Vorlage von Konto A verwenden.
  • Für DataSetArn kannst du den ARN des Datensatzes verwenden, den du in Konto B erstellt hast.
  • Für Arn kannst du den ARN der Vorlage verwenden, die du in Konto A erstellt hast.
  1. Vergewissere dich, dass das Dashboard erfolgreich erstellt wurde:

    aws quicksight describe-dashboard --aws-account-id account_b_id --dashboard-id dashboard_id

    Hinweis: Vergewissere dich, dass die Antwort für den Befehl describe-dashboard den Statuscode 200 enthält. Der Statuscode 200 bedeutet, dass das Dashboard existiert.

  2. Verwende den AWS-CLI-Befehl update-dashboard-permissions, um QuickSight-Benutzern die entsprechenden Berechtigungen zu gewähren:

    aws quicksight update-dashboard-permissions --aws-account-id account_b_id --dashboard-id dashboard_id --grant-permissions file://DashboardPermission.json

    Beispiel für eine Dashboard-JSON-Datei:

    [  {
        "Principal": "arn:aws:quicksight:aws_region:account_b_id:user/namespace/quicksight_user_name",
        "Actions": [
          "quicksight:DescribeDashboard",
          "quicksight:ListDashboardVersions",
          "quicksight:UpdateDashboardPermissions",
          "quicksight:QueryDashboard",
          "quicksight:UpdateDashboard",
          "quicksight:DeleteDashboard",
          "quicksight:DescribeDashboardPermissions",
          "quicksight:UpdateDashboardPublishedVersion"
        ]
      }
    ]

    In der vorherigen Beispiel-Dashboard-JSON-Datei wird dem QuickSight-Benutzer Miteigentümerzugriff gewährt. Gib die folgenden Berechtigungen an, um Benutzern nur LESE-Zugriff zu gewähren:

    "quicksight:DescribeDashboard", "quicksight:ListDashboardVersions",
     "quicksight:QueryDashboard"

(Optional) Erstellen einer Vorlage in Konto B aus der vorhandenen Vorlage in Konto A

  1. Vergewissere dich, dass der/die IAM-Benutzer:in oder die IAM-Rolle über die entsprechenden Berechtigungen verfügt. Du musst über die folgenden Berechtigungen verfügen, um auf eine kontoübergreifende Vorlage in QuickSight zugreifen zu können:

    { "Version": "2012-10-17",
     "Statement": [
       {
         "Effect": "Allow",
         "Resource": "arn:aws:quicksight:aws_region:account_a_id:template/template_id",
         "Action": "quicksight:DescribeTemplate"
       },
       {
         "Effect": "Allow",
         "Resource": "*",
         "Action": "quicksight:CreateTemplate"
       }
     ]
    }
  2. Erstelle anhand der Vorlage in Konto A eine neue Vorlage in Konto B:

    aws quicksight create-template --aws-account-id account_b_id --template-id template_name --source-entity file://templateB.json

    Hinweis: Ersetze template_name durch den Namen der Vorlage für Konto B. Um eine Vorlage in einer anderen Region zu erstellen, füge --region target_region hinzu.

    Beispiel für eine JSON-Datei für Konto B:

    {   "SourceTemplate": {
        "Arn": "arn:aws:quicksight:region:account_a_id:template/template_id"
        }
    }
  3. Vergewissere dich, dass die Vorlage erstellt wurde:

    aws quicksight describe-template --aws-account-id account_b_id --template-id template_id

    **Hinweis:**Vergewissere dich, dass die Antwort auf den Befehl describe-template den Status CREATION_SUCCESSFUL enthält.

Ähnliche Informationen

Amazon QuickSight zwischen AWS-Konten migrieren