Wie richte ich kontoübergreifenden Zugriff von Amazon QuickSight auf einen Amazon-S3-Bucket in einem anderen Konto ein?

Lesedauer: 4 Minute
0

Ich möchte Daten aus einem Amazon Simple Storage Service (Amazon S3)-Bucket in einem anderen Konto verwenden, um einen Datensatz in Amazon QuickSight zu erstellen.

Kurzbeschreibung

Gehen Sie wie folgt vor, um kontoübergreifenden Zugriff von Amazon QuickSight (Konto A) auf einen verschlüsselten Amazon-S3-Bucket in einem anderen Konto (Konto B) zu erstellen:

  1. Aktualisieren Sie Ihre S3-Bucket-Richtlinie in Konto B (wo sich Ihr S3-Bucket befindet).
  2. Fügen Sie den S3-Bucket als Ressource hinzu, auf die die QuickSight-Servicerolle (Konto A) zugreifen kann.
  3. Erlauben Sie der QuickSight-Servicerolle Zugriff auf den AWS Key Management Service (AWS KMS)-Schlüssel für den S3-Bucket.

**Hinweis:**In diesem Artikel wird davon ausgegangen, dass Ihr S3-Bucket verschlüsselt ist. Es ist auch eine bewährte Methode, Ihren S3-Bucket mit einem AWS KMS-Schlüssel zu verschlüsseln. Weitere Informationen zur Aktivierung der Standardverschlüsselung für Amazon S3 finden Sie unter Konfiguration der Standardverschlüsselung.

Behebung

Aktualisieren Sie Ihre S3-Bucket-Richtlinie in Konto B

Gehen Sie wie folgt vor, um den kontoübergreifenden Zugriff von QuickSight auf Amazon S3 einzurichten:

  1. Aktualisieren Sie die Bucket-Richtlinie Ihres S3-Buckets in Konto B. Zum Beispiel:

    {  "Version": "2012-10-17",
      "Id": "BucketPolicy",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::<Account A>:role/service-role/aws-quicksight-service-role-v0"
          },
          "Action": [
            "s3:ListBucket",
            "s3:GetObject",
            "s3:GetObjectVersion"
          ],
          "Resource": [
            "arn:aws:s3:::cross-account-qstest-bucket",
            "arn:aws:s3:::cross-account-qstest-bucket/*"
          ]
        }
      ]
    }

    Hinweis: Wenn die Rolle aws-quicksight-s3-consumers-role-v0 in Konto A vorhanden ist, dann stellen Sie sicher, dass Sie stattdessen diese Rolle verwenden. Ersetzen Sie aws-quicksight-service-role-v0 durch aws-quicksight-s3-consumers-role-v0, um Verbindungsprobleme mit Amazon S3 zu vermeiden.

  2. Fügen Sie die QuickSight-Servicerolle von Konto A zur Liste der Benutzer hinzu, die auf den AWS-KMS-Schlüssel des S3-Buckets zugreifen können:

    aws kms create-grant --key-id aws_kms_key_arn --grantee-principal quickSight_role_arn --operations Decrypt
    

**Hinweis:**Ersetzen Sie aws_kms_key_arn durch den ARN Ihres AWS KMS-Schlüssels und quicksight_role_arn durch den ARN Ihrer QuickSight-Rolle.

So erhalten Sie Ihren AWS KMS-Schlüssel-ARN:

  1. Öffnen Sie die Amazon S3-Konsole.
  2. Gehen Sie zu dem S3-Bucket, der Ihre Datendatei enthält.
  3. Wählen Sie die Registerkarte Eigenschaften. Der AWS-KMS-Schlüssel-ARN befindet sich unter Standardverschlüsselung.

So erhalten Sie Ihre QuickSight-Servicerolle ARN:

  1. Öffnen Sie die AWS Identity Access Management (IAM)-Konsole in Konto A.
  2. Wählen Sie im Navigationsbereich Rollen aus.
  3. Suchen Sie nach aws-quicksight-service-role.
  4. Wählen Sie Ihre QuickSight-Servicerolle aus und kopieren Sie deren ARN.

Hinweis: Wenn die Rolle aws-quicksight-s3-consumers-role-v0 in Konto A vorhanden ist, stellen Sie sicher, dass Sie stattdessen diese Rolle verwenden. Andernfalls erhalten Sie möglicherweise eine Fehlermeldung, wenn Sie versuchen, eine Verbindung zu Amazon S3 herzustellen.

Fügen Sie den S3-Bucket als Ressource hinzu, auf die die QuickSight-Servicerolle zugreifen kann

Gehen Sie wie folgt vor, um der QuickSight-Servicerolle Zugriff auf den S3-Bucket in Konto B zu gewähren:

  1. Öffnen Sie Ihre Amazon QuickSight-Konsole.
  2. Wählen Sie QuickSight verwalten aus.
  3. Wählen Sie Sicherheit & Berechtigungen aus.
  4. Wählen Sie Hinzufügen oder Entfernen aus.
  5. Wählen Sie Details aus.
  6. Wählen Sie S3-Buckets auswählen aus.
  7. Wählen Sie die S3-Buckets aus, auf die Sie über die AWS-Registerkarte zugreifen können, um sicherzustellen, dass Ihr S3-Bucket für den QuickSight-Zugriff aufgeführt ist.
  8. **(Optional) **Wenn Ihr S3-Bucket nicht aufgeführt ist, fügen Sie Ihren Bucket unter Anderen Bucket verwenden hinzu.
  9. Wählen Sie Fertigstellen.

Erlauben Sie der QuickSight-Servicerolle Zugriff auf den AWS KMS-Schlüssel für den S3-Bucket

Fügen Sie der QuickSight-Servicerolle in Konto A die folgende Inline-IAM-Richtlinie hinzu:

{  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ExampleStmt3",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt"
        ],
      "Resource": ""arn:aws:kms:us-east-1:<account ID of your S3 bucket>:key/<KEYID>"
    }
  ]
}

**Hinweis:**Die obige Inline-Richtlinie ermöglicht der QuickSight-Servicerolle den Zugriff auf Ihren AWS KMS-Schlüssel in Konto B. Ersetzen Sie ExampleStmt3 durch Ihre Kontoauszugs-ID.

Wichtig: Wenn die Rolle aws-quicksight-s3-consumers-role-v0 in Konto A vorhanden ist, müssen Sie die AWS-KMS-Richtlinie an die Rolle anhängen. Die AWS KMS-Richtlinie entschlüsselt die Daten in Ihrem S3-Bucket. Wenn Sie stattdessen die aktualisierte Rollenrichtlinie an Ihre QuickSight-Servicerolle anhängen, tritt möglicherweise ein Berechtigungsfehler auf. Informationen zur Behebung des Berechtigungsfehlers finden Sie unter Wie behebe ich AWS-Ressourcenberechtigungsfehler in Amazon QuickSight?

Zusätzliche Erwägungen

Beachten Sie beim Einrichten des kontoübergreifenden Zugriffs von QuickSight auf einen S3-Bucket in einem anderen Konto Folgendes:

Verwandte Informationen

Schlüssel bearbeiten

Ich kann keine Verbindung zu Amazon S3 herstellen

Problembehebung bei Amazon QuickSight

Eine wichtige Richtlinie (Konsole) anzeigen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 4 Monaten