Come posso configurare l'accesso tra più account utilizzando i modelli in Amazon QuickSight?

7 minuti di lettura
0

Desidero condividere i miei set di dati e la mia dashboard con un altro account AWS in Amazon QuickSight. Come posso farlo?

Breve descrizione

Puoi utilizzare i modelli per creare accessi tra più account e condividere l'analisi e la dashboard di Amazon QuickSight su altri account AWS e regioni AWS. Puoi anche utilizzare i modelli per creare dashboard o altri modelli.

Completa i seguenti passaggi per fornire l'accesso tra più account in QuickSight:

  1. In un account (Account A), crea un nuovo modello da un'analisi esistente.
  2. In un altro account (Account B), crea un set di dati utilizzando lo stesso schema dell'Account A.
  3. Crea una dashboard nell'Account B dal modello nell'Account A.

(Facoltativo) Crea un modello nell'Account B dal modello esistente nell'Account A. Usa questa opzione se desideri spostare risorse da un account all'altro e rimuovere le risorse dall'account di origine.

Nota: questo articolo descrive i passaggi per l'accesso tra più account utilizzando l'interfaccia a riga di comando di AWS (AWS CLI). In caso di errori durante l'esecuzione dei comandi AWS CLI, assicurati di utilizzare la versione più recente di AWC CLI.

Risoluzione

Crea un modello nell'account A da un'analisi esistente nello stesso account

1.    Usa il comando AWS CLI list-dashboards per elencare i dashboard disponibili nel tuo account:

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

Nota: sostituisci l'account\ _a\ _id con l'ID dell'account A.

2.    Annota l'ID della dashboard che desideri condividere.

3.    Usa il comando AWS CLI describe-dashboard per ottenere i dettagli dalla dashboard:

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

Nota: sostituisci dashboard\ _id con l'ID della tua dashboard.

4.    Crea il file JSON del modello e includi gli ARN dell'analisi e del set di dati:

{
 "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"
}

Nota: sostituisci aws\ _region con la tua regione AWS, analysis\ _id con l'ID della tua analisi, dataset\ _name con il nome del set di dati e dataset\ _id con l'ID del tuo set di dati.

5.    Crea un modello nella stessa regione dell'analisi:

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

Nota: sostituisci template\ _name con il nome del modello per l’Account A.

6.    Verifica che il modello sia stato creato eseguendo il comando AWS CLI describe-template:

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

Nota: sostituisci template\ _id con l'ID del tuo modello. Verifica che la risposta per il comando describe-template contenga lo stato CREATION\ _SUCCESSFUL.

7.    Annota l'ARN del modello dall'output da utilizzare in un passaggio successivo.

8.    Usa il comando AWS CLI update-template-permissions per concedere l'autorizzazione di READ tra più account dal modello nell'account A all'account B:

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

Esempio di file JSON di autorizzazione:

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

Nota: sostituisci l'account\ _b\ _id con l'ID dell'account B. Per condividere il modello con più account, includi la radice di tutti gli account come Principal (Principale). Puoi condividere il modello solo con l'account root. L'elemento Principal (Principale) non supporta i ruoli di AWS Identity and Access Management (IAM).

Crea un set di dati nell'Account B utilizzando lo stesso schema dell'Account A

Non puoi creare una dashboard direttamente da un set di dati che si trova in un altro account (Account A). È invece necessario creare lo stesso set di dati nell'account in cui desideri creare la dashboard (Account B). Quindi, crea la dashboard dal set di dati appena creato.

1.    Crea il set di dati nell'Account B.

Utilizzo della console Amazon QuickSight

Consulta Creazione del set di dati.

Utilizzo dell’interfaccia AWS CLI

Usa il comando AWS CLI create-data-set:

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

Esempio di file JSON del set di dati:

{
  "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"
    ]
  }
 ]
}

Nota: sostituisci namespace con il tuo namespace e user\ _name con il nome dell'utente QuickSight. L'esempio precedente si riferisce a un set di dati SPICE.

2.    Verifica che il set di dati sia stato creato correttamente:

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

Verifica che la risposta per il comando describe-data-set contenga un codice di stato 201. Il codice di stato 201 indica che il set di dati è stato creato correttamente.

3.    Annota l'ARN del set di dati dall'output da utilizzare in un passaggio successivo.

Crea una dashboard nell'Account B dal modello nell'Account A

1.    Esegui il comando seguente e includi l'ARN del modello:

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

Nota: puoi creare la dashboard in una regione diversa aggiungendo il parametro --region target_region. Sostituisci target\ _region con la regione in cui desideri creare il modello.

Esempio di file JSON della dashboard per l'Account 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"
 }
}

Nel file JSON della dashboard precedente:

  • Per DataSetPlaceholder, è necessario utilizzare lo stesso nome del set di dati del modello dell'Account A.
  • Per DataSetArn, puoi utilizzare l'ARN del set di dati creato nell'Account B.
  • Per Arn, puoi utilizzare l'ARN del modello che hai creato nell'Account A.

2.    Verifica che la dashboard sia stata creata correttamente:

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

Nota: verifica che la risposta per il comando describe-dashboard contenga il codice di stato 200. Il codice di stato 200 indica che la dashboard esiste.

3.    Usa il comando AWS CLI update-dashboard-permissions per concedere le autorizzazioni appropriate agli utenti di QuickSight:

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

Esempio di file JSON della dashboard:

[
  {
    "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"
    ]
  }
]

nel file JSON della dashboard di esempio precedente, all'utente QuickSight viene concesso l'accesso come comproprietario.

Per fornire l'accesso in sola lettura agli utenti, specifica le seguenti autorizzazioni:

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

(Facoltativo) Crea un modello nell'Account B dal modello esistente nell'Account A

1.    Verifica che il tuo utente o ruolo IAM disponga delle autorizzazioni appropriate. È necessario disporre delle seguenti autorizzazioni per accedere a un modello tra più account in QuickSight:

{
 "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.    Crea un nuovo modello nell'Account B dal modello nell'Account A:

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

Nota: sostituisci template\ _name con il nome del modello per l’Account B. Per creare un modello in un'altra regione, aggiungi --region target\ _region.

File JSON di esempio per l'Account B:

{
   "SourceTemplate": {
    "Arn": "arn:aws:quicksight:region:account_a_id:template/template_id"
    }
}

3.    Verifica che il modello sia stato creato:

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

Nota: conferma che la risposta per il comando describe-template contenga lo stato CREATION_SUCCESSFUL.


Informazioni correlate

Esegui la migrazione di Amazon QuickSight tra gli account AWS

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa