

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.

# Referenz zu IAM-Richtlinien
<a name="aurora-analytics-iam-policies-reference"></a>

Aurora PostgreSQL benötigt IAM-Berechtigungen für den Zugriff auf Ihre Iceberg- und Parquet-Daten in Amazon S3 und optional in Amazon S3 AWS Glue Data Catalog S3-Tabellen. Die spezifischen Berechtigungen hängen von Ihrem Datenformat und davon ab, wie die Daten registriert werden. In diesem Abschnitt werden Beispiele für typische IAM-Richtlinien für Aurora PostgreSQL vorgestellt.

**Topics**
+ [Zusammenfassung der erforderlichen Berechtigungen](#aurora-analytics-iam-summary)
+ [Beispielrichtlinien](#aurora-analytics-iam-examples)
+ [Server-side Verschlüsselung mit AWS KMS](#aurora-analytics-iam-kms)
+ [Cross-account Zugang](#aurora-analytics-iam-cross-account)
+ [IAM-Rollen-Vertrauensrichtlinie](#aurora-analytics-iam-trust-policy)
+ [Bewährte Methoden für IAM-Richtlinien](#aurora-analytics-iam-best-practices)

## Zusammenfassung der erforderlichen Berechtigungen
<a name="aurora-analytics-iam-summary"></a>

In der folgenden Tabelle sind die Berechtigungen zusammengefasst, die Aurora PostgreSQL für jeden Zugriffspfad benötigt. Gewähren Sie nur die Zeile, die Ihrer Konfiguration entspricht.


**Erforderliche Berechtigungen nach Datenformat und Zugriffspfad**  

| Datenformat und Zugriffspfad | Service | Erforderliche Berechtigungen | Ressourcen | 
| --- | --- | --- | --- | 
| Apache Parquet, einzelne Datei | Amazon S3 | s3:GetObject | Objektschlüssel | 
| Apache Parquet, Ordner oder Wildcard-Pfad | Amazon S3 | s3:GetObject, s3:ListBucket | Bucket, Präfixbedingung, Objektschlüssel | 
| Apache Iceberg, AWS Glue Data Catalog | AWS Glue \+ Amazon S3 | glue:GetTable, s3:GetObject | Katalog, Datenbank, Tabelle, Objektschlüssel | 
| Apache Iceberg, AWS Glue Verbundkatalog (Remote-Kataloge wie Snowflake und Databricks) | AWS Lake Formation \+ AWS Glue \+ Amazon S3 | lakeformation:GetDataAccess, glue:GetTable, s3:GetObject | Katalog, Datenbank, Tabelle, Objektschlüssel | 
| Apache Parquet, AWS Glue Data Catalog (vom Crawler registriert) | AWS Glue \+ Amazon S3 | glue:GetTable, s3:GetObject, s3:ListBucket | Katalog, Datenbank, Tabelle, Bucket, Objektschlüssel | 
| Apache Iceberg, Amazon S3 S3-Tabellen bis AWS Glue | AWS Glue \+ Amazon S3 S3-Tabellen | glue:GetTable, s3tables:GetTable, s3tables:GetTableBucket, s3tables:GetTableData, s3tables:GetNamespace | Katalog, Datenbank, Tabelle, Tabellen-Bucket, Tabelle | 
| Apache Iceberg, Amazon S3 S3-Tabellen nach Tabelle ARN | Amazon S3 Tables | s3tables:GetTable, s3tables:GetTableBucket, s3tables:GetTableData, s3tables:GetNamespace | Tisch, Eimer, Tisch | 
| Irgendein vorheriges, mit SSE-KMS Verschlüsselung | \+ AWS KMS | kms:Decrypt | KMS-Schlüssel | 

Drei Punkte wirken sich darauf aus, wie viel Sie gewähren müssen:
+ `s3:ListBucket`ist nur erforderlich, wenn Aurora PostgreSQL Dateien erkennen muss. Ein Speicherort, der einen exakten Objektschlüssel benennt, benötigt keine Auflistung. Iceberg-Tabellen müssen ebenfalls nicht aufgelistet werden, da Iceberg-Manifeste den exakten Schlüssel jeder Datendatei enthalten. Crawler-registered Parquet-Tabellen AWS Glue speichern einen Ordnerpfad und kein Manifest, was bedeutet, dass für diese Tabellen eine Auflistung erforderlich ist.
+ Amazon S3 Tables erfordert vier `s3tables` Aktionen, nicht eine. Das Auflösen einer Tabelle ist ein mehrstufiger Vorgang im Amazon S3 Tables-Service: Der Tabellen-Bucket, der Namespace, die Tabellenmetadaten und die Tabellendaten werden jeweils separat autorisiert. Nur die Gewährung `s3tables:GetTableData` führt zu einem Fehler bei der Benennung des Zugriffs verweigert. `s3tables:GetTableBucket`
+ Cross-account Für den Zugriff sind Berechtigungen auf beiden Seiten erforderlich. Die Beispiele in diesem Abschnitt beziehen sich auf dasselbe Konto. Wenn die Daten einem anderen Konto gehören, müssen sowohl die Ressourcenrichtlinie im Konto des Datenbesitzers als auch die IAM-Richtlinie in Ihrem Konto die Aktion zulassen.

## Beispielrichtlinien
<a name="aurora-analytics-iam-examples"></a>

Diese Beispielrichtlinien werden `amzn-s3-demo-bucket` als Bucket-Name, `amzn-s3-demo-table-bucket` als Bucket-Name für die Amazon S3 S3-Tabellen-Tabelle und `123456789012` als AWS Konto-ID verwendet. Um diese Richtlinien zu verwenden, ersetzen Sie sie durch Ihre eigenen Informationen und beschränken Sie jedes `Resource` Element nur auf die Daten, auf die sich Ihre Fremdtabellen beziehen. {{user input placeholders}}

### Beispiel: Parquet-Dateien in Amazon S3
<a name="aurora-analytics-iam-parquet"></a>

Die folgende Beispielrichtlinie gewährt die Erlaubnis, Parquet-Dateien direkt aus einem Amazon S3 S3-Bucket zu lesen. AWS Glue Data Catalog ist für Parquet nicht erforderlich.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3ListBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket",
            "Condition": {
                "StringLike": {
                    "s3:prefix": [
                        "data/orders",
                        "data/orders/*",
                        "data/customers",
                        "data/customers/*"
                    ]
                }
            }
        },
        {
            "Sid": "S3ReadObjects",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/data/orders/*",
                "arn:aws:s3:::amzn-s3-demo-bucket/data/customers/*"
            ]
        }
    ]
}
```

Diese Richtlinie besteht aus zwei `Allow` Aussagen:

`S3ListBucket`  
Erteilt die Erlaubnis, Dateien im Amazon S3 S3-Bucket aufzulisten, beschränkt auf bestimmte Ordnerpräfixe. Fügen Sie diese Anweisung ein, wenn ein fremder Tabellenspeicherort einen Ordner oder einen Platzhalterpfad benennt, z. B. `s3://amzn-s3-demo-bucket/data/orders/` Lassen Sie sie weg, wenn jede Fremdtabelle einen exakten Objektschlüssel benennt. Das `Condition` Element beschränkt die Auflistung auf die angegebenen Präfixe. Jedes Präfix wird sowohl mit als auch ohne abschließenden Schrägstrich aufgeführt, sodass die Bedingung unabhängig davon, wie das Präfix ausgedrückt wird, zutrifft.

`S3ReadObjects`  
Erteilt die Berechtigung, den Inhalt der Parquet-Datei zu lesen. Die Ressourcen-ARNs sind auf bestimmte Objektschlüsselpräfixe für den Zugriff mit den geringsten Rechten beschränkt.

### Beispiel: Iceberg-Tabellen bis AWS Glue Data Catalog und Amazon S3
<a name="aurora-analytics-iam-iceberg-glue"></a>

Die folgende Beispielrichtlinie gewährt die Berechtigung, Iceberg-Tabellen abzufragen, die in registriert sind. AWS Glue Data Catalog

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GlueCatalogAccess",
            "Effect": "Allow",
            "Action": "glue:GetTable",
            "Resource": [
                "arn:aws:glue:us-east-1:123456789012:catalog",
                "arn:aws:glue:us-east-1:123456789012:database/analytics_db",
                "arn:aws:glue:us-east-1:123456789012:table/analytics_db/orders",
                "arn:aws:glue:us-east-1:123456789012:table/analytics_db/customers"
            ]
        },
        {
            "Sid": "S3ReadObjects",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/data/iceberg/orders/*",
                "arn:aws:s3:::amzn-s3-demo-bucket/data/iceberg/customers/*"
            ]
        }
    ]
}
```

Diese Richtlinie besteht aus zwei `Allow` Aussagen:

`GlueCatalogAccess`  
Erteilt die Berechtigung zum Lesen von Tabellenmetadaten aus AWS Glue Data Catalog. Für die `glue:GetTable` Aktion sind Berechtigungen auf drei Ressourcenebenen erforderlich: für den AWS Glue Stammkatalog, die Datenbank, die die Tabelle enthält, und für jede Tabelle, die Sie abfragen möchten. Wenn Sie in einer AWS Glue Fremdtabelle auf einen Tabellen-ARN verweisen, ruft Aurora PostgreSQL die AWS Glue API auf, um Tabellenmetadaten abzurufen, einschließlich des Amazon S3 S3-Speicherorts, des Formats und des Schemas.

`S3ReadObjects`  
Erteilt die Berechtigung, die Iceberg-Metadatendateien und die Parquet-Datendateien von Amazon S3 zu lesen.

Diese Richtlinie erteilt nicht`s3:ListBucket`, was für Iceberg-Tabellen nicht erforderlich ist. Wenn es sich bei der AWS Glue Tabelle nicht um eine Iceberg-Tabelle, sondern um eine vom Crawler registrierte Parquet-Tabelle handelt, fügen Sie die `S3ListBucket` Anweisung hinzu, die im vorherigen Parquet-Beispiel gezeigt wurde.

### Beispiel: Eisberg-Tabellen in Amazon S3 S3-Tabellen
<a name="aurora-analytics-iam-s3tables"></a>

Amazon S3 Tables unterstützt zwei Zugriffspfade, für die jeweils unterschiedliche Berechtigungen erforderlich sind. Verwenden Sie das Beispiel, das Ihrer Fremdtabellendefinition entspricht.

#### Zugriff über AWS Glue Data Catalog
<a name="aurora-analytics-iam-s3tables-glue"></a>

Die folgende Beispielrichtlinie gewährt die Erlaubnis, eine Amazon S3 S3-Tables-Tabelle über einen AWS Glue ARN im `s3tablescatalog` Verbundkatalog abzufragen, z. B. `arn:aws:glue:us-east-1:123456789012:table/s3tablescatalog/amzn-s3-demo-table-bucket/my_namespace/orders`

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "GlueCatalogAccess",
            "Effect": "Allow",
            "Action": "glue:GetTable",
            "Resource": [
                "arn:aws:glue:us-east-1:123456789012:catalog/s3tablescatalog/amzn-s3-demo-table-bucket",
                "arn:aws:glue:us-east-1:123456789012:database/s3tablescatalog/amzn-s3-demo-table-bucket/my_namespace",
                "arn:aws:glue:us-east-1:123456789012:table/s3tablescatalog/amzn-s3-demo-table-bucket/my_namespace/orders"
            ]
        },
        {
            "Sid": "S3TablesAccess",
            "Effect": "Allow",
            "Action": [
                "s3tables:GetTable",
                "s3tables:GetTableBucket",
                "s3tables:GetTableData",
                "s3tables:GetNamespace"
            ],
            "Resource": [
                "arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket",
                "arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket/table/*"
            ]
        }
    ]
}
```

#### Zugriff über Tabelle ARN
<a name="aurora-analytics-iam-s3tables-arn"></a>

Die folgende Beispielrichtlinie erteilt die Erlaubnis, eine Amazon S3-Tables-Tabelle anhand ihres Tabellen-ARN abzufragen, z. `arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket/table/1234abcd-12ab-34cd-56ef-1234567890ab` B. Dieser Zugriffspfad beinhaltet AWS Glue nichts und es sind auch keine AWS Glue Berechtigungen erforderlich.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3TablesAccess",
            "Effect": "Allow",
            "Action": [
                "s3tables:GetTable",
                "s3tables:GetTableBucket",
                "s3tables:GetTableData",
                "s3tables:GetNamespace"
            ],
            "Resource": [
                "arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket",
                "arn:aws:s3tables:us-east-1:123456789012:bucket/amzn-s3-demo-table-bucket/table/*"
            ]
        }
    ]
}
```

Die Anweisungen in den vorherigen Beispielen gewähren die folgenden Berechtigungen:

`GlueCatalogAccess`  
Erteilt die Berechtigung zum Auflösen der Tabelle durch AWS Glue Data Catalog. Tabellen-Buckets für Amazon S3 S3-Tabellen werden AWS Glue unter dem `s3tablescatalog` Verbundkatalog angezeigt, sodass die Ressourcen-ARNs den Tabellen-Bucket-Namen in den Katalog-, Datenbank- und Tabellenpfaden enthalten. Diese Anweisung ist nur erforderlich, wenn Sie über auf die Tabelle zugreifen. AWS Glue Data Catalog

`S3TablesAccess`  
Erteilt die Berechtigung, die Tabelle mithilfe von Amazon S3 S3-Tabellen aufzulösen und zu lesen. Alle vier Aktionen sind erforderlich, und jede Aktion autorisiert einen bestimmten Schritt der Tabellenauflösung:  


**Amazon S3 Tables-Aktionen und die Schritte, die sie autorisieren**  

<table>
<thead>
  <tr><th>Action</th><th>Autorisiert</th></tr>
</thead>
<tbody>
  <tr><td><code>s3tables:GetTableBucket</code></td><td>Den Tabellen-Bucket auflösen</td></tr>
  <tr><td><code>s3tables:GetNamespace</code></td><td>Der Namespace, der die Tabelle enthält, wird aufgelöst</td></tr>
  <tr><td><code>s3tables:GetTable</code></td><td>Tabellenmetadaten werden abgerufen</td></tr>
  <tr><td><code>s3tables:GetTableData</code></td><td>Lesen der zugrunde liegenden Iceberg-Daten</td></tr>
</tbody>
</table>


Wenn Sie über auf die Tabelle zugreifen AWS Glue Data Catalog, AWS Glue löst im Rahmen der Auflösung des Verbundkatalogs den Tabellen-Bucket und den Namespace in Ihrem Namen auf.

Standardberechtigungen von Amazon S3 wie z. B. `s3:GetObject` und `s3:ListBucket` sind für keinen der beiden Zugriffspfade erforderlich.

Für kontoübergreifenden Zugriff können Sie `s3tables:GetTableBucket` und `s3tables:GetNamespace` in der Tabellen-Bucket-Richtlinie im Konto des Datenbesitzers statt in Ihrer IAM-Richtlinie gewähren. In dieser Konfiguration erfordert Ihre IAM-Richtlinie nur und. `s3tables:GetTable` `s3tables:GetTableData`

## Server-side Verschlüsselung mit AWS KMS
<a name="aurora-analytics-iam-kms"></a>

Wenn Ihre Daten mit serverseitiger Verschlüsselung mit AWS KMS keys (SSE-KMS) verschlüsselt sind, fügen Sie der Richtlinie für Ihren Zugriffspfad eine Anweisung wie die folgende hinzu. Für Daten, die mit verschlüsselt sind, sind SSE-S3 keine zusätzlichen Berechtigungen erforderlich.

```
{
    "Sid": "KMSDecrypt",
    "Effect": "Allow",
    "Action": "kms:Decrypt",
    "Resource": "arn:aws:kms:us-east-1:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab"
}
```

Für einen KMS-Schlüssel, der einem anderen Konto gehört, muss die Schlüsselrichtlinie im Besitzerkonto Ihrer Rolle `kms:Decrypt` zugewiesen werden, *und* die IAM-Richtlinie Ihrer Rolle muss diesen Schlüssel zulassen`kms:Decrypt`. Keine der beiden Richtlinien allein ist ausreichend.

## Cross-account Zugang
<a name="aurora-analytics-iam-cross-account"></a>

Wenn Ihre Daten einem anderen Konto gehören, müssen beide Konten die Aktion zulassen. In den folgenden Beispielen `123456789012` liest eine Clusterrolle in einem Konto Parquet-Dateien aus einem Bucket, der dem Konto gehört`111122223333`.

Die folgende Beispiel-Bucket-Richtlinie erteilt der Clusterrolle im Konto des Datenbesitzers die Berechtigung, Objekte aus dem Bucket zu lesen.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "AllowAuroraAnalyticsRole",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:role/amzn-analytics-demo-role"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/data/orders/*"
        }
    ]
}
```

Das folgende Beispiel für eine identitätsbasierte Richtlinie, die der Clusterrolle in Ihrem Konto zugeordnet ist, gewährt dieselbe Berechtigung für dieselbe Ressource.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "S3ReadCrossAccount",
            "Effect": "Allow",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/data/orders/*"
        }
    ]
}
```

Wenn eine der Richtlinien die Aktion auslässt, wird die Anfrage abgelehnt. Cross-account Bei Ablehnungen von Amazon S3 wird nicht ermittelt, welcher Seite die Genehmigung fehlt. Überprüfen Sie daher beide Richtlinien.

Dieselbe Anforderung gilt für AWS Glue Ressourcen und AWS KMS Schlüssel, die einem anderen Konto gehören. Wenn Ihr Fremdtabellenspeicherort einen Ordner und nicht einen exakten Objektschlüssel benennt, fügen Sie `s3:ListBucket` den Bucket-ARN zu beiden Richtlinien hinzu.

## IAM-Rollen-Vertrauensrichtlinie
<a name="aurora-analytics-iam-trust-policy"></a>

Welche Berechtigungsrichtlinie Sie auch verwenden, fügen Sie sie einer IAM-Rolle hinzu, deren Vertrauensrichtlinie es Amazon RDS ermöglicht, die Rolle im Namen Ihres Aurora-DB-Clusters zu übernehmen, wie im folgenden Beispiel. Die Schlüssel `aws:SourceAccount` und `aws:SourceArn` condition schränken die Rolle ein, sodass sie nur im Namen Ihres eigenen Clusters übernommen werden kann.

```
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "rds.amazonaws.com"
            },
            "Action": "sts:AssumeRole",
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                },
                "ArnLike": {
                    "aws:SourceArn": "arn:aws:rds:us-east-1:123456789012:cluster:amzn-rds-demo-cluster"
                }
            }
        }
    ]
}
```

## Bewährte Methoden für IAM-Richtlinien
<a name="aurora-analytics-iam-best-practices"></a>

Beachten Sie bei der Erstellung dieser IAM-Richtlinien die folgenden bewährten Methoden:
+ **Verwenden Sie die geringsten Rechte**: Gewähren Sie nur die spezifischen Amazon S3 S3-Präfixe, AWS Glue Ressourcen und Amazon S3 S3-Tabellenressourcen, die Ihre Fremdtabellen benötigen. Vermeiden Sie Ressourcen-ARNs mit Platzhaltern (`*`).
+ **Gewähren Sie `s3:ListBucket` nur dort, wo es benötigt wird**: Sehen Sie in der Übersichtstabelle nach, für welche Zugriffspfade dies erforderlich ist.
+ **Präfixbedingungen verwenden**: Wenden Sie `s3:prefix` Bedingungen auf `s3:ListBucket` Aktionen an, um einzuschränken, welche Ordner aufgelistet werden können.
+ **Separate Rollen für unterschiedliche Anliegen**: Wenn verschiedene Datenbanken oder Benutzer auf unterschiedliche Amazon S3 S3-Daten zugreifen, sollten Sie die Verwendung separater IAM-Rollen für jeden Bereich in Betracht ziehen.
+ **Regelmäßige Prüfung**: Überprüfen Sie die Richtlinienberechtigungen regelmäßig, um sicherzustellen, dass sie Ihren aktuellen Definitionen für ausländische Tabellen entsprechen.