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. Wie kann ich das machen?

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 einem Konto (Konto A) eine neue Vorlage aus einer vorhandenen Analyse.
  2. Erstellen Sie in einem anderen Konto (Konto B) einen Datensatz mit demselben Schema in Konto A.
  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 der AWS Command Line Interface (AWS CLI) beschrieben. Wenn Sie beim Ausführen von AWS-CLI-Befehlen Fehler erhalten, stellen Sie sicher, dass Sie die neueste AWS-CLI-Version verwenden.

Behebung

Erstellen Sie in Konto A eine Vorlage 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.

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

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

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

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

  1. Bestätigen Sie, dass die Vorlage erstellt wurde, indem Sie den AWS-CLI-Befehl describe-template ausführen:
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.

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

  2. 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 Stammkonto 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 Sie einen Datensatz in Konto B und verwenden Sie dasselbe Schema wie Konto A

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

  1. Erstellen Sie den Datensatz in Konto B.

Verwenden der Amazon QuickSight-Konsole

Siehe Datensätze erstellen.

Verwenden der AWS-CLI

Verwenden Sie den AWS-CLI-Befehl create-data-set:

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 den Namespace durch Ihren Namespace und den Benutzer_name durch den Namen des QuickSight-Benutzers. Das vorherige Beispiel bezieht sich auf einen SPICE-Datensatz.

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

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

Erstellen Sie ein Dashboard 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.

  1. 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 Sie eine 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"
   }
 ]
}
  1. 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"
    }
}
  1. 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 2 Jahren