Ausführen von Abfragen als IAM-Rolle in Amazon QuickSight - Amazon QuickSight

Wichtig: Wir haben den QuickSight Amazon-Analyse-Arbeitsbereich neu gestaltet. Möglicherweise stoßen Sie auf Screenshots oder verfahrenstechnischen Text, der nicht dem neuen Erscheinungsbild der QuickSight Konsole entspricht. Wir sind gerade dabei, Screenshots und prozeduralen Text zu aktualisieren.

Verwenden Sie die Schnellsuchleiste, um eine Funktion oder einen Artikel zu finden.

Weitere Informationen zum QuickSight neuen Erscheinungsbild finden Sie unter Einführung eines neuen Analyseerlebnisses bei Amazon QuickSight.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Ausführen von Abfragen als IAM-Rolle in Amazon QuickSight

Sie können die Datensicherheit verbessern, indem Sie differenzierte Zugriffsrichtlinien anstelle umfassenderer Berechtigungen für Datenquellen verwenden, die mit Amazon Athena, Amazon Redshift oder Amazon S3 verbunden sind. Sie erstellen zunächst eine AWS Identity and Access Management-(IAM-)Rolle mit Berechtigungen, die aktiviert werden können, wenn eine Person oder eine API eine Abfrage startet. Anschließend weist ein Amazon- QuickSight Administrator oder ein Entwickler die IAM-Rolle einer Athena- oder Amazon S3-Datenquelle zu. Wenn die Rolle eingerichtet ist, verfügt jede Person oder API, die die Abfrage ausführt, über genau die Berechtigungen, die zum Ausführen der Abfrage erforderlich sind.

Hier sind einige Dinge, die Sie beachten sollten, bevor Sie sich für die Implementierung von Run-As-Rollen entscheiden, um die Datensicherheit zu verbessern:

  • Erläutern Sie, wie sich die zusätzliche Sicherheit zu Ihrem Vorteil auswirkt.

  • Wenden Sie sich an Ihren QuickSight Administrator, um zu erfahren, ob das Hinzufügen von Rollen zu Datenquellen Ihnen hilft, Ihre Sicherheitsziele oder -anforderungen besser zu erreichen.

  • Fragen Sie sich, ob diese Art von Sicherheit angesichts der Anzahl der Datenquellen sowie der beteiligten Personen und Anwendungen von Ihrem Team durchführbar dokumentiert und aufrechterhalten werden kann? Wenn nicht, wer wird dann diesen Teil der Arbeit übernehmen?

  • In einer strukturierten Organisation sollten Sie die Beteiligten in parallelen Teams in den Bereichen Betrieb, Entwicklung und IT-Support unterbringen. Fragen Sie sie nach ihrer Erfahrung, ihrem Rat und ihrer Bereitschaft, Ihren Plan zu unterstützen.

  • Bevor Sie Ihr Projekt starten, sollten Sie eine Machbarkeitsstudie durchführen, an der die Personen teilnehmen, die Zugang zu den Daten benötigen.

Die folgenden Regeln gelten für die Verwendung von Run-As-Rollen mit Athena, Amazon Redshift und Amazon S3:

  • Jeder Datenquelle kann nur ein zugeordnet sein RoleArn. Nutzer der Datenquelle, die in der Regel auf Datensätze und Bildmaterial zugreifen, können viele verschiedene Arten von Abfragen generieren. Die Rolle legt fest, welche Abfragen funktionieren und welche nicht.

  • Der ARN muss einer IAM-Rolle in derselben entsprechen AWS-Konto wie die QuickSight Instance, die ihn verwendet.

  • Die IAM-Rolle muss über eine Vertrauensstellung verfügen, die es ermöglicht QuickSight , die Rolle zu übernehmen.

  • Die Identität, die die APIs QuickSightvon aufruft, muss über die Berechtigung zum Übergeben der Rolle verfügen, bevor sie die RoleArn Eigenschaft aktualisieren können. Sie müssen die Rolle nur übergeben, wenn Sie den Rollen-ARN erstellen oder aktualisieren. Die Berechtigungen werden später nicht erneut bewertet. Ebenso ist die Berechtigung nicht erforderlich, wenn der Rollen-ARN weggelassen wird.

  • Wenn der Rollen-ARN weggelassen wird, verwendet die Athena- oder Amazon-S3-Datenquelle die kontoweiten Rollen- und Scopedown-Richtlinien.

  • Wenn der Rollen-ARN vorhanden ist, werden sowohl die kontoweite Rolle als auch alle Scopedown-Richtlinien ignoriert. Für Athena-Datenquellen werden Lake-Formation-Berechtigungen nicht ignoriert.

  • Für Amazon-S3-Datenquellen müssen sowohl die Manifestdatei als auch die in der Manifestdatei angegebenen Daten über die IAM-Rolle zugänglich sein.

  • Die ARN-Zeichenfolge muss mit einer bestehenden IAM-Rolle in dem AWS-Konto und der AWS-Region übereinstimmen, in der die Daten gespeichert und abgefragt werden.

Wenn eine QuickSight Verbindung zu einem anderen Service in herstelltAWS, verwendet es eine IAM-Rolle. Standardmäßig wird diese weniger detaillierte Version der Rolle von QuickSight für jeden verwendeten Service erstellt, und die Rolle wird von AWS-Konto Administratoren verwaltet. Wenn Sie einen IAM-Rollen-ARN mit einer benutzerdefinierten Berechtigungsrichtlinie hinzufügen, überschreiben Sie die umfassendere Rolle für Ihre Datenquellen, die zusätzlichen Schutz benötigen. Weitere Informationen zu Richtlinien finden Sie unter Erstellen einer vom Kunden verwalteten Richtlinie im IAM-Benutzerhandbuch.

Abfragen mit Athena-Datenquellen ausführen

Verwenden Sie die API, um den ARN an die Athena-Datenquelle anzuhängen. Fügen Sie dazu den Rollen-ARN in der -RoleArnEigenschaft von hinzuAthenaParameters. Zur Überprüfung können Sie den Rollen-ARN im Dialogfeld Athena-Datenquelle bearbeiten sehen. Rollen-ARN ist jedoch ein schreibgeschütztes Feld.


                Das Popup-Fenster Athena-Datenquelle bearbeiten, in dem der Rollen-ARN angezeigt wird.

Zu Beginn benötigen Sie eine benutzerdefinierte IAM-Rolle, die wir im folgenden Beispiel demonstrieren.

Beachten Sie, dass das folgende Codebeispiel nur zu Lernzwecken dient. Verwenden Sie dieses Beispiel nur in einer temporären Entwicklungs- und Testumgebung und nicht in einer Produktionsumgebung. Die Richtlinie in diesem Beispiel schützt keine bestimmte Ressource, die in einer bereitstellbaren Richtlinie enthalten sein muss. Auch für die Entwicklung müssen Sie Ihre eigenen AWS-Kontoinformationen hinzufügen.

Die folgenden Befehle erstellen eine einfache neue Rolle und fügen einige Richtlinien an, die Berechtigungen für gewähren QuickSight.

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

Nachdem Sie eine IAM-Rolle zur Verwendung mit jeder Datenquelle identifiziert oder erstellt haben, fügen Sie die Richtlinien mithilfe der an 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

Nachdem Sie Ihre Berechtigungen überprüft haben, können Sie die Rolle in QuickSight Datenquellen verwenden, indem Sie eine neue Rolle erstellen oder eine vorhandene Rolle aktualisieren. Wenn Sie diese Befehle verwenden, aktualisieren Sie die AWS-Konto-ID und AWS-Region, damit sie mit Ihren eigenen übereinstimmen.

Denken Sie daran, dass diese Beispielcodefragmente nicht für Produktionsumgebungen bestimmt sind. AWS empfiehlt dringend, dass Sie für Ihre Produktionsfälle eine Reihe von Richtlinien mit geringsten Berechtigungen festlegen und verwenden.

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

Abfragen mit Amazon-Redshift-Datenquellen ausführen

Verbinden Sie Ihre Amazon-Redshift-Daten mit der Run-As-Rolle, um Ihre Datensicherheit mit detaillierten Zugriffsrichtlinien zu verbessern. Sie können eine Run-As-Rolle für Amazon-Redshift-Datenquellen erstellen, die ein öffentliches Netzwerk oder eine VPC-Verbindung verwenden. Sie geben den Verbindungstyp, den Sie verwenden möchten, im Dialogfeld Amazon-Redshift-Datenquelle bearbeiten an. Die Run-as-Rolle wird für Amazon-Redshift-Serverless-Datenquellen nicht unterstützt.

Das Bild unten zeigt eine Amazon-Redshift-Datenquelle, die den Verbindungstyp Öffentliches Netzwerk verwendet.


                Das Popup-Fenster Amazon-S3-Datenquelle bearbeiten wird angezeigt, in dem der Verbindungstyp angezeigt wird.

Zu Beginn benötigen Sie eine benutzerdefinierte IAM-Rolle, die wir im folgenden Beispiel demonstrieren. Die folgenden Befehle erstellen ein Beispiel für eine neue Rolle und fügen Richtlinien an, die Berechtigungen für gewähren QuickSight.

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" }, { "Effect": "Allow", "Principal": { "Service": "quicksight.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'

Nachdem Sie eine IAM-Rolle zur Verwendung mit jeder Datenquelle identifiziert oder erstellt haben, fügen Sie den Richtlinien eine attach-role-policy hinzu.

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

Nachdem Sie Ihre Berechtigungen überprüft haben, können Sie die Rolle in QuickSight Datenquellen verwenden, indem Sie eine neue Rolle erstellen oder eine vorhandene Rolle aktualisieren. Wenn Sie diese Befehle verwenden, aktualisieren Sie die AWS-Konto-ID und AWS-Region, damit sie mit Ihren eigenen übereinstimmen.

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

Wenn Ihre Datenquelle den VPC-Verbindungstyp verwendet, verwenden Sie die folgende VPC-Konfiguration.

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

Abfragen mit Amazon-S3-Datenquellen ausführen

Amazon S3-Datenquellen enthalten eine Manifestdatei, die QuickSight verwendet, um Ihre Daten zu finden und zu analysieren. Sie können eine JSON-Manifestdatei über die QuickSight Konsole hochladen oder eine URL angeben, die auf eine JSON-Datei in einem S3-Bucket verweist. Wenn Sie eine URL angeben, QuickSight muss die Berechtigung für den Zugriff auf die Datei in Amazon S3 erteilt werden. Verwenden Sie die QuickSight Administrationskonsole, um den Zugriff auf die Manifestdatei und die Daten zu steuern, auf die sie verweist.

Mit der -RoleArnEigenschaft können Sie Zugriff auf die Manifestdatei und die Daten gewähren, auf die sie über eine benutzerdefinierte IAM-Rolle verweist, die die kontoweite Rolle überschreibt. Verwenden Sie die API, um den ARN an die Manifestdatei der Amazon-S3-Datenquelle anzuhängen. Fügen Sie dazu den Rollen-ARN in die -RoleArnEigenschaft von S3Parameters ein. Zur Überprüfung können Sie den Rollen-ARN im Dialogfeld S3-Datenquelle bearbeiten sehen. Role ARN ist jedoch ein schreibgeschütztes Feld, wie im folgenden Screenshot gezeigt.


                Das Popup-Fenster Amazon-S3-Datenquelle bearbeiten, in dem der Rollen-ARN angezeigt wird.

Erstellen Sie zunächst eine Amazon-S3-Manifestdatei. Anschließend können Sie ihn entweder in Amazon hochladen, QuickSight wenn Sie einen neuen Amazon S3-Datensatz erstellen, oder die Datei in den Amazon S3-Bucket platzieren, der Ihre Datendateien enthält. Sehen Sie sich das folgende Beispiel an, um zu sehen, wie eine Manifestdatei aussehen könnte:

{ "fileLocations": [ { "URIPrefixes": [ "s3://quicksightUser-run-as-role/data/" ] } ], "globalUploadSettings": { "format": "CSV", "delimiter": ",", "textqualifier": "'", "containsHeader": "true" } }

Eine Anleitung zur Erstellung einer Manifestdatei finden Sie unter Unterstützte Formate für Amazon-S3-Manifestdateien.

Nachdem Sie eine Manifestdatei erstellt und zu Ihrem Amazon S3-Bucket hinzugefügt oder in hochgeladen haben QuickSight, erstellen oder aktualisieren Sie eine vorhandene Rolle in IAM, die s3:GetObject Zugriff gewährt. Das folgende Beispiel zeigt, wie Sie eine bestehende IAM-Rolle mit der AWS-API aktualisieren können:

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/*" } ] }'

Nachdem Ihre Richtlinie s3:GetObject Zugriff gewährt hat, können Sie mit der Erstellung von Datenquellen beginnen, die die aktualisierte put-role-policy auf die Manifestdatei der Amazon-S3-Datenquelle anwenden.

aws quicksight create-data-source --aws-account-id 111222333444 --region us-west-2 --endpoint https://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" } } } }'

Nachdem Sie Ihre Berechtigungen überprüft haben, können Sie die Rolle in QuickSight Datenquellen verwenden, indem Sie entweder eine neue Rolle erstellen oder eine vorhandene Rolle aktualisieren. Wenn Sie diese Befehle verwenden, stellen Sie sicher, dass Sie die AWS-Konto-ID und AWS-Region an Ihre eigenen Daten anpassen.