Wie richte ich den kontoübergreifenden Zugriff mithilfe von Vorlagen in Amazon QuickSight ein?

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 können Sie kontoübergreifenden Zugriff einrichten, um Ihre Amazon QuickSight-Analyse und Ihr Dashboard mit anderen AWS-Konten und AWS-Regionen zu teilen. Sie können die Vorlagen auch verwenden, um Dashboards oder andere Vorlagen zu erstellen.

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

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

(Optional) Erstellen Sie in Konto B aus der vorhandenen Vorlage in Konto A eine Vorlage. Verwenden Sie diese Option, wenn Sie Ressourcen von einem Konto auf ein anderes verschieben und die Ressourcen aus dem Quellkonto entfernen möchten.

Hinweis: In diesem Artikel werden die Schritte für den kontoübergreifenden Zugriff mithilfe des AWS Command Line Interface (AWS CLI) beschrieben. Wenn Sie beim Ausführen von Befehlen in AWS CLI Fehlermeldungen erhalten, finden Sie weitere Informationen unter Beheben von AWS-CLI-Fehlern. Stellen Sie außerdem sicher, dass Sie die neueste Version von AWS CLI verwenden.

Behebung

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

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

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

    Hinweis: Ersetzen Sie account_a_id durch die ID von Konto A.

  2. Notieren Sie sich die ID des Dashboards, das Sie teilen möchten.

  3. Verwenden Sie 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: Ersetzen Sie dashboard_id durch die ID Ihres Dashboards.

  4. Erstellen Sie die JSON-Datei der Vorlage und fügen Sie 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: Ersetzen Sie aws_region durch Ihre AWS-Region, analysis_id durch die ID Ihrer Analyse, dataset_name durch den Datensatznamen und dataset_id durch die ID Ihres Datensatzes.

  5. Erstellen Sie eine Vorlage in derselben Region wie Ihre Analyse:

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

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

  6. Führen Sie den AWS-CLI-Befehl describe-template aus, um zu bestätigen, dass die Vorlage erstellt wurde:

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

    **Hinweis:**Ersetzen Sie template_id durch die ID Ihrer Vorlage. Vergewissern Sie sich, dass die Antwort auf den Befehl describe-template den Status CREATION_SUCCESSFUL enthält.

  7. Notieren Sie sich den ARN der Vorlage aus der Ausgabe, um ihn in einem späteren Schritt zu verwenden.

  8. Verwenden Sie 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:**Ersetzen Sie Konto_b_id durch die ID von Konto B. Um die Vorlage mit mehreren Konten zu teilen, geben Sie das Root-Konto aller Konten als Prinzipal an. Sie können 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

Sie können ein Dashboard nicht direkt aus einem Datensatz erstellen, der sich in einem anderen Konto wie Konto A befindet. Stattdessen müssen Sie denselben Datensatz in dem Konto erstellen, in dem Sie das Dashboard erstellen möchten, z. B. Konto B. Erstellen Sie dann das Dashboard aus dem neu erstellten Datensatz.

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

    Die Amazon-QuickSight-Konsole verwenden

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

    Die AWS CLI verwenden

    Verwenden Sie 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: Ersetzen Sie namespace durch Ihren Namespace und user_name durch den Namen des QuickSight-Benutzers. Das obige Beispiel bezieht sich auf einen SPICE-Datensatz.

  2. Bestätigen Sie, dass der Datensatz erfolgreich erstellt wurde:

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

    Bestätigen Sie, 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. Notieren Sie sich 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ühren Sie den folgenden Befehl aus und geben Sie 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: Sie können das Dashboard in einer anderen Region erstellen, indem Sie den Parameter --region target_region hinzufügen. Ersetzen Sie target_region durch die Region, in der Sie die Vorlage erstellen möchten.

    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 müssen Sie denselben Datensatznamen aus der Vorlage von Konto A verwenden.
  • Für DataSetArn können Sie den ARN des Datensatzes verwenden, den Sie in Konto B erstellt haben.
  • Für Arn können Sie den ARN der Vorlage verwenden, die Sie in Konto A erstellt haben.
  1. Bestätigen Sie, dass das Dashboard erfolgreich erstellt wurde:

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

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

  2. Verwenden Sie 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. Um Benutzern nur LESE-Zugriff zu gewähren, geben Sie die folgenden Berechtigungen an:

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

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

  1. Vergewissern Sie sich, dass Ihr IAM-Benutzer oder Ihre IAM-Rolle über die entsprechenden Berechtigungen verfügt. Sie müssen ü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. Erstellen Sie eine neue Vorlage in Konto B anhand der Vorlage in Konto A:

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

    **Hinweis:**Ersetzen Sie template_name durch den Namen der Vorlage für Konto B. Um eine Vorlage in einer anderen Region zu erstellen, fügen Sie --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. Bestätigen Sie, dass die Vorlage erstellt wurde:

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

    **Hinweis:**Vergewissern Sie sich, dass die Antwort auf den Befehl describe-template den Status CREATION_SUCCESSFUL enthält.

Verwandte Informationen

Amazon QuickSight zwischen AWS-Konten migrieren

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 8 Monaten