Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esecuzione di query come IAM ruolo in Amazon QuickSight
Puoi migliorare la sicurezza dei dati utilizzando policy di accesso granulari anziché autorizzazioni più ampie per le origini dati connesse ad Amazon Athena, Amazon Redshift o Amazon S3. Inizi creando un ruolo AWS Identity and Access Management (IAM) con autorizzazioni da attivare quando una persona o un uomo avvia una query. API Quindi, un QuickSight amministratore Amazon o uno sviluppatore assegna il IAM ruolo a un'origine dati Athena o Amazon S3. Con questo ruolo, qualsiasi persona o persona API che esegue la query dispone delle autorizzazioni esatte necessarie per eseguire la query.
Ecco alcuni aspetti da considerare prima di implementare ruoli run-as per migliorare la sicurezza dei dati:
-
Spiega in che modo la sicurezza aggiuntiva funziona a vostro vantaggio.
-
Rivolgiti all' QuickSight amministratore per scoprire se l'aggiunta di ruoli alle fonti di dati ti aiuta a soddisfare meglio i tuoi obiettivi o requisiti di sicurezza.
-
Chiedi se questo tipo di sicurezza, per il numero di origini dati e di persone e applicazioni coinvolte, può essere documentato e gestito in modo fattibile dal tuo team. In caso contrario, chi si occuperà di quella parte del lavoro?
-
In un'organizzazione strutturata, individua le parti interessate in team paralleli per i settori operativi, sviluppo e supporto IT. Chiedi la loro esperienza, i loro consigli e la loro disponibilità a sostenere il vostro piano.
-
Prima di lanciare il progetto, prendi in considerazione la possibilità di fare un proof of concept che coinvolga le persone che hanno bisogno di accedere ai dati.
Le seguenti regole si applicano all'utilizzo dei ruoli run-as con Athena, Amazon Redshift e Amazon S3:
-
A ogni fonte di dati può essere associata una sola fonte di dati RoleArn. I consumer dell'origine dati, che in genere accedono a set di dati ed elementi visivi, possono generare molti tipi diversi di query. Il ruolo pone dei limiti tra le query che funzionano e quelle che non funzionano.
-
ARNDeve corrispondere a un IAM ruolo Account AWS uguale all' QuickSight istanza che lo utilizza.
-
Il IAM ruolo deve avere un rapporto di fiducia che QuickSight consenta di assumerlo.
-
L'identità che QuickSight chiama APIs deve essere autorizzata a passare il ruolo prima di poter aggiornare la
RoleArn
proprietà. Devi solo passare il ruolo durante la creazione o l'aggiornamento del ruoloARN. Le autorizzazioni non saranno rivalutate in seguito. Allo stesso modo, l'autorizzazione non è richiesta quando il ruolo ARN viene omesso. -
Quando il ruolo ARN viene omesso, l'origine dati Athena o Amazon S3 utilizza i ruoli a livello di account e le politiche scope-down.
-
Quando il ruolo ARN è presente, il ruolo a livello di account e le eventuali politiche ridotte vengono entrambi ignorati. Per le origini dati Athena, le autorizzazioni di Lake Formation non vengono ignorate.
-
Per le origini dati Amazon S3, sia il file manifest che i dati specificati dal file manifest devono essere accessibili utilizzando il IAM ruolo.
-
La ARN stringa deve corrispondere a un IAM ruolo esistente Account AWS e al luogo in Regione AWS cui i dati sono localizzati e interrogati.
Quando si QuickSight connette a un altro servizio in AWS, utilizza un IAM ruolo. Per impostazione predefinita, questa versione meno granulare del ruolo viene creata da QuickSight per ogni servizio utilizzato e il ruolo è gestito dagli Account AWS amministratori. Quando aggiungi un IAM ruolo ARN con una politica di autorizzazioni personalizzata, sostituisci il ruolo più ampio delle tue fonti di dati che richiedono una protezione aggiuntiva. Per ulteriori informazioni sulle politiche, consulta Creare una politica gestita dai clienti nella Guida per l'IAMutente.
Esecuzione di query con origini dati Athena
Usa il API per collegarlo ARN all'origine dati Athena. A tale scopo, aggiungi il ruolo ARN nella RoleArnproprietà di AthenaParameters. Per la verifica, puoi vedere il ruolo nella ARN finestra di dialogo Modifica origine dati Athena. Tuttavia, Ruolo ARN è un campo di sola lettura.

Per iniziare, è necessario un IAM ruolo personalizzato, come illustrato nell'esempio seguente.
Tieni presente che il seguente esempio di codice è solo a scopo dimostrativo. Utilizza questo esempio solo in un ambiente di sviluppo e test temporaneo e non in un ambiente di produzione. La policy in questo esempio non protegge alcuna risorsa specifica, che deve essere inclusa in una policy implementabile. Inoltre, anche per lo sviluppo, è necessario aggiungere le informazioni AWS del proprio account.
I comandi seguenti creano un nuovo ruolo semplice e allegano alcune politiche a cui concedono le QuickSight autorizzazioni.
aws iam create-role \ --role-name TestAthenaRoleForQuickSight \ --description "Test Athena Role For QuickSight" \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "quicksight.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
Dopo aver identificato o creato un IAM ruolo da utilizzare con ciascuna fonte di dati, allega le politiche utilizzando il attach-role-policy.
aws iam attach-role-policy \ --role-name TestAthenaRoleForQuickSight \ --policy-arn arn:aws:iam::222222222222:policy/service-role/AWSQuickSightS3Policy1 aws iam attach-role-policy \ --role-name TestAthenaRoleForQuickSight \ --policy-arn arn:aws:iam::aws:policy/service-role/AWSQuicksightAthenaAccess1 aws iam attach-role-policy \ --role-name TestAthenaRoleForQuickSight \ --policy-arn arn:aws:iam::aws:policy/AmazonS3Access1
Dopo aver verificato le autorizzazioni, puoi utilizzare il ruolo nelle fonti di QuickSight dati creando un nuovo ruolo o aggiornando un ruolo esistente. Quando usi questi comandi, aggiorna l' Account AWS ID e abbinalo Regione AWS al tuo.
Ricorda che questi frammenti di codice di esempio non sono destinati agli ambienti di produzione. AWS consiglia vivamente di identificare e utilizzare una serie di politiche con privilegi minimi per i casi di produzione.
aws quicksight create-data-source --aws-account-id 222222222222 \ --region us-east-1 \ --data-source-id "athena-with-custom-role" \ --cli-input-json '{ "Name": "Athena with a custom Role", "Type": "ATHENA", "data sourceParameters": { "AthenaParameters": { "RoleArn": "arn:aws:iam::222222222222:role/TestAthenaRoleForQuickSight" } } }'
Esecuzione di query con origini dati Amazon Redshift
Connetti i tuoi dati Amazon Redshift al ruolo run-as per migliorare la sicurezza dei dati con policy di accesso granulari. Puoi creare un ruolo run-as per sorgenti dati Amazon Redshift che utilizzano una rete pubblica o una connessione. VPC Specifica il tipo di connessione che desideri utilizzare nella finestra di dialogo Modifica origine dati Amazon Redshift. Il ruolo run-as non è supportato per le origini dati Serverless di Amazon Redshift.
L'immagine seguente mostra un'origine dati Amazon Redshift che utilizza il tipo di connessione Rete pubblica.

Per iniziare, è necessario un IAM ruolo personalizzato, come illustrato nell'esempio seguente. I comandi seguenti creano un nuovo ruolo di esempio e allegano politiche a cui concedono le QuickSight autorizzazioni.
aws iam create-role \ --role-name TestRedshiftRoleForQuickSight \ --description "Test Redshift Role For QuickSight" \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "quicksight.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
Dopo aver identificato o creato un IAM ruolo da utilizzare con ciascuna fonte di dati, allega le politiche con unattach-role-policy
. Se l'redshift:GetClusterCredentialsWithIAM
autorizzazione è associata al ruolo che desideri utilizzare, i valori per DatabaseUser
e DatabaseGroups
sono facoltativi.
aws iam attach-role-policy \ --role-name TestRedshiftRoleForQuickSight \ --policy-arn arn:aws:iam:111122223333:policy/service-role/AWSQuickSightRedshiftPolicy aws iam create-policy --policy-name RedshiftGetClusterCredentialsPolicy1 \ --policy-document file://redshift-get-cluster-credentials-policy.json aws iam attach-role-policy \ --role-name TestRedshiftRoleForQuickSight \ --policy-arn arn:aws:iam:111122223333:policy/RedshiftGetClusterCredentialsPolicy1 // redshift-get-cluster-credentials-policy.json { "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftGetClusterCredentialsPolicy", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentials" ], "Resource": [ "*" ] } ] }
L'esempio precedente crea un'origine dati che utilizza i DatabaseGroups
IAM parametri RoleARN
DatabaseUser
, e. Se desideri stabilire la connessione solo tramite il IAM RoleARN
parametro, assegna l'redshift:GetClusterCredentialsWithIAM
autorizzazione al tuo ruolo, mostrato nell'esempio seguente.
aws iam attach-role-policy \ --role-name TestRedshiftRoleForQuickSight \ --policy-arn arn:aws:iam:111122223333:policy/RedshiftGetClusterCredentialsPolicy1 // redshift-get-cluster-credentials-policy.json { "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftGetClusterCredentialsPolicy", "Effect": "Allow", "Action": [ "redshift:GetClusterCredentialsWithIAM" ], "Resource": [ "*" ] } ] }"
Dopo aver verificato le autorizzazioni, puoi utilizzare il ruolo nelle fonti di QuickSight dati creando un nuovo ruolo o aggiornando un ruolo esistente. Quando usi questi comandi, aggiorna l'ID dell' AWS account e la AWS regione in modo che corrispondano ai tuoi.
aws quicksight create-data-source \ --region us-west-2 \ --endpoint https://quicksight.us-west-2.quicksight.aws.com/ \ --cli-input-json file://redshift-data-source-iam.json \ redshift-data-source-iam.json is shown as below { "AwsAccountId": "
AWSACCOUNTID
", "DataSourceId": "DATSOURCEID
", "Name": "Test redshift demo iam
", "Type": "REDSHIFT", "DataSourceParameters": { "RedshiftParameters": { "Database": "integ", "Host": "redshiftdemocluster.us-west-2.redshift.amazonaws.com", "Port":8192
, "ClusterId": "redshiftdemocluster
", "IAMParameters": { "RoleArn": "arn:aws:iam::222222222222
:role/TestRedshiftRoleForQuickSight
", "DatabaseUser": "user", "DatabaseGroups": ["admin_group
", "guest_group
", "guest_group_1
"] } } }, "Permissions": [ { "Principal": "arn:aws:quicksight:us-east-1:AWSACCOUNTID
:user/default/demoname
", "Actions": [ "quicksight:DescribeDataSource", "quicksight:DescribeDataSourcePermissions", "quicksight:PassDataSource", "quicksight:UpdateDataSource", "quicksight:DeleteDataSource", "quicksight:UpdateDataSourcePermissions" ] } ] }
Se l'origine dati utilizza il tipo di VPC connessione, utilizza la seguente VPC configurazione.
{ "AwsAccountId": "
AWSACCOUNTID
", "DataSourceId": "DATSOURCEID
", "Name": "Test redshift demo iam vpc
", "Type": "REDSHIFT", "DataSourceParameters": { "RedshiftParameters": { "Database": "mydb
", "Host": "vpcdemo.us-west-2.redshift.amazonaws.com
", "Port":8192
, "ClusterId": "vpcdemo
", "IAMParameters": { "RoleArn": "arn:aws:iam::222222222222
:role/TestRedshiftRoleForQuickSight
", "DatabaseUser": "user
", "AutoCreateDatabaseUser": true } } }, "VpcConnectionProperties": { "VpcConnectionArn": "arn:aws:quicksight:us-west-2:222222222222
:vpcConnection/VPC Name
" }, "Permissions": [ { "Principal": "arn:aws:quicksight:us-east-1:222222222222
:user/default/demoname
", "Actions": [ "quicksight:DescribeDataSource", "quicksight:DescribeDataSourcePermissions", "quicksight:PassDataSource", "quicksight:UpdateDataSource", "quicksight:DeleteDataSource", "quicksight:UpdateDataSourcePermissions" ] } ] }
Se l'origine dati utilizza l'redshift:GetClusterCredentialsWithIAM
autorizzazione e non utilizza i DatabaseGroups
parametri DatabaseUser
o, concedi al ruolo l'accesso ad alcune o tutte le tabelle dello schema. Per verificare se a un ruolo sono state concesse SELECT
le autorizzazioni per una tabella specifica, inserisci il seguente comando in Amazon Redshift Query Editor.
SELECT u.usename, t.schemaname||'.'||t.tablename, has_table_privilege(u.usename,t.tablename,'select') AS user_has_select_permission FROM pg_user u CROSS JOIN pg_tables t WHERE u.usename = 'IAMR:
RoleName
' AND t.tablename =tableName
Per ulteriori informazioni sull'SELECT
azione in Amazon Redshift Query Editor, consulta. SELECT
Per concedere SELECT
le autorizzazioni al ruolo, inserisci il seguente comando in Amazon Redshift Query Editor.
GRANT SELECT ON { [ TABLE ] table_name [, ...] | ALL TABLES IN SCHEMA schema_name [, ...] } TO "IAMR:
Rolename
";
Per ulteriori informazioni sull'GRANT
azione in Amazon Redshift Query Editor, consulta. GRANT
Esecuzione di query con origini dati Amazon S3
Le origini dati di Amazon S3 contengono un file manifest che QuickSight viene utilizzato per trovare e analizzare i dati. Puoi caricare un file JSON manifest tramite la QuickSight console oppure puoi fornire un file URL che punti a un JSON file in un bucket S3. Se scegli di fornire unURL, QuickSight devi avere l'autorizzazione per accedere al file in Amazon S3. Utilizza la console di QuickSight amministrazione per controllare l'accesso al file manifest e ai dati a cui fa riferimento.
Con la RoleArnproprietà, puoi concedere l'accesso al file manifesto e ai dati a cui fa riferimento tramite un IAM ruolo personalizzato che sostituisce il ruolo a livello di account. Usa il API per ARN allegare il al file manifest dell'origine dati Amazon S3. A tale scopo, includi il ruolo ARN nella RoleArnproprietà di S3Parameters. Per la verifica, puoi vedere il ruolo ARN nella finestra di dialogo Modifica origine dati S3. Tuttavia, Role ARN è un campo di sola lettura, come mostrato nella schermata seguente.

Per iniziare, crea un file manifesto di Amazon S3. Quindi, puoi caricarlo su Amazon QuickSight quando crei un nuovo set di dati Amazon S3 o inserire il file nel bucket Amazon S3 che contiene i tuoi file di dati. Visualizza l'esempio seguente per vedere come potrebbe apparire un file manifesto:
{ "fileLocations": [ { "URIPrefixes": [ "s3://quicksightUser-run-as-role/data/" ] } ], "globalUploadSettings": { "format": "CSV", "delimiter": ",", "textqualifier": "'", "containsHeader": "true" } }
Per istruzioni su come creare un file manifesto, consulta Formati supportati per i file manifesto di Amazon S3.
Dopo aver creato un file manifesto e averlo aggiunto al tuo bucket Amazon S3 o averlo caricato QuickSight, crea o aggiorna un ruolo esistente IAM che consenta l'accesso. s3:GetObject
L'esempio seguente illustra come aggiornare un ruolo esistente IAM con: AWS API
aws iam put-role-policy \ --role-name QuickSightAccessToS3RunAsRoleBucket \ --policy-name GrantS3RunAsRoleAccess \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3:ListBucket", "Resource": "
arn:aws:s3:::s3-bucket-name
" }, { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::s3-bucket-name/manifest.json
" }, { "Effect": "Allow", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::s3-bucket-name/*
" } ] }'
Dopo che la policy ha concesso l'accesso s3:GetObject
, puoi iniziare a creare origini dati che applichino la put-role-policy
aggiornata al file manifesto dell'origine dati Amazon S3.
aws quicksight create-data-source --aws-account-id
111222333444
--regionus-west-2
--endpointhttps://quicksight.us-west-2.quicksight.aws.com/
\ --data-source-id "s3-run-as-role-demo-source
" \ --cli-input-json '{ "Name": "S3 with a custom Role
", "Type": "S3", "DataSourceParameters": { "S3Parameters": { "RoleArn": "arn:aws:iam::111222333444:role/QuickSightAccessRunAsRoleBucket
", "ManifestFileLocation": { "Bucket": "s3-bucket-name
", "Key": "manifest.json
" } } } }'
Dopo aver verificato le autorizzazioni, puoi utilizzare il ruolo nelle fonti di QuickSight dati, creando un nuovo ruolo o aggiornando un ruolo esistente. Quando usi questi comandi, assicurati di aggiornare l' Account AWS ID e di Regione AWS abbinarlo al tuo.