

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.

# Sicherheit und Compliance in Amazon DynamoDB
<a name="security"></a>

Cloud-Sicherheit hat höchste AWS Priorität. Als AWS Kunde profitieren Sie von einer Rechenzentrums- und Netzwerkarchitektur, die darauf ausgelegt sind, die Anforderungen der sicherheitssensibelsten Unternehmen zu erfüllen.

Sicherheit ist eine gemeinsame Verantwortung von Ihnen AWS und Ihnen. Das [Modell der geteilten Verantwortung](https://aws.amazon.com/compliance/shared-responsibility-model/) beschreibt dies als Sicherheit *der* Cloud und Sicherheit *in* der Cloud:
+ **Sicherheit der Cloud** — AWS ist verantwortlich für den Schutz der Infrastruktur, die AWS Dienste in der AWS Cloud ausführt. AWS bietet Ihnen auch Dienste, die Sie sicher nutzen können. Die Wirksamkeit unserer Sicherheitsfunktionen wird regelmäßig von externen Prüfern im Rahmen des [AWS -Compliance-Programms getestet und überprüft](https://aws.amazon.com/compliance/programs/). Weitere Informationen zu den Compliance-Programmen für DynamoDB finden Sie unter [Compliance-Programm für abgedeckte AWS -Services](https://aws.amazon.com/compliance/services-in-scope/).
+ **Sicherheit in der Cloud** — Ihre Verantwortung richtet sich nach dem AWS Dienst, den Sie nutzen. In Ihre Verantwortung fallen außerdem weitere Faktoren, wie z. B. die Vertraulichkeit der Daten, die Anforderungen Ihrer Organisation sowie geltende Gesetze und Vorschriften.

Diese Dokumentation beschreibt, wie Sie das Modell der übergreifenden Verantwortlichkeit bei der Verwendung von DynamoDB anwenden können. Die folgenden Themen veranschaulichen, wie Sie DynamoDB zur Erfüllung Ihrer Sicherheits- und Compliance-Ziele konfigurieren können. Sie erfahren auch, wie Sie andere AWS Dienste verwenden können, die Ihnen bei der Überwachung und Sicherung Ihrer DynamoDB-Ressourcen helfen können.

**Topics**
+ [AWS verwaltete Richtlinien für Amazon DynamoDB](ddb-security-iam.awsmanpol.md)
+ [Verwenden ressourcenbasierter Richtlinien für DynamoDB](access-control-resource-based.md)
+ [Verwenden der attributbasierten Zugriffskontrolle mit DynamoDB](attribute-based-access-control.md)
+ [Datenschutz in DynamoDB](data-protection.md)
+ [AWS Identity and Access Management (IAM) und DynamoDB](identity-and-access-mgmt.md)
+ [Compliance-Validierung nach Branche für DynamoDB](Compliance.md)
+ [Ausfallsicherheit und Notfallwiederherstellung in Amazon DynamoDB](disaster-recovery-resiliency.md)
+ [Infrastruktursicherheit in Amazon DynamoDB](network-isolation.md)
+ [AWS PrivateLink für DynamoDB](privatelink-interface-endpoints.md)
+ [Konfigurations- und Schwachstellenanalyse in Amazon DynamoDB](configuration-vulnerability.md)
+ [Bewährte Methoden für die Sicherheit für Amazon DynamoDB](best-practices-security.md)

# AWS verwaltete Richtlinien für Amazon DynamoDB
<a name="ddb-security-iam.awsmanpol"></a>

DynamoDB verwendet AWS verwaltete Richtlinien, um eine Reihe von Berechtigungen zu definieren, die der Dienst benötigt, um bestimmte Aktionen auszuführen. DynamoDB verwaltet und aktualisiert seine AWS verwalteten Richtlinien. Sie können die Berechtigungen in AWS verwalteten Richtlinien nicht ändern. Weitere Informationen zu AWS verwalteten Richtlinien finden Sie im IAM-Benutzerhandbuch unter [AWS Verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies).

DynamoDB kann gelegentlich zusätzliche Berechtigungen zu einer AWS verwalteten Richtlinie hinzufügen, um neue Funktionen zu unterstützen. Diese Art von Update betrifft alle Identitäten (Benutzer, Gruppen und Rollen), an welche die Richtlinie angehängt ist. Eine AWS verwaltete Richtlinie wird höchstwahrscheinlich aktualisiert, wenn eine neue Funktion eingeführt wird oder wenn neue Operationen verfügbar werden. DynamoDB entfernt keine Berechtigungen aus einer AWS verwalteten Richtlinie, sodass durch Richtlinienaktualisierungen Ihre bestehenden Berechtigungen nicht beeinträchtigt werden. Eine vollständige Liste der AWS verwalteten Richtlinien finden Sie unter [AWS Verwaltete](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/policy-list.html) Richtlinien.

## AWS verwaltete Richtlinie: Dynamo DBReplication ServiceRolePolicy
<a name="ddb-security-iam.awsmanpol.policy"></a>

Sie können die `DynamoDBReplicationServiceRolePolicy`-Richtlinie Ihren IAM-Entitäten nicht anfügen. Diese Richtlinie ist an eine serviceverknüpfte Rolle angehängt, die DynamoDB die Durchführung von Aktionen in Ihrem Namen ermöglicht. Weitere Informationen finden Sie unter [Verwenden von IAM mit globalen Tabellen](globaltables-security.md).

Diese Richtlinie gewährt Berechtigungen, die es der serviceverknüpften Rolle ermöglichen, eine Datenreplikation zwischen Replikaten globaler Tabellen durchzuführen. Sie gewährt auch Berechtigungen zur Verwaltung von Replikaten globaler Tabellen in Ihrem Namen.

**Details zu Berechtigungen**

Diese Richtlinie gewährt Berechtigungen für folgende Aktionen:
+ `dynamodb` – Ausführung einer Datenreplikation und Verwaltung von Tabellenreplikaten
+ `application-autoscaling` – Abruf und Verwaltung von Auto-Scaling-Einstellungen für Tabellen
+ `account` – Abruf des Regionsstatus, um die Zugänglichkeit von Replikaten zu bewerten
+ `iam` – Erstellung der serviceverknüpften Rolle für das Auto Scaling für Anwendungen, falls die betreffende serviceverknüpfte Rolle nicht bereits vorhanden ist

Die Definition dieser verwalteten Richtlinie finden Sie [hier](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/DynamoDBReplicationServiceRolePolicy.html).

## AWS verwaltete Richtlinie: Access\$1v2 AmazonDynamo DBFull
<a name="ddb-security-iam.awsmanpol.fullaccesspolicy-v2"></a>

Die eingeschränkte `AmazonDynamoDBFullAccess_v2`-Richtlinie gewährt Benutzern bestimmte Zugriffsberechtigungen. Sie können die `AmazonDynamoDBFullAccess_v2`-Richtlinie an Ihre IAM-Identitäten anfügen. Diese Richtlinie gewährt Administratorzugriff auf Amazon DynamoDB DynamoDB-Ressourcen und gewährt einer IAM-Identität (z. B. einem Benutzer, einer Gruppe oder einer Rolle) Zugriff auf die, in die DynamoDB integriert ist AWS-Services , um alle DynamoDB-Funktionen nutzen zu können. Die Verwendung dieser Richtlinie ermöglicht den Zugriff auf alle DynamoDB-Funktionen, die in der AWS-Managementkonsole verfügbar sind.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `Amazon DynamoDB`
+ `DynamoDB Accelerator`
+ `AWS KMS`
+ `AWS -Ressourcengruppen Tagging`
+ `Lambda`
+ `Application Auto Scaling`
+ `CloudWatch`
+ `Amazon Kinesis`
+ `Amazon EC2`
+ `IAM`

[Informationen zur Formatierung der Richtlinie finden Sie unter Access\$1v2. `JSON` AmazonDynamo DBFull](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBFullAccess_v2.html)

## AWS verwaltete Richtlinie: AmazonDynamo DBRead OnlyAccess
<a name="ddb-security-iam.awsmanpol.readonlypolicy"></a>

Sie können die `AmazonDynamoDBReadOnlyAccess`-Richtlinie an Ihre IAM-Identitäten anfügen.

Diese Richtlinie gewährt schreibgeschützten Zugriff auf Amazon DynamoDB.

**Details zu Berechtigungen**

Diese Richtlinie umfasst die folgenden Berechtigungen:
+ `Amazon DynamoDB` – Bietet schreibgeschützten Zugriff auf Amazon DynamoDB.
+ `Amazon DynamoDB Accelerator (DAX)` – Bietet schreibgeschützten Zugriff auf Amazon DynamoDB Accelerator (DAX).
+ `Application Auto Scaling` – Ermöglicht Prinzipalen, Konfigurationen Application Auto Scaling anzuzeigen. Dies ist erforderlich, damit Benutzer Richtlinien für die automatische Skalierung anzeigen können, die an eine Tabelle angehängt sind.
+ `CloudWatch`— Ermöglicht Prinzipalen das Anzeigen von Metrikdaten und Alarmen, die in CloudWatch konfiguriert sind. Dies ist erforderlich, damit Benutzer die Größe der Fakturierungstabelle und die CloudWatch Alarme, die für eine Tabelle konfiguriert wurden, einsehen können.
+ `AWS Data Pipeline`— Ermöglicht Prinzipalen das Anzeigen AWS Data Pipeline und Zuordnen von Objekten.
+ `Amazon EC2`— Ermöglicht Prinzipalen das Anzeigen von Amazon EC2 VPCs, Subnetzen und Sicherheitsgruppen.
+ `IAM` – Ermöglicht es Prinzipalen, IAM-Rollen anzuzeigen.
+ `AWS KMS`— Ermöglicht Prinzipalen das Anzeigen von Schlüsseln, die in konfiguriert sind. AWS KMS Dies ist erforderlich, damit Benutzer sehen können AWS KMS keys , was sie in ihrem Konto erstellt und verwaltet haben.
+ `Amazon SNS` – Ermöglicht es Prinzipalen, Amazon-SNS-Themen und -Abonnements nach Thema aufzulisten.
+ `AWS -Ressourcengruppen` – Ermöglicht es Prinzipalen, Ressourcengruppen und ihre Abfragen anzuzeigen.
+ `AWS -Ressourcengruppen Tagging` – Ermöglicht es Prinzipalen, alle markierten oder zuvor markierten Ressourcen in einer Region aufzulisten.
+ `Kinesis` – Ermöglicht es Prinzipalen, Beschreibungen für Kinesis-Datenströme anzuzeigen.
+ `Amazon CloudWatch Contributor Insights` – Ermöglicht es Prinzipale, Zeitreihendaten anzuzeigen, die von Contributor-Insights-Regeln erfasst wurden.

Informationen zum `JSON` Format der Richtlinie finden Sie unter [AmazonDynamoDBReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBReadOnlyAccess.html).

## DynamoDB-Updates für verwaltete Richtlinien AWS
<a name="ddb-security-iam.awsmanpol.updates"></a>

Diese Tabelle zeigt Aktualisierungen der AWS Zugriffsverwaltungsrichtlinien für DynamoDB.


****  

| Änderungen | Beschreibung | Änderungsdatum | 
| --- | --- | --- | 
| AmazonDynamoDBFullAccess – als veraltet gekennzeichnet | Diese Richtlinie wurde durch eine eingeschränkte Richtlinie namens `AmazonDynamoDBFullAccess_v2` ersetzt. Seit **April 2025** können Sie die `AmazonDynamoDBFullAccess`-Richtlinie keinen neuen Benutzern, Gruppen oder Rollen mehr anfügen. Weitere Informationen finden Sie unter [AWS verwaltete Richtlinie: Access\$1v2 AmazonDynamo DBFull](#ddb-security-iam.awsmanpol.fullaccesspolicy-v2).  | 28. April 2025 | 
| AmazonDynamoDBReadOnlyAccess-Aktualisierung einer bestehenden Richtlinie | AmazonDynamoDBReadOnlyAccess – Die Berechtigungen dynamodb:GetAbacStatus und dynamodb:UpdateAbacStatus wurden hinzugefügt. Mit diesen Berechtigungen können Sie den ABAC-Status anzeigen und ABAC für Sie AWS-Konto in der aktuellen Region aktivieren. | 18. November 2024 | 
| AmazonDynamoDBReadOnlyAccess-Aktualisierung einer bestehenden Richtlinie | AmazonDynamoDBReadOnlyAccess hat die Berechtigung dynamodb:GetResourcePolicy hinzugefügt. Diese Berechtigung ermöglicht den Zugriff auf Richtlinien, die auf Leseressourcen basieren und die DynamoDB-Ressourcen zugeordnet sind. | 20. März 2024 | 
| DynamoDBReplicationServiceRolePolicy-Aktualisierung einer bestehenden Richtlinie | DynamoDBReplicationServiceRolePolicy hat die Berechtigung dynamodb:GetResourcePolicy hinzugefügt. Diese Berechtigung ermöglicht es der serviceverknüpften Rolle, ressourcenbasierte Richtlinien zu lesen, die DynamoDB-Ressourcen zugeordnet sind. | 15. Dezember 2023 | 
| DynamoDBReplicationServiceRolePolicy-Aktualisierung einer bestehenden Richtlinie | DynamoDBReplicationServiceRolePolicy hat die Berechtigung account:ListRegions hinzugefügt. Diese Berechtigung ermöglicht es der serviceverknüpften Rolle, die Zugänglichkeit von Replikaten zu bewerten. | 10. Mai 2023 | 
| DynamoDBReplicationServiceRolePolicy zur Liste der verwalteten Richtlinien hinzugefügt | Es wurden Informationen über die verwaltete Richtlinie DynamoDBReplicationServiceRolePolicy hinzugefügt, die von der serviceverknüpften Rolle der globalen DynamoDB-Tabellen verwendet wird. | 10. Mai 2023 | 
| Globale DynamoDB-Tabellen haben mit der Verfolgung von Änderungen begonnen | DynamoDB Global Tables begann, Änderungen für seine AWS verwalteten Richtlinien nachzuverfolgen. | 10. Mai 2023 | 

# Verwenden ressourcenbasierter Richtlinien für DynamoDB
<a name="access-control-resource-based"></a>

DynamoDB unterstützt ressourcenbasierte Richtlinien für Tabellen, Indizes und Streams. Mit ressourcenbasierten Richtlinien können Sie Zugriffsberechtigungen definieren, indem Sie angeben, wer Zugriff auf jede Ressource hat und welche Aktionen für jede Ressource ausgeführt werden dürfen.

Sie können eine ressourcenbasierte Richtlinie an DynamoDB-Ressourcen wie eine Tabelle oder einen Stream anfügen. In dieser Richtlinie geben Sie Berechtigungen für Identity and Access Management (IAM)[-Prinzipale](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) an, die bestimmte Aktionen an diesen DynamoDB-Ressourcen ausführen können. Beispielsweise enthält die Richtlinie, die Sie an eine Tabelle anfügen, Berechtigungen für die Tabelle und ihre Indizes. Daher können ressourcenbasierte Richtlinien zur Vereinfachung der Zugriffskontrolle für Ihre DynamoDB-Tabellen, -Indizes und -Streams beitragen, indem Sie Berechtigungen auf Ressourcenebene definieren. Eine Richtlinie, die Sie an eine DynamoDB-Ressource anhängen können, darf maximal 20 KB groß sein.

Ein wesentlicher Vorteil der Verwendung ressourcenbasierter Richtlinien ist die Vereinfachung der kontoübergreifenden Zugriffskontrolle zur Bereitstellung eines kontoübergreifenden Zugriffs auf IAM-Prinzipale in verschiedenen AWS-Konten. Weitere Informationen finden Sie unter [Ressourcenbasierte Richtlinie für kontoübergreifenden Zugriff](rbac-examples.md#rbac-examples-cross-account).

Ressourcenbasierte Richtlinien unterstützen außerdem Integrationen in den [IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html)-Analysator für externen Zugriff und [Block Public Access (BPA)](rbac-bpa-rbp.md)-Funktionen. IAM Access Analyzer meldet den kontoübergreifenden Zugriff auf externe Entitäten, die in ressourcenbasierten Richtlinien angegeben sind. Das Tool bietet außerdem Transparenz, sodass Sie Ihre Berechtigungen verfeinern und dem Prinzip der geringsten Berechtigung entsprechen können. BPA hilft Ihnen, den öffentlichen Zugriff auf Ihre DynamoDB-Tabellen, -Indizes und -Streams zu verhindern, und wird in den Workflows zur Erstellung und Änderung ressourcenbasierter Richtlinien automatisch aktiviert.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/q9sBxrVgq4U?si=0cR4TJIlKvH9Wlu5/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/q9sBxrVgq4U?si=0cR4TJIlKvH9Wlu5)


**Topics**
+ [Erstellen Sie eine Tabelle mit einer ressourcenbasierten Richtlinie](rbac-create-table.md)
+ [Anhängen einer Richtlinie an eine vorhandene DynamoDB-Tabelle](rbac-attach-resource-based-policy.md)
+ [Anhängen einer ressourcenbasierten Richtlinie an einen DynamoDB-Stream](rbac-attach-resource-policy-streams.md)
+ [Entfernen einer ressourcenbasierten Richtlinie aus einer DynamoDB-Tabelle](rbac-delete-resource-based-policy.md)
+ [Kontoübergreifender Zugriff mit ressourcenbasierten Richtlinien in DynamoDB](rbac-cross-account-access.md)
+ [Blockieren des öffentlichen Zugriffs mit ressourcenbasierten Richtlinien in DynamoDB](rbac-bpa-rbp.md)
+ [DynamoDB API-Operationen, die von ressourcenbasierten Richtlinien unterstützt werden](rbac-iam-actions.md)
+ [Autorisierung mit identitätsbasierten IAM-Richtlinien und ressourcenbasierten DynamoDB-Richtlinien](rbac-auth-iam-id-based-policies-DDB.md)
+ [Beispiele für ressourcenbasierte DynamoDB-Richtlinien](rbac-examples.md)
+ [Überlegungen zu ressourcenbasierten DynamoDB-Richtlinien](rbac-considerations.md)
+ [Bewährte Methoden für ressourcenbasierte DynamoDB-Richtlinien](rbac-best-practices.md)

# Erstellen Sie eine Tabelle mit einer ressourcenbasierten Richtlinie
<a name="rbac-create-table"></a>

Sie können beim Erstellen einer Tabelle mithilfe der DynamoDB-Konsole, der [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)API, des [AWS SDK](rbac-attach-resource-based-policy.md#rbac-attach-policy-java-sdk) oder einer Vorlage eine ressourcenbasierte Richtlinie hinzufügen. AWS CLI CloudFormation 

## AWS CLI
<a name="rbac-create-table-CLI"></a>

Im folgenden Beispiel wird eine Tabelle erstellt, die mit dem Befehl benannt *MusicCollection* wird. `create-table` AWS CLI Dieser Befehl enthält auch den Parameter `resource-policy`, mit dem der Tabelle eine ressourcenbasierte Richtlinie hinzugefügt wird. Diese Richtlinie ermöglicht es *John* dem Benutzer [RestoreTableToPointInTime](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableToPointInTime.html), die [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)API-Aktionen [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html), und für die Tabelle auszuführen.

Denken Sie daran, den *italicized* Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.

```
aws dynamodb create-table \
    --table-name MusicCollection \
    --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
    --resource-policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::123456789012:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:RestoreTableToPointInTime\",
                        \"dynamodb:GetItem\",
                        \"dynamodb:DescribeTable\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection\"
                }
            ]
        }"
```

## AWS-Managementkonsole
<a name="rbac-create-table-console"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Wählen Sie auf dem Dashboard **Tabelle erstellen** aus.

1. Geben Sie im Feld **Tabellendetails** den Tabellennamen, den Partitionsschlüssel und den Sortierschlüssel ein.

1. Wählen Sie unter **Tabelleneinstellungen** die Option **Einstellungen anpassen** aus.

1. (Optional) Geben Sie Ihre Optionen für **Tabellenklasse**, **Kapazitätsrechner**, **Lese-/Schreibkapazitätseinstellungen**, **Sekundäre Indizes**, **Verschlüsselung im Ruhezustand** und **Löschschutz** an.

1. Fügen Sie unter **Ressourcenbasierte Richtlinie** eine Richtlinie hinzu, um die Zugriffsberechtigungen für die Tabelle und ihre Indizes zu definieren. In dieser Richtlinie geben Sie an, wer Zugriff auf jede Ressource hat und welche Aktionen für jede Ressource ausgeführt werden dürfen. Um eine Richtlinie hinzuzufügen, gehen Sie wie folgt vor:
   + Geben oder fügen Sie ein JSON-Richtliniendokument ein. Einzelheiten zur Sprache der IAM-Richtlinien finden Sie unter [Erstellen von Richtlinien mit dem JSON-Editor](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) im *IAM-Benutzerhandbuch*.
**Tipp**  
Beispiele für ressourcenbasierte Richtlinien finden Sie unter **Beispiele für Richtlinien** im Entwicklerhandbuch für Amazon DynamoDB.
   + Wählen Sie **Neue Anweisung hinzufügen** aus, um eine neue Anweisung hinzuzufügen, und geben Sie die Informationen in die bereitgestellten Felder ein. Wiederholen Sie diesen Vorgang für so viele Anweisungen, wie Sie hinzufügen möchten.
**Wichtig**  
Beheben Sie mögliche Sicherheitswarnungen, Fehler und Vorschläge, bevor Sie die Richtlinie speichern.

   Das folgende Beispiel für eine IAM-Richtlinie ermöglicht es dem Benutzer*John*, die [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)API-Aktionen [RestoreTableToPointInTime[GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableToPointInTime.html), und für die Tabelle auszuführen. *MusicCollection*

   Denken Sie daran, den *italicized* Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::123456789012:user/username"
         },
         "Action": [
           "dynamodb:RestoreTableToPointInTime",
           "dynamodb:GetItem",
           "dynamodb:PutItem"
         ],
         "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection"
       }
     ]
   }
   ```

------

1. (Optional) Wählen Sie unten rechts **Preview external access** (Vorschau des externen Zugriffs) aus, um eine Vorschau anzuzeigen, wie sich Ihre neue Richtlinie auf den öffentlichen und kontoübergreifenden Zugriff auf Ihre Ressource auswirkt. Bevor Sie Ihre Richtlinie speichern, können Sie überprüfen, ob sie neue IAM-Access-Analyzer-Ergebnisse einführt oder vorhandene Ergebnisse löst. Wenn Sie keinen aktiven Analyzer sehen, wählen Sie **Go to Access Analyzer** (Zu Access Analyzer wechseln) aus, um [einen Account Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) in IAM Access Analyzer zu erstellen. Weitere Informationen finden Sie unter [Vorschau des Zugriffs](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html).

1. Wählen Sie **Create table** (Tabelle erstellen) aus.

## AWS CloudFormation Vorlage
<a name="rbac-create-table-cfn"></a>

------
#### [ Using the AWS::DynamoDB::Table resource ]

Die folgende CloudFormation Vorlage erstellt mithilfe der Ressource [AWS: :DynamoDB: :Table](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html) eine Tabelle mit einem Stream. Diese Vorlage enthält außerdem ressourcenbasierte Richtlinien, die sowohl der Tabelle als auch dem Stream angehängt sind.

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "MusicCollectionTable": {
            "Type": "AWS::DynamoDB::Table",
            "Properties": {
                "AttributeDefinitions": [
                    {
                        "AttributeName": "Artist",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "Artist",
                        "KeyType": "HASH"
                    }
                ],
                "BillingMode": "PROVISIONED",
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 5
                },
                "StreamSpecification": {
                  "StreamViewType": "OLD_IMAGE",
                  "ResourcePolicy": {
                    "PolicyDocument": {
                      "Version": "2012-10-17",		 	 	 
                      "Statement": [
                        {
                            "Principal": {
                                "AWS": "arn:aws:iam::111122223333:user/John"
                            },
                            "Effect": "Allow",
                            "Action": [
                                "dynamodb:GetRecords",
                                "dynamodb:GetShardIterator",
                                "dynamodb:DescribeStream"
                            ],
                            "Resource": "*"
                        }
                      ]
                    }
                  }
                },
                "TableName": "MusicCollection",
                "ResourcePolicy": {
                    "PolicyDocument": {
                        "Version": "2012-10-17",		 	 	 
                        "Statement": [
                            {
                                "Principal": {
                                    "AWS": [
                                        "arn:aws:iam::111122223333:user/John"
                                    ]
                                },
                                "Effect": "Allow",
                                "Action": "dynamodb:GetItem",
                                "Resource": "*"
                            }
                        ]
                    }
                }
            }
           
        }
    }
}
```

------
#### [ Using the AWS::DynamoDB::GlobalTable resource ]

Die folgende CloudFormation Vorlage erstellt eine Tabelle mit der [AWS: :DynamoDB:: GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) -Ressource und fügt der Tabelle und ihrem Stream eine ressourcenbasierte Richtlinie hinzu.

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "GlobalMusicCollection": {
            "Type": "AWS::DynamoDB::GlobalTable",
            "Properties": {
                "TableName": "MusicCollection",
                "AttributeDefinitions": [{
                    "AttributeName": "Artist",
                    "AttributeType": "S"
                }],
                "KeySchema": [{
                    "AttributeName": "Artist",
                    "KeyType": "HASH"
                }],
                "BillingMode": "PAY_PER_REQUEST",
                "StreamSpecification": {
                    "StreamViewType": "NEW_AND_OLD_IMAGES"
                },
                "Replicas": [
                    {
                        "Region": "us-east-1",
                        "ResourcePolicy": {
                            "PolicyDocument": {
                                "Version": "2012-10-17",		 	 	 
                                "Statement": [{
                                    "Principal": {
                                        "AWS": [
                                            "arn:aws:iam::111122223333:user/John"
                                        ]
                                    },
                                    "Effect": "Allow",
                                    "Action": "dynamodb:GetItem",
                                    "Resource": "*"
                                }]
                            }
                        },
                        "ReplicaStreamSpecification": {
                            "ResourcePolicy": {
                                "PolicyDocument": {
                                    "Version": "2012-10-17",		 	 	 
                                    "Statement": [{
                                        "Principal": {
                                            "AWS": "arn:aws:iam::111122223333:user/John"
                                        },
                                        "Effect": "Allow",
                                        "Action": [
                                            "dynamodb:GetRecords",
                                            "dynamodb:GetShardIterator",
                                            "dynamodb:DescribeStream"
                                        ],
                                        "Resource": "*"
                                    }]
                                }
                            }
                        }
                    }
                ]
            }
        }
    }
}
```

------

# Anhängen einer Richtlinie an eine vorhandene DynamoDB-Tabelle
<a name="rbac-attach-resource-based-policy"></a>

[Sie können eine ressourcenbasierte Richtlinie an eine bestehende Tabelle anhängen oder eine vorhandene Richtlinie ändern, indem Sie die DynamoDB-Konsole, die [PutResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutResourcePolicy.html)API AWS CLI, das AWS SDK oder eine Vorlage verwenden.CloudFormation](rbac-create-table.md#rbac-create-table-cfn)

## AWS CLI Beispiel zum Anhängen einer neuen Richtlinie
<a name="rbac-attach-policy-CLI"></a>

Im folgenden Beispiel für eine IAM-Richtlinie wird der `put-resource-policy` AWS CLI Befehl verwendet, um eine ressourcenbasierte Richtlinie an eine vorhandene Tabelle anzuhängen. In diesem Beispiel kann der Benutzer *John* die [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)API-Aktionen [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html), [PutItem[UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html), und für eine vorhandene Tabelle mit dem Namen ausführen. *MusicCollection*

Denken Sie daran, den *italicized* Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.

```
aws dynamodb put-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \
    --policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::111122223333:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:GetItem\",
                        \"dynamodb:PutItem\",
                        \"dynamodb:UpdateItem\",
                        \"dynamodb:UpdateTable\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection\"
                }
            ]
        }"
```

## AWS CLI Beispiel für die bedingte Aktualisierung einer bestehenden Richtlinie
<a name="rbac-update-policy-CLI"></a>

Um eine vorhandene ressourcenbasierte Richtlinie einer Tabelle bedingt zu aktualisieren, können Sie den optionalen Parameter `expected-revision-id` verwenden. Im folgenden Beispiel wird die Richtlinie nur aktualisiert, wenn sie in DynamoDB vorhanden ist und ihre aktuelle Revisions-ID mit dem angegebenen `expected-revision-id`-Parameter übereinstimmt.

```
aws dynamodb put-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \
    --expected-revision-id 1709841168699 \ 
    --policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::111122223333:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:GetItem\",
                        \"dynamodb:UpdateItem\",
                        \"dynamodb:UpdateTable\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection\"
                }
            ]
        }"
```

## AWS-Managementkonsole
<a name="rbac-attach-policy-console"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Wählen Sie im Dashboard eine vorhandene Tabelle aus.

1. Navigieren Sie zur Registerkarte **Berechtigungen** und wählen Sie **Tabellenrichtlinie erstellen** aus.

1. Fügen Sie im Editor für ressourcenbasierte Richtlinien die Richtlinie hinzu, die Sie anhängen möchten, und wählen Sie **Richtlinie erstellen** aus.

   Das folgende Beispiel für eine IAM-Richtlinie ermöglicht es dem Benutzer *John* [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html), die [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)API-Aktionen, [PutItem[UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html), und für eine bestehende Tabelle mit dem Namen auszuführen. *MusicCollection*

   Denken Sie daran, den *italicized* Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
           "AWS": "arn:aws:iam::111122223333:user/username"
         },
         "Action": [
           "dynamodb:GetItem",
           "dynamodb:PutItem",
           "dynamodb:UpdateItem",
           "dynamodb:UpdateTable"
         ],
         "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection"
       }
     ]
   }
   ```

------

## AWS SDK for Java 2.x
<a name="rbac-attach-policy-java-sdk"></a>

Im folgenden IAM-Richtlinienbeispiel wird die Methode `putResourcePolicy` verwendet, um eine ressourcenbasierte Richtlinie an eine vorhandene Tabelle anzuhängen. Diese Richtlinie ermöglicht es einem Benutzer, die [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)API-Aktion für eine vorhandene Tabelle auszuführen.

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.DynamoDbException;
import software.amazon.awssdk.services.dynamodb.model.PutResourcePolicyRequest;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * [Get started with the AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html)
 */
public class PutResourcePolicy {

    public static void main(String[] args) {
        final String usage = """

                Usage:
                    <tableArn> <allowedAWSPrincipal>

                Where:
                    tableArn - The Amazon DynamoDB table ARN to attach the policy to. For example, arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection.
                    allowed AWS Principal - Allowed AWS principal ARN that the example policy will give access to. For example, arn:aws:iam::123456789012:user/John.
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String tableArn = args[0];
        String allowedAWSPrincipal = args[1];
        System.out.println("Attaching a resource-based policy to the Amazon DynamoDB table with ARN " +
                tableArn);
        Region region = Region.US_WEST_2;
        DynamoDbClient ddb = DynamoDbClient.builder()
                .region(region)
                .build();

        String result = putResourcePolicy(ddb, tableArn, allowedAWSPrincipal);
        System.out.println("Revision ID for the attached policy is " + result);
        ddb.close();
    }

    public static String putResourcePolicy(DynamoDbClient ddb, String tableArn, String allowedAWSPrincipal) {
        String policy = generatePolicy(tableArn, allowedAWSPrincipal);
        PutResourcePolicyRequest request = PutResourcePolicyRequest.builder()
                .policy(policy)
                .resourceArn(tableArn)
                .build();

        try {
            return ddb.putResourcePolicy(request).revisionId();
        } catch (DynamoDbException e) {
            System.err.println(e.getMessage());
            System.exit(1);
        }

        return "";
    }

    private static String generatePolicy(String tableArn, String allowedAWSPrincipal) {
        return "{\n" +
                "    \"Version\": \"2012-10-17\",\n" +,		 	 	 
                "    \"Statement\": [\n" +
                "        {\n" +
                "            \"Effect\": \"Allow\",\n" +
                "            \"Principal\": {\"AWS\":\"" + allowedAWSPrincipal + "\"},\n" +
                "            \"Action\": [\n" +
                "                \"dynamodb:GetItem\"\n" +
                "            ],\n" +
                "            \"Resource\": \"" + tableArn + "\"\n" +
                "        }\n" +
                "    ]\n" +
                "}";
    }
}
```

# Anhängen einer ressourcenbasierten Richtlinie an einen DynamoDB-Stream
<a name="rbac-attach-resource-policy-streams"></a>

[Sie können eine ressourcenbasierte Richtlinie an den Stream einer vorhandenen Tabelle anhängen oder eine vorhandene Richtlinie ändern, indem Sie die DynamoDB-Konsole, die [PutResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutResourcePolicy.html)API AWS CLI, das AWS SDK oder eine Vorlage verwenden.CloudFormation](rbac-create-table.md#rbac-create-table-cfn)

**Anmerkung**  
Sie können eine Richtlinie nicht an einen Stream anhängen, während Sie ihn mit dem oder erstellen. [CreateTable[UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) APIs Sie können eine Richtlinie jedoch ändern oder löschen, nachdem eine Tabelle gelöscht wurde. Sie können außerdem die Richtlinie eines deaktivierten Streams ändern oder löschen.



## AWS CLI
<a name="rbac-attach-policy-stream-CLI"></a>

Im folgenden Beispiel für eine IAM-Richtlinie wird der `put-resource-policy` AWS CLI Befehl verwendet, um eine ressourcenbasierte Richtlinie an den Stream einer Tabelle mit dem Namen anzuhängen. *MusicCollection* In diesem Beispiel kann der Benutzer *John* die [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)API-Aktionen [GetRecords[GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html), und im Stream ausführen.

Denken Sie daran, den *italicized* Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.

```
aws dynamodb put-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492 \
    --policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::111122223333:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:GetRecords\",
                        \"dynamodb:GetShardIterator\",
                        \"dynamodb:DescribeStream\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492\"
                }
            ]
        }"
```

## AWS-Managementkonsole
<a name="rbac-attach-policy-stream-console"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Wählen Sie im Dashboard der DynamoDB-Konsole die Option **Tabellen** und dann eine vorhandene Tabelle aus.

   Vergewissern Sie sich, dass in der ausgewählten Tabelle Streams aktiviert sind. Hinweise zum Aktivieren von Streams für eine Tabelle finden Sie unter [Aktivieren eines Streams](Streams.md#Streams.Enabling).

1. Wählen Sie die Registerkarte **Berechtigungen**.

1. Wählen Sie unter **Ressourcenbasierte Richtlinie für aktiven Stream** die Option **Stream-Richtlinie erstellen** aus.

1. Fügen Sie im Editor **Ressourcenbasierte Richtlinie** eine Richtlinie hinzu, um die Zugriffsberechtigungen für den Stream zu definieren. In dieser Richtlinie geben Sie an, wer Zugriff auf jede Ressource hat und welche Aktionen für jede Ressource ausgeführt werden dürfen. Um eine Richtlinie hinzuzufügen, gehen Sie wie folgt vor:
   + Geben oder fügen Sie ein JSON-Richtliniendokument ein. Einzelheiten zur Sprache der IAM-Richtlinien finden Sie unter [Erstellen von Richtlinien mit dem JSON-Editor](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) im *IAM-Benutzerhandbuch*.
**Tipp**  
Beispiele für ressourcenbasierte Richtlinien finden Sie unter **Beispiele für Richtlinien** im Entwicklerhandbuch für Amazon DynamoDB.
   + Wählen Sie **Neue Anweisung hinzufügen** aus, um eine neue Anweisung hinzuzufügen, und geben Sie die Informationen in die bereitgestellten Felder ein. Wiederholen Sie diesen Vorgang für so viele Anweisungen, wie Sie hinzufügen möchten.
**Wichtig**  
Beheben Sie mögliche Sicherheitswarnungen, Fehler und Vorschläge, bevor Sie die Richtlinie speichern.

1. (Optional) Wählen Sie unten rechts **Preview external access** (Vorschau des externen Zugriffs) aus, um eine Vorschau anzuzeigen, wie sich Ihre neue Richtlinie auf den öffentlichen und kontoübergreifenden Zugriff auf Ihre Ressource auswirkt. Bevor Sie Ihre Richtlinie speichern, können Sie überprüfen, ob sie neue IAM-Access-Analyzer-Ergebnisse einführt oder vorhandene Ergebnisse löst. Wenn Sie keinen aktiven Analyzer sehen, wählen Sie **Go to Access Analyzer** (Zu Access Analyzer wechseln) aus, um [einen Account Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) in IAM Access Analyzer zu erstellen. Weitere Informationen finden Sie unter [Vorschau des Zugriffs](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html).

1. Wählen Sie **Richtlinie erstellen** aus.

Im folgenden Beispiel für eine IAM-Richtlinie wird eine ressourcenbasierte Richtlinie an den Stream einer Tabelle mit dem Namen angehängt. *MusicCollection* In diesem Beispiel kann der Benutzer *John* die [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)API-Aktionen [GetRecords[GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html), und im Stream ausführen.

Denken Sie daran, den *italicized* Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/username"
      },
      "Action": [
        "dynamodb:GetRecords",
        "dynamodb:GetShardIterator",
        "dynamodb:DescribeStream"
      ],
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492"
      ]
    }
  ]
}
```

------

# Entfernen einer ressourcenbasierten Richtlinie aus einer DynamoDB-Tabelle
<a name="rbac-delete-resource-based-policy"></a>

Sie können eine ressourcenbasierte Richtlinie aus einer vorhandenen Tabelle löschen, indem Sie die DynamoDB-Konsole, die [DeleteResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteResourcePolicy.html)API AWS CLI, das AWS SDK oder eine Vorlage verwenden. CloudFormation 

## AWS CLI
<a name="rbac-delete-policy-CLI"></a>

Im folgenden Beispiel wird der `delete-resource-policy` AWS CLI Befehl verwendet, um eine ressourcenbasierte Richtlinie aus einer Tabelle mit dem Namen zu entfernen. *MusicCollection*

Denken Sie daran, den *italicized* Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.

```
aws dynamodb delete-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection
```

## AWS-Managementkonsole
<a name="rbac-delete-policy-console"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Wählen Sie im Dashboard der DynamoDB-Konsole die Option **Tabellen** und dann eine vorhandene Tabelle aus.

1. Wählen Sie **Berechtigungen**.

1. Wählen Sie im Dropdown-Menü **Richtlinie verwalten** die Option **Richtlinie löschen** aus.

1. Geben Sie im Dialogfeld **Ressourcenbasierte Richtlinie für Tabelle löschen** **confirm** ein, um Löschvorgang zu bestätigen.

1. Wählen Sie **Löschen** aus.

# Kontoübergreifender Zugriff mit ressourcenbasierten Richtlinien in DynamoDB
<a name="rbac-cross-account-access"></a>

Mithilfe einer ressourcenbasierten Richtlinie können Sie einen kontoübergreifenden Zugriff auf Ressourcen gewähren, die in verschiedenen AWS-Konten verfügbar sind. Jeder kontenübergreifende Zugriff, der gemäß den ressourcenbasierten Richtlinien zulässig ist, wird anhand der Ergebnisse des externen Zugriffs von IAM Access Analyzer gemeldet, wenn Sie einen Analyzer in derselben Ressource haben. AWS-Region IAM Access Analyzer führt Richtlinienprüfungen durch, um Ihre Richtlinie anhand der [IAM-Richtliniengrammatik](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) und der [bewährten Methoden](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) zu validieren. Diese Prüfungen generieren Ergebnisse und bieten umsetzbare Empfehlungen, die Sie beim Erstellen von Richtlinien unterstützen, die funktionsfähig sind und den bewährten Methoden für Sicherheit entsprechen. Sie können die aktiven Ergebnisse von IAM Access Analyzer auf der Registerkarte **Berechtigungen** der [DynamoDB-Konsole](https://console.aws.amazon.com/dynamodb/) anzeigen.

Weitere Informationen zum Validieren von Richtlinien mit IAM Access Analyzer finden Sie unter [Richtlinienvalidierung mit IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) im *IAM-Benutzerhandbuch*. Eine Liste der Warnungen, Fehler und Vorschläge, die von IAM Access Analyzer zurückgegeben werden, finden Sie unter [IAM-Access-Analyzer-Richtlinienprüfungsreferenz](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html).

Gehen Sie wie folgt vor, um einem Benutzer A in Konto A die [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)Erlaubnis zu erteilen, auf eine Tabelle B in Konto B zuzugreifen:

1. Hängen Sie eine ressourcenbasierte Richtlinie an Tabelle B an, die Benutzer A die Berechtigung zum Ausführen der Aktion `GetItem` erteilt.

1. Hängen Sie eine ressourcenbasierte Richtlinie an Benutzer A an, die diesem die Berechtigung zum Ausführen der Aktion `GetItem` in Tabelle B erteilt.

Mit der Option **Vorschau des externen Zugriffs** in der [DynamoDB-Konsole](https://console.aws.amazon.com/dynamodb/) können Sie in einer Vorschau sehen, wie sich Ihre neue Richtlinie auf den öffentlichen und den kontoübergreifenden Zugriff auf Ihre Ressource auswirkt. Bevor Sie Ihre Richtlinie speichern, können Sie überprüfen, ob sie neue IAM-Access-Analyzer-Ergebnisse einführt oder vorhandene Ergebnisse löst. Wenn Sie keinen aktiven Analyzer sehen, wählen Sie **Go to Access Analyzer** (Zu Access Analyzer wechseln) aus, um [einen Account Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) in IAM Access Analyzer zu erstellen. Weitere Informationen finden Sie unter [Vorschau des Zugriffs](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html).

Der Tabellennamenparameter in der DynamoDB-Datenebene und der Steuerungsebene APIs akzeptiert den vollständigen Amazon-Ressourcennamen (ARN) der Tabelle, um kontenübergreifende Operationen zu unterstützen. Wenn Sie nur den Parameter für den Tabellennamen anstelle eines vollständigen ARN angeben, wird die API-Operation für die Tabelle in dem Konto ausgeführt, zu dem der Anforderer gehört. Ein Beispiel einer Richtlinie, die den kontoübergreifenden Zugriff verwendet, finden Sie unter [Ressourcenbasierte Richtlinie für kontoübergreifenden Zugriff](rbac-examples.md#rbac-examples-cross-account).

Das Konto des Ressourceneigentümers wird auch dann belastet, wenn ein Prinzipal aus einem anderen Konto einen Lese- oder Schreibvorgang in der DynamoDB-Tabelle im Konto des Eigentümers ausführt. Wenn für die Tabelle Durchsatz bereitgestellt wurde, bestimmt die Summe aller Anfragen von den Eigentümerkonten und den Anforderern in anderen Konten, ob die Anfrage gedrosselt (wenn Autoscaling deaktiviert ist) oder skaliert wird, wenn Autoscaling aktiviert ist. up/down 

Die Anfragen werden sowohl in den CloudTrail Protokollen des Besitzers als auch des Anfordererkontos protokolliert, sodass jedes der beiden Konten nachverfolgen kann, welches Konto auf welche Daten zugegriffen hat.

## Teilen Sie den Zugriff mit kontoübergreifenden AWS Lambda-Funktionen
<a name="rbac-analyze-cross-account-lambda-access"></a>

**Lambda-Funktionen in Konto A**

1. Gehen Sie zur [IAM-Konsole](https://console.aws.amazon.com/iam/), um eine IAM-Rolle zu erstellen, die als [Lambda-Ausführungsrolle für Ihre AWS Lambda-Funktion](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) in Konto A verwendet wird. Fügen Sie die verwaltete IAM-Richtlinie `AWSLambdaDynamoDBExecutionRole` hinzu, die über die erforderlichen DynamoDB Streams- und Lambda-Aufrufberechtigungen verfügt. Diese Richtlinie gewährt auch Zugriff auf alle potenziellen DynamoDB Streams Streams-Ressourcen, auf die Sie möglicherweise in Konto A Zugriff haben.

1. Erstellen Sie in der [Lambda-Konsole](https://console.aws.amazon.com/lambda/) eine AWS Lambda-Funktion zur Verarbeitung von Datensätzen in einem DynamoDB-Stream und wählen Sie während der Einrichtung für die Ausführungsrolle die Rolle aus, die Sie im vorherigen Schritt erstellt haben.

1. Stellen Sie dem Eigentümer von Konto B der DynamoDB-Streams die Lambda-Funktionsausführungsrolle zur Verfügung, um die ressourcenbasierte Richtlinie für den kontoübergreifenden Lesezugriff zu konfigurieren.

1. Schließen Sie die Einrichtung der Lambda-Funktion ab.

**DynamoDB-Stream in Konto B**

1. Rufen Sie die kontoübergreifende Lambda-Ausführungsrolle von Konto A ab, die die Lambda-Funktion aufruft.

1. Wählen Sie in der Amazon DynamoDB DynamoDB-Konsole in Konto B die Tabelle für den kontoübergreifenden Lambda-Trigger aus. Suchen Sie auf der Registerkarte **Exporte und Streams** Ihren DynamoDB-Stream-ARN. Stellen Sie sicher, dass der DynamoDB-Stream-Status On lautet, und notieren Sie sich den vollständigen Stream-ARN, da Sie ihn für die Ressourcenrichtlinie benötigen.

1. Klicken Sie auf der Registerkarte „**Berechtigungen**“ auf die Schaltfläche „**Stream-Richtlinie erstellen**“, um den visuellen Richtlinien-Editor zu starten. Klicken Sie auf die Schaltfläche **Neue Erklärung hinzufügen** oder bearbeiten Sie die Richtlinie, falls bereits eine vorhanden ist.

1. Erstellen Sie eine Richtlinie, die die Lambda-Ausführungsrolle in Konto A als Principal angibt, und gewähren Sie die erforderlichen DynamoDB-Stream-Aktionen. Stellen Sie sicher, dass Sie die Aktionen`dynamodb:DescribeStream`,`dynamodb:GetRecords`, `dynamodb:GetShardIterator` und angeben. `dynamodb:ListShards` Weitere Informationen zu Beispielressourcenrichtlinien für DynamoDB Streams finden Sie unter Beispiele für ressourcenbasierte [DynamoDB-Richtlinien](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html).

**Anmerkung**  
Für den kontenübergreifenden Zugriff auf die [Kontrollebene gilt](HowItWorks.API.md#HowItWorks.API.ControlPlane) ein niedrigerer APIs Grenzwert für Transaktionen pro Sekunde (TPS) von 500 Anfragen.

# Blockieren des öffentlichen Zugriffs mit ressourcenbasierten Richtlinien in DynamoDB
<a name="rbac-bpa-rbp"></a>

[Block Public Access (BPA)](#rbac-bpa-rbp) ist eine Funktion zum Identifizieren und Verhindern des Anhängens von ressourcenbasierten Richtlinien, die öffentlichen Zugriff auf Ihre DynamoDB-Tabellen, -Indizes oder -Streams in Ihren [Amazon Web Services (AWS)](https://aws.amazon.com/)-Konten gewähren. Mit BPA können Sie den öffentlichen Zugriff auf Ihre DynamoDB-Ressourcen verhindern. BPA führt während der Erstellung oder Änderung einer ressourcenbasierten Richtlinie Prüfungen durch und hilft Ihnen, Ihre Sicherheitslage mit DynamoDB zu verbessern.

BPA analysiert mittels [Automated Reasoning](https://aws.amazon.com/what-is/automated-reasoning/) den durch Ihre ressourcenbasierte Richtlinie gewährten Zugriff und warnt Sie, wenn solche Berechtigungen zum Zeitpunkt der Verwaltung einer ressourcenbasierten Richtlinie gefunden werden. Bei der Analyse wird der Zugriff über alle ressourcenbasierten Richtlinienanweisungen, Aktionen und die in Ihren Richtlinien verwendeten Bedingungsschlüssel überprüft.

**Wichtig**  
BPA trägt zum Schutz Ihrer Ressourcen bei, indem verhindert wird, dass öffentlicher Zugriff über die ressourcenbasierten Richtlinien gewährt wird, die Ihren DynamoDB-Ressourcen wie Tabellen, Indizes und Streams direkt angehängt sind. Überprüfen Sie zusätzlich zur Aktivierung von BPA sorgfältig die folgenden Richtlinien, um sicherzustellen, dass sie keinen öffentlichen Zugriff gewähren:  
Identitätsbasierte Richtlinien, die mit zugehörigen AWS Principals verknüpft sind (z. B. IAM-Rollen)
Ressourcenbasierte Richtlinien, die mit zugehörigen AWS Ressourcen verknüpft sind (z. B. (KMS-) Schlüssel) AWS Key Management Service 

Sie müssen sicherstellen, dass der [Prinzipal](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) keinen `*`-Eintrag enthält oder dass keiner der angegebenen Bedingungsschlüssel den Zugriff der Prinzipale auf die Ressource einschränkt. Wenn die ressourcenbasierte Richtlinie öffentlichen Zugriff auf Ihre Tabelle, Indizes oder Stream-Across gewährt, blockiert DynamoDB Sie daran AWS-Konten, die Richtlinie zu erstellen oder zu ändern, bis die Spezifikation in der Richtlinie korrigiert und als nicht öffentlich eingestuft wurde.

Sie können eine Richtlinie als nicht öffentlich festlegen, indem Sie einen oder mehrere Prinzipale im `Principal`-Block angeben. Im folgenden Beispiel für eine ressourcenbasierte Richtlinie wird der öffentliche Zugriff blockiert, indem zwei Prinzipale angegeben werden.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "123456789012",
      "111122223333"
    ]
  },
  "Action": "dynamodb:*",
  "Resource": "*"
}
```

Richtlinien, die den Zugriff durch die Angabe bestimmter Bedingungsschlüssel einschränken, gelten ebenfalls nicht als öffentlich. Neben der Auswertung des in der ressourcenbasierten Richtlinie angegebenen Prinzipals werden die folgenden [vertrauenswürdigen Bedingungsschlüssel](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) verwendet, um die Auswertung einer ressourcenbasierten Richtlinie für den nicht öffentlichen Zugriff abzuschließen:
+ `aws:PrincipalAccount`
+ `aws:PrincipalArn`
+ `aws:PrincipalOrgID`
+ `aws:PrincipalOrgPaths`
+ `aws:SourceAccount`
+ `aws:SourceArn`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:UserId`
+ `aws:PrincipalServiceName`
+ `aws:PrincipalServiceNamesList`
+ `aws:PrincipalIsAWSService`
+ `aws:Ec2InstanceSourceVpc`
+ `aws:SourceOrgID`
+ `aws:SourceOrgPaths`

Damit eine ressourcenbasierte Richtlinie nicht öffentlich ist, dürfen die Werte für den Amazon-Ressourcennamen (ARN) und Zeichenfolgenschlüssel außerdem keine Platzhalter oder Variablen enthalten. Wenn Ihre ressourcenbasierte Richtlinie den `aws:PrincipalIsAWSService`-Schlüssel verwendet, müssen Sie sicherstellen, dass Sie den Schlüsselwert auf „true“ gesetzt haben.

Die folgende Richtlinie grenzt den Zugriff auf den Benutzer `John` im angegebenen Konto ein. Aufgrund dieser Bedingung ist der `Principal` eingeschränkt und wird als nicht öffentlich betrachtet.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "*"
  },
  "Action": "dynamodb:*",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:PrincipalArn": "arn:aws:iam::123456789012:user/John"
    }
  }
}
```

Das folgende Beispiel für eine nicht öffentliche ressourcenbasierte Richtlinie schränkt `sourceVPC` auf die Verwendung des `StringEquals`-Operators ein.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "dynamodb:*",
      "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection",
      "Condition": {
        "StringEquals": {
          "aws:SourceVpc": [
            "vpc-91237329"
          ]
        }
      }
    }
  ]
}
```

------

# DynamoDB API-Operationen, die von ressourcenbasierten Richtlinien unterstützt werden
<a name="rbac-iam-actions"></a>

In diesem Thema werden die API-Operationen aufgeführt, die von ressourcenbasierten Richtlinien unterstützt werden. Für den kontoübergreifenden Zugriff können Sie jedoch nur einen bestimmten Satz von DynamoDB APIs über ressourcenbasierte Richtlinien verwenden. Sie können ressourcenbasierte Richtlinien nicht an Ressourcentypen wie Backups und Importe anhängen. Die IAM-Aktionen, die dem APIs Betrieb mit diesen Ressourcentypen entsprechen, sind von den unterstützten IAM-Aktionen in ressourcenbasierten Richtlinien ausgeschlossen. Weil Tabellenadministratoren interne Tabelleneinstellungen, wie z. B. [UpdateTimeToLive](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTimeToLive.html)und, innerhalb desselben Kontos konfigurieren APIs [DisableKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DisableKinesisStreamingDestination.html), keinen kontenübergreifenden Zugriff über ressourcenbasierte Richtlinien unterstützen.

Die DynamoDB-Daten- und Steuerungsebene APIs , die den kontenübergreifenden Zugriff unterstützen, unterstützen auch das Überladen von Tabellennamen, sodass Sie den Tabellen-ARN anstelle des Tabellennamens angeben können. Sie können den Tabellen-ARN im `TableName` Parameter dieser angeben APIs. Nicht alle APIs unterstützen jedoch den kontoübergreifenden Zugriff.

**Topics**
+ [Datenebenen-API-Operationen](#rbac-data-plane-actions)
+ [PartiQL-API-Operationen](#rbac-partiql-actions)
+ [Steuerebenen-API-Operationen](#rbac-control-plane-actions)
+ [API-Operationen für globale Tabellen in Version 2019.11.21 (aktuell)](#rbac-current-global-table-actions)
+ [API-Operationen für globale Tabellen in Version 2017.11.29 (veraltet)](#rbac-legacy-global-table-actions)
+ [Tags-API-Operation](#rbac-tags-actions)
+ [API-Operationen für Backup und Wiederherstellungen](#rbac-backup-restore-actions)
+ [Kontinuierliche API-Operationen Backup/Restore (PITR)](#rbac-continuous-backup-restore-actions)
+ [API-Operationen für Contributor Insights](#rbac-contributor-insights-actions)
+ [Export-API-Operationen](#rbac-export-actions)
+ [Import-API-Operationen](#rbac-import-actions)
+ [API-Operationen für Amazon Kinesis Data Streams](#rbac-kinesis-actions)
+ [API-Operationen für ressourcenbasierte Richtlinien](#rbac-rbp-actions)
+ [Time-to-Live API-Operationen](#rbac-ttl-actions)
+ [Sonstige API-Operationen](#rbac-other-actions)
+ [API-Operationen in DynamoDB Streams](#rbac-ds-actions)

## Datenebenen-API-Operationen
<a name="rbac-data-plane-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch [Datenebenen](HowItWorks.API.md#HowItWorks.API.DataPlane)-API-Operationen für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Datenebene - Tables/indexes APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)   | Ja | Ja | 
|   [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)   | Ja | Ja | 
|   [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)   | Ja | Ja | 
|   [Query](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html)   | Ja | Ja | 
|   [Scan](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html)   | Ja | Ja | 
|   [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)   | Ja | Ja | 
|   [TransactGetItems](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TransactGetItems.html)   | Ja | Ja | 
|   [TransactWriteItems](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TransactWriteItems.html)   | Ja | Ja | 
|   [BatchGetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html)   | Ja | Ja | 
|   [BatchWriteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html)   | Ja | Ja | 

## PartiQL-API-Operationen
<a name="rbac-partiql-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch [PartiQL](HowItWorks.API.md#HowItWorks.API.DataPlane.partiql)-API-Operationen für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| PartiQL APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [BatchExecuteStatement](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchExecuteStatement.html)   | Ja | Nein | 
|   [ExecuteStatement](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ExecuteStatement.html)   | Ja | Nein | 
|   [ExecuteTransaction](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ExecuteTransaction.html)   | Ja | Nein | 

## Steuerebenen-API-Operationen
<a name="rbac-control-plane-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch [Steuerebenen](HowItWorks.API.md#HowItWorks.API.ControlPlane)-API-Operationen für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Steuerungsebene - Tabellen APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)   | Nein | Nein | 
|   [DeleteTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html)   | Ja | Ja | 
|   [DescribeTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html)   | Ja | Ja | 
|   [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)   | Ja | Ja | 

## API-Operationen für globale Tabellen in Version 2019.11.21 (aktuell)
<a name="rbac-current-global-table-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch API-Operationen für [globale Tabellen in Version 2019.11.21 (aktuell)](GlobalTables.md) für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Version 2019.11.21 (Aktuell) globale Tabellen APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DescribeTableReplicaAutoScaling](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTableReplicaAutoScaling.html)   | Ja | Nein | 
|   [UpdateTableReplicaAutoScaling](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTableReplicaAutoScaling.html)   | Ja | Nein | 

## API-Operationen für globale Tabellen in Version 2017.11.29 (veraltet)
<a name="rbac-legacy-global-table-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch API-Operationen für [globale Tabellen in Version 2017.11.29 (veraltet)](globaltables.V1.md) für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Version 2017.11.29 (Legacy) globale Tabellen APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [CreateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateGlobalTable.html)   | Nein | Nein | 
|   [DescribeGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTable.html)   | Nein | Nein | 
|   [DescribeGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTableSettings.html)   | Nein | Nein | 
|   [ListGlobalTables](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListGlobalTables.html)   | Nein | Nein | 
|   [UpdateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTable.html)   | Nein | Nein | 
|   [UpdateGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTableSettings.html)   | Nein | Nein | 

## Tags-API-Operation
<a name="rbac-tags-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch API-Operationen im Zusammenhang mit [Tags](Tagging.Operations.md) für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Schlagworte APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [ListTagsOfResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTagsOfResource.html)   | Ja | Ja | 
|   [TagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TagResource.html)   | Ja | Ja | 
|   [UntagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UntagResource.html)   | Ja | Ja | 

## API-Operationen für Backup und Wiederherstellungen
<a name="rbac-backup-restore-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch API-Operationen im Zusammenhang mit [Backups und Wiederherstellungen](Backup-and-Restore.md) für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Backup und Wiederherstellen APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [CreateBackup](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateBackup.html)   | Ja | Nein | 
|   [DescribeBackup](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeBackup.html)   | Nein | Nein | 
|   [DeleteBackup](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteBackup.html)   | Nein | Nein | 
|  [RestoreTableFromBackup](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableFromBackup.html)  | Nein | Nein | 

## Kontinuierliche API-Operationen Backup/Restore (PITR)
<a name="rbac-continuous-backup-restore-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch API-Operationen im Zusammenhang mit [Continuous Backup/Restore (PITR)](Point-in-time-recovery.md) für ressourcenbasierte Richtlinien und kontenübergreifenden Zugriff bereitgestellt wird.


| Kontinuierlich (PITR) Backup/Restore APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DescribeContinuousBackups](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeContinuousBackups.html)   | Ja | Nein | 
|   [RestoreTableToPointInTime](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableToPointInTime.html)   | Ja | Nein | 
|   [UpdateContinuousBackups](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateContinuousBackups.html)   | Ja | Nein | 

## API-Operationen für Contributor Insights
<a name="rbac-contributor-insights-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch API-Operationen im Zusammenhang mit [Continuous Backup/Restore (PITR)](Point-in-time-recovery.md) für ressourcenbasierte Richtlinien und kontenübergreifenden Zugriff bereitgestellt wird.


| Einblicke von Mitwirkenden APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DescribeContributorInsights](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeContributorInsights.html)   | Ja | Nein | 
|   [ListContributorInsights](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListContributorInsights.html)   | Nein | Nein | 
|   [UpdateContributorInsights](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateContributorInsights.html)   | Ja | Nein | 

## Export-API-Operationen
<a name="rbac-export-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch Export-API-Operationen für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Exportieren APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DescribeExport](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeExport.html)   | Nein | Nein | 
|   [ExportTableToPointInTime](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ExportTableToPointInTime.html)   | Ja | Nein | 
|   [ListExports](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListExports.html)   | Nein | Nein | 

## Import-API-Operationen
<a name="rbac-import-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch Import-API-Operationen für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Importieren APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DescribeImport](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeImport.html)   | Nein | Nein | 
|   [ImportTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ImportTable.html)   | Nein | Nein | 
|   [ListImports](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListImports.html)   | Nein | Nein | 

## API-Operationen für Amazon Kinesis Data Streams
<a name="rbac-kinesis-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch API-Operationen für Kinesis Data Streams für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Kinesis APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DescribeKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeKinesisStreamingDestination.html)   | Ja | Nein | 
|   [DisableKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DisableKinesisStreamingDestination.html)   | Ja | Nein | 
|   [EnableKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_EnableKinesisStreamingDestination.html)   | Ja | Nein | 
|   [UpdateKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateKinesisStreamingDestination.html)   | Ja | Nein | 

## API-Operationen für ressourcenbasierte Richtlinien
<a name="rbac-rbp-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch API-Operationen im Zusammenhang mit ressourcenbasierten Richtlinien für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Ressourcenbasierte Richtlinie APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [GetResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetResourcePolicy.html)   | Ja | Nein | 
|   [PutResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutResourcePolicy.html)   | Ja | Nein | 
|   [DeleteResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteResourcePolicy.html)   | Ja | Nein | 

## Time-to-Live API-Operationen
<a name="rbac-ttl-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch [Time-to-Live](TTL.md) (TTL)-API-Operationen für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| TTL APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DescribeTimeToLive](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTimeToLive.html)   | Ja | Nein | 
|   [UpdateTimeToLive](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTimeToLive.html)   | Ja | Nein | 

## Sonstige API-Operationen
<a name="rbac-other-actions"></a>

In der folgenden Tabelle ist die Unterstützung auf API-Ebene aufgeführt, die durch sonstige verschiedene API-Operationen für ressourcenbasierte Richtlinien und den kontoübergreifenden Zugriff bereitgestellt wird.


| Andere APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DescribeLimits](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeLimits.html)   | Nein | Nein | 
|   [DescribeEndpoints](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeEndpoints.html)   | Nein | Nein | 
|   [ListBackups](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListBackups.html)   | Nein | Nein | 
|   [ListTables](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTables.html)   | Nein | Nein | 

## API-Operationen in DynamoDB Streams
<a name="rbac-ds-actions"></a>

In der folgenden Tabelle ist die Unterstützung von DynamoDB Streams auf API-Ebene APIs für ressourcenbasierte Richtlinien und kontoübergreifenden Zugriff aufgeführt.


| DynamoDB Streams APIs | Unterstützung für ressourcenbasierte Richtlinien | Kontoübergreifende Unterstützung | 
| --- | --- | --- | 
|   [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)   | Ja | Ja | 
|   [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html)   | Ja | Ja | 
|   [GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)   | Ja | Ja | 
|   [ListStreams](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_ListStreams.html)   | Nein | Nein | 

# Autorisierung mit identitätsbasierten IAM-Richtlinien und ressourcenbasierten DynamoDB-Richtlinien
<a name="rbac-auth-iam-id-based-policies-DDB"></a>

**Identitätsbasierte Richtlinien** sind an eine Identität wie IAM-Benutzer, -Benutzergruppen und -Rollen angehängt. Diese IAM-Richtliniendokumente steuern, welche Aktionen eine Identität für welche Ressourcen und unter welchen Bedingungen ausführen kann. Identitätsbasierte Richtlinien können [verwaltet](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) oder [Inline](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) sein.

**Ressourcenbasierte Richtlinien** sind IAM-Richtliniendokumente, die Sie an eine Ressource wie eine DynamoDB-Tabelle anhängen. Diese Richtlinien erteilen dem angegebenen Auftraggeber die Berechtigung zum Ausführen bestimmter Aktionen für diese Ressource und definiert, unter welchen Bedingungen dies gilt. Beispielsweise umfasst die ressourcenbasierte Richtlinie für eine DynamoDB-Tabelle auch den Index, der der Tabelle zugeordnet ist. Ressourcenbasierte Richtlinien sind Inline-Richtlinien. Es gibt keine verwalteten ressourcenbasierten Richtlinien.

Weitere Informationen zu diesen Richtlinien finden Sie unter [Identitätsbasierte Richtlinien und ressourcenbasierte Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) im *IAM-Benutzerhandbuch*.

Wenn der IAM-Prinzipal aus demselben Konto stammt wie der Ressourceneigentümer, reicht eine ressourcenbasierte Richtlinie aus, um Zugriffsberechtigungen für die Ressource festzulegen. Sie können sich weiterhin für eine identitätsbasierte IAM-Richtlinie und eine ressourcenbasierte Richtlinie entscheiden. Für den kontoübergreifenden Zugriff müssen Sie den Zugriff sowohl in den Identitäts- als auch den Ressourcenrichtlinien explizit zulassen, wie unter [Kontoübergreifender Zugriff mit ressourcenbasierten Richtlinien in DynamoDB](rbac-cross-account-access.md) beschrieben. Wenn Sie beide Arten von Richtlinien verwenden, wird eine Richtlinie wie unter [Ermitteln, ob eine Anforderung innerhalb eines Kontos zugelassen oder verweigert wird](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow) beschrieben ausgewertet.

**Wichtig**  
Wenn eine identitätsbasierte Richtlinie bedingungslosen Zugriff auf eine DynamoDB-Tabelle gewährt (z. B. ohne Bedingungen), `dynamodb:GetItem` schränkt eine ressourcenbasierte Richtlinie, die den Zugriff mit aktivierten Bedingungen erlaubt, diesen Zugriff nicht ein. `dynamodb:Attributes` Die bedingungslose Zulassung der identitätsbasierten Richtlinie hat Vorrang, und die Bedingungen der ressourcenbasierten Richtlinie gelten nicht als Einschränkungen. Um den Zugriff auf bestimmte Attribute einzuschränken, verwenden Sie eine explizite `Deny` Anweisung, anstatt sich ausschließlich auf bedingte `Allow` Anweisungen in der ressourcenbasierten Richtlinie zu verlassen.

# Beispiele für ressourcenbasierte DynamoDB-Richtlinien
<a name="rbac-examples"></a>

Wenn Sie im Feld `Resource` einer ressourcenbasierten Richtlinie einen ARN angeben, wird die Richtlinie nur wirksam, wenn der angegebene ARN mit dem ARN der DynamoDB-Ressource übereinstimmt, an die er angehängt ist.

**Anmerkung**  
Denken Sie daran, den *italicized* Text durch Ihre ressourcenspezifischen Informationen zu ersetzen.

## Ressourcenbasierte Richtlinie für eine Tabelle
<a name="rbac-examples-get"></a>

Die folgende ressourcenbasierte Richtlinie, die an eine DynamoDB-Tabelle mit dem Namen angehängt ist*MusicCollection*, erteilt den IAM-Benutzern *John* die *Jane* Berechtigung, Aktionen auf der Ressource auszuführen [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html). [BatchGetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html)*MusicCollection*

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
        "Effect": "Allow",
        "Principal": {
          "AWS": [
            "arn:aws:iam::111122223333:user/username",
            "arn:aws:iam::111122223333:user/Jane"
          ]
        },
        "Action": [
          "dynamodb:GetItem",
          "dynamodb:BatchGetItem"
        ],
        "Resource": [
          "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection"
        ]
    }
  ]
}
```

------

## Ressourcenbasierte Richtlinie für einen Stream
<a name="rbac-examples-streams"></a>

Die folgende ressourcenbasierte Richtlinie, die an einen DynamoDB-Stream mit dem Namen angehängt ist, `2024-02-12T18:57:26.492` gibt den IAM-Benutzern die *Jane* Berechtigung [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html),, [GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html), *John* und [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)API-Aktionen auf der Ressource durchzuführen. `2024-02-12T18:57:26.492`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::111122223333:user/username",
          "arn:aws:iam::111122223333:user/Jane"
        ]
      },
      "Action": [
        "dynamodb:DescribeStream",
        "dynamodb:GetRecords",
        "dynamodb:GetShardIterator"
      ],
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492"
      ]
    }
  ]
}
```

------

## Ressourcenbasierte Richtlinie für den Zugriff zur Ausführung aller Aktionen für bestimmte Ressourcen
<a name="rbac-examples-wildcard"></a>

Damit ein Benutzer alle Aktionen für eine Tabelle und alle zugehörigen Indizes mit einer Tabelle ausführen kann, können Sie einen Platzhalter (\$1) verwenden, um die mit der Tabelle verknüpften Aktionen und Ressourcen darzustellen. Die Verwendung eines Platzhalterzeichens für die Ressourcen ermöglicht dem Benutzer den Zugriff auf die DynamoDB-Tabelle und alle zugehörigen Indizes, einschließlich der Indizes, die noch nicht erstellt wurden. Die folgende Richtlinie gibt dem Benutzer beispielsweise die *John* Erlaubnis, alle Aktionen an der *MusicCollection* Tabelle und all ihren Indizes durchzuführen, einschließlich aller Indizes, die in future erstellt werden.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:user/role-name"
      },
      "Action": "dynamodb:*",
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection",
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection/index/index-name"
      ]
    }
  ]
}
```

------

## Ressourcenbasierte Richtlinie für kontoübergreifenden Zugriff
<a name="rbac-examples-cross-account"></a>

Sie können Berechtigungen für eine kontoübergreifende IAM-Identität für den Zugriff auf DynamoDB-Ressourcen angeben. Beispielsweise benötigen Sie möglicherweise einen Benutzer mit einem vertrauenswürdigen Konto, um Lesezugriff auf den Inhalt Ihrer Tabelle zu erhalten, unter der Bedingung, dass er nur auf bestimmte Elemente und bestimmte Attribute in diesen Elementen zugreift. Die folgende Richtlinie ermöglicht Benutzern *John* über eine vertrauenswürdige AWS-Konto ID *111111111111* den Zugriff auf Daten aus einer Tabelle im Konto *123456789012* mithilfe der [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)API. Die Richtlinie stellt sicher, dass der Benutzer nur auf Elemente mit einem Primärschlüssel zugreifen kann *Jane* und dass der Benutzer nur die Attribute `Artist` und`SongTitle`, aber keine anderen Attribute abrufen kann.

**Wichtig**  
Wenn Sie die `SPECIFIC_ATTRIBUTES`-Bedingung nicht angeben, werden Ihnen alle Attribute für die zurückgegebenen Elemente angezeigt.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossAccountTablePolicy",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111111111111:user/John"
            },
            "Action": "dynamodb:GetItem",
            "Resource": [
                "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": "Jane",
                    "dynamodb:Attributes": [
                        "Artist",
                        "SongTitle"
                    ]
                },
                "StringEquals": {
                    "dynamodb:Select": "SPECIFIC_ATTRIBUTES"
                }
            }
        }
    ]
}
```

------

Zusätzlich zur vorherigen ressourcenbasierten Richtlinie muss die dem Benutzer zugeordnete identitätsbasierte Richtlinie *John* auch die `GetItem` API-Aktion ermöglichen, damit der kontoübergreifende Zugriff funktioniert. Im Folgenden finden Sie ein Beispiel für eine identitätsbasierte Richtlinie, die Sie dem Benutzer zuordnen müssen. *John*

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossAccountIdentityBasedPolicy",
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection"
            ],
            "Condition": {
                "ForAllValues:StringEquals": {
                    "dynamodb:LeadingKeys": "Jane",
                    "dynamodb:Attributes": [
                        "Artist",
                        "SongTitle"
                    ]
                },
                "StringEquals": {
                    "dynamodb:Select": "SPECIFIC_ATTRIBUTES"
                }
            }
        }
    ]
}
```

------

Der Benutzer John kann eine `GetItem` Anfrage stellen, indem er den Tabellen-ARN im `table-name` Parameter für den Zugriff auf die Tabelle *MusicCollection* im Konto angibt*123456789012*.

```
aws dynamodb get-item \
    --table-name arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \
    --key '{"Artist": {"S": "Jane"}' \
    --projection-expression 'Artist, SongTitle' \
    --return-consumed-capacity TOTAL
```

## Ressourcenbasierte Richtlinie mit Bedingungen für die IP-Adresse
<a name="rbac-examples-conditions"></a>

Sie können eine Bedingung anwenden, um Quell-IP-Adressen, virtuelle private Clouds (VPCs) und VPC-Endpunkte (VPCE) einzuschränken. Sie können Berechtigungen auf der Grundlage der Quelladressen der ursprünglichen Anforderung angeben. Angenommen, Sie möchten einem Benutzer nur dann Zugriff auf DynamoDB-Ressourcen gewähren, wenn von einer bestimmten IP-Quelle aus darauf zugegriffen wird, z. B. von einem Unternehmens-VPN-Endpunkt. Geben Sie diese IP-Adressen in der `Condition`-Anweisung an.

Das folgende Beispiel ermöglicht dem Benutzer den *John* Zugriff auf jede DynamoDB-Ressource, wenn die Quelle IPs und ist. `54.240.143.0/24` `2001:DB8:1234:5678::/64`

------
#### [ JSON ]

****  

```
{
  "Id":"PolicyId2",
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Sid":"AllowIPmix",
      "Effect":"Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111111111111:user/username"
      },
      "Action":"dynamodb:*",
      "Resource":"*",
      "Condition": {
        "IpAddress": {
          "aws:SourceIp": [
            "54.240.143.0/24",
            "2001:DB8:1234:5678::/64"
          ]
        }
      }
    }
  ]
}
```

------

Sie können auch jeglichen Zugriff auf DynamoDB-Ressourcen verweigern, es sei denn, die Quelle ist beispielsweise ein bestimmter VPC-Endpunkt. *vpce-1a2b3c4d*

**Wichtig**  
Wenn Sie DAX mit DynamoDB-Tabellen verwenden, die IP-basierte Ressourcenrichtlinien in IPv6 reinen Umgebungen haben, müssen Sie zusätzliche Zugriffsregeln konfigurieren. Wenn Ihre Ressourcenrichtlinie den Zugriff auf den IPv4 Adressraum `0.0.0.0/0` in Tabellen einschränkt, müssen Sie den Zugriff für die mit Ihrem DAX-Cluster verknüpfte IAM-Rolle zulassen. Fügen Sie Ihrer Richtlinie eine `ArnNotEquals` Bedingung hinzu, um sicherzustellen, dass DAX den Zugriff auf Ihre DynamoDB-Tabellen beibehält. Weitere Informationen finden Sie unter [DAX](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.create-cluster.DAX_and_IPV6.html) und. IPv6

------
#### [ JSON ]

****  

```
{
  "Id":"PolicyId",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AccessToSpecificVPCEOnly",
      "Principal": "*",
      "Action": "dynamodb:*",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals":{
          "aws:sourceVpce":"vpce-1a2b3c4d"
        }
      }
    }
  ]
}
```

------

## Ressourcenbasierte Richtlinie mit einer IAM-Rolle
<a name="rbac-examples-iam"></a>

Sie können auch eine IAM-Servicerolle in der ressourcenbasierten Richtlinie angeben. IAM-Entitäten, die diese Rolle übernehmen, sind an die für die Rolle angegebenen zulässigen Aktionen und an die spezifische Gruppe von Ressourcen innerhalb der ressourcenbasierten Richtlinie gebunden.

Das folgende Beispiel ermöglicht es einer IAM-Entität, alle DynamoDB-Aktionen auf den *MusicCollection* und *MusicCollection* DynamoDB-Ressourcen durchzuführen.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::111122223333:role/role-name" },
      "Action": "dynamodb:*",
      "Resource": [
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection",
        "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection/*"
      ]
    }
  ]
}
```

------

# Überlegungen zu ressourcenbasierten DynamoDB-Richtlinien
<a name="rbac-considerations"></a>

Wenn Sie ressourcenbasierte Richtlinien für Ihre DynamoDB-Ressourcen definieren, berücksichtigen Sie die folgenden Überlegungen:

**Allgemeine Überlegungen**
+ Ein ressourcenbasiertes Richtliniendokument kann maximal 20 KB groß sein. Leerzeichen werden in DynamoDB beim Berechnen der Richtliniengröße in Bezug auf diesen Limit nicht mitgezählt. 
+ Nachfolgende Aktualisierungen einer Richtlinie für eine bestimmte Ressource werden nach einer erfolgreichen Aktualisierung der Richtlinie für dieselbe Ressource 15 Sekunden lang blockiert.
+ Derzeit können Sie nur eine ressourcenbasierte Richtlinie an vorhandene Streams anhängen. Sie können einem Stream während der Erstellung keine Richtlinie zuordnen.

**Überlegungen zu globalen Tabellen**
+ Ressourcenbasierte Richtlinien werden für Replikate der [Version 2017.11.29 (veraltet) für eine globale Tabelle](globaltables_HowItWorks.md) nicht unterstützt.
+ Wenn innerhalb einer ressourcenbasierten Richtlinie die Aktion für eine serviceverknüpfte DynamoDB-Rolle (SLR) zum Replizieren von Daten für eine globale Tabelle verweigert wird, schlägt das Hinzufügen oder Löschen eines Replikats mit einem Fehler fehl.
+ Die [AWS: :DynamoDB:: GlobalTable](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) -Ressource unterstützt nicht das Erstellen eines Replikats und das Hinzufügen einer ressourcenbasierten Richtlinie zu diesem Replikat in demselben Stack-Update in anderen Regionen als der Region, in der Sie das Stack-Update bereitstellen.

**Kontoübergreifende Überlegungen**
+ Der kontenübergreifende Zugriff mithilfe ressourcenbasierter Richtlinien unterstützt keine verschlüsselten Tabellen mit AWS verwalteten Schlüsseln, da Sie keinen kontoübergreifenden Zugriff auf die verwaltete KMS-Richtlinie gewähren können. AWS 

**CloudFormation Überlegungen**
+ Ressourcenbasierte Richtlinien bieten keine Unterstützung für die [Erkennung von Abweichungen](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). Wenn Sie eine ressourcenbasierte Richtlinie außerhalb der AWS CloudFormation Stack-Vorlage aktualisieren, müssen Sie den CloudFormation Stack mit den Änderungen aktualisieren.
+ Ressourcenbasierte Richtlinien unterstützen keine Out-of-Band-Änderungen. Wenn Sie eine Richtlinie außerhalb der CloudFormation Vorlage hinzufügen, aktualisieren oder löschen, wird die Änderung nicht überschrieben, sofern in der Vorlage keine Änderungen an der Richtlinie vorgenommen wurden.

  Nehmen wir beispielsweise an, dass Ihre Vorlage eine ressourcenbasierte Richtlinie enthält, die Sie später außerhalb der Vorlage aktualisieren. Wenn Sie keine Änderungen an der Richtlinie in der Vorlage vornehmen, wird die aktualisierte Richtlinie in DynamoDB nicht mit der Richtlinie in der Vorlage synchronisiert.

  Nehmen wir umgekehrt an, dass Ihre Vorlage keine ressourcenbasierte Richtlinie enthält, Sie aber eine Richtlinie außerhalb der Vorlage hinzufügen. Diese Richtlinie wird nicht aus DynamoDB entfernt, solange Sie sie nicht zur Vorlage hinzufügen. Wenn Sie der Vorlage eine Richtlinie hinzufügen und den Stack aktualisieren, wird die vorhandene Richtlinie in DynamoDB aktualisiert, sodass sie mit der in der Vorlage definierten Richtlinie übereinstimmt.

# Bewährte Methoden für ressourcenbasierte DynamoDB-Richtlinien
<a name="rbac-best-practices"></a>

In diesem Thema werden die bewährten Methoden für die Definition von Zugriffsberechtigungen für Ihre DynamoDB-Ressourcen und die für diese Ressourcen zulässigen Aktionen beschrieben.

## Vereinfachen der Zugriffskontrolle auf DynamoDB-Ressourcen
<a name="rbac-simplify-access-control"></a>

Wenn die AWS Identity and Access Management Prinzipale, die Zugriff auf eine DynamoDB-Ressource benötigen, zu demselben gehören AWS-Konto wie der Ressourcenbesitzer, ist keine identitätsbasierte IAM-Richtlinie für jeden Prinzipal erforderlich. Eine ressourcenbasierte Richtlinie, die an die angegebenen Ressourcen angehängt ist, reicht aus. Diese Art der Konfiguration vereinfacht die Zugriffskontrolle.

## Schützen Ihrer DynamoDB-Ressourcen mit ressourcenbasierten Richtlinien
<a name="rbac-protect"></a>

 Erstellen Sie für alle DynamoDB-Tabellen und -Streams ressourcenbasierte Richtlinien, um die Zugriffskontrolle für diese Ressourcen durchzusetzen. Mit ressourcenbasierten Richtlinien können Sie Berechtigungen auf Ressourcenebene zentralisieren, die Zugriffskontrolle für DynamoDB-Tabellen, -Indizes und -Streams vereinfachen sowie den Verwaltungsaufwand reduzieren. Wenn keine ressourcenbasierte Richtlinie für eine Tabelle oder einen Stream angegeben ist, wird der Zugriff auf die Tabelle oder den Stream implizit verweigert, es sei denn, identitätsbasierte Richtlinien, die den IAM-Prinzipalen zugeordnet sind, lassen den Zugriff zu.

## Gewähren Sie die geringsten Berechtigungen
<a name="rbac-least-privilege"></a>

Wenn Sie Berechtigungen mit ressourcenbasierten Richtlinien für DynamoDB-Ressourcen festlegen, gewähren Sie nur die Berechtigungen, die zum Ausführen einer Aktion erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als die geringsten Berechtigungen. Sie können mit umfassenden Berechtigungen beginnen, während Sie die für Ihren Workload oder Anwendungsfall erforderlichen Berechtigungen untersuchen. Mit zunehmender Reife Ihres Anwendungsfalls können Sie daran arbeiten, die Berechtigungen zu reduzieren, die Sie gewähren, um auf die geringsten Berechtigungen hinzuarbeiten.

## Analysieren der kontoübergreifenden Zugriffsaktivität zum Generieren von Richtlinien mit der geringsten Berechtigung
<a name="rbac-analyze-cross-account-access"></a>

IAM Access Analyzer meldet den kontoübergreifenden Zugriff auf externe Entitäten, die in ressourcenbasierten Richtlinien angegeben sind, und bietet Transparenz, damit Sie Ihre Berechtigungen eingrenzen und das Prinzip der geringsten Berechtigung einhalten können. Weitere Informationen zur Richtlinienerstellung finden Sie unter [IAM Access Analyzer Richtlinienerstellung](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html).

## Verwenden von IAM Access Analyzer zum Generieren von Richtlinien mit der geringsten Berechtigung
<a name="rbac-iam-access-analyzer"></a>

Um nur die zum Ausführen einer Aufgabe erforderlichen Berechtigungen zu erteilen, können Sie Richtlinien auf der Grundlage Ihrer in AWS CloudTrail protokollierten Zugriffsaktivitäten erstellen. IAM Access Analyzer analysiert die Services und Aktionen, die Ihre Richtlinien verwenden.

# Verwenden der attributbasierten Zugriffskontrolle mit DynamoDB
<a name="attribute-based-access-control"></a>

Die [attributebasierte Zugriffskontrolle (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) ist eine Autorisierungsstrategie, die Zugriffsberechtigungen auf der Grundlage von [Tag-Bedingungen](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html) in Ihren identitätsbasierten Richtlinien oder anderen AWS Richtlinien, wie ressourcenbasierten Richtlinien und IAM-Richtlinien der Organisation, definiert. Sie können Tags an DynamoDB-Tabellen anhängen, die dann anhand der Tag-basierten Bedingungen ausgewertet werden. Die mit einer Tabelle verknüpften Indizes übernehmen die Tags, die Sie der Tabelle hinzufügen. Sie können für jede DynamoDB-Tabelle bis zu 50 Tags hinzufügen. Die maximale Größe, die für alle Tags in einer Tabelle unterstützt wird, beträgt 10 KB. Weitere Informationen zum Taggen von DynamoDB-Ressourcen und zu Tagging-Einschränkungen finden Sie unter [Tagging von Ressourcen in DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.Operations.html) and [Markierungseinschränkungen in DynamoDB](Tagging.md#TaggingRestrictions).

Weitere Informationen zur Verwendung von Tags zur Steuerung des Zugriffs auf AWS Ressourcen finden Sie in den folgenden Themen im IAM-Benutzerhandbuch:
+ [Wofür ist ABAC AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)
+ [Steuern des Zugriffs auf AWS Ressourcen mithilfe von Tags](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)

Mit ABAC können Sie unterschiedliche Zugriffsebenen für Ihre Teams und Anwendungen erzwingen, um mit weniger Richtlinien Aktionen für DynamoDB-Tabellen auszuführen. Sie können ein Tag im [Bedingungselement](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) einer IAM-Richtlinie angeben, um den Zugriff auf Ihre DynamoDB-Tabellen oder -Indizes zu kontrollieren. Diese Bedingungen bestimmen die Zugriffsebene, die ein IAM-Prinzipal, ein Benutzer oder eine Rolle auf DynamoDB-Tabellen und -Indizes erhält. Wenn ein IAM-Prinzipal eine Zugriffsanforderung an DynamoDB stellt, werden die Tags der Ressource und Identität anhand der Tag-Bedingungen in der IAM-Richtlinie ausgewertet. Danach wird die Richtlinie nur wirksam, wenn die Tag-Bedingungen erfüllt sind. Auf diese Weise können Sie eine IAM-Richtlinie erstellen, die effektiv eine der folgenden Aussagen enthält:
+ *Erlaube dem Benutzer, nur die Ressourcen zu verwalten, die über ein Tag mit dem Schlüssel `X` und dem Wert `Y` verfügen*.
+ *Verweigere allen Benutzern den Zugriff auf Ressourcen, die mit dem Schlüssel `X` getaggt sind.*

Sie können beispielsweise eine Richtlinie erstellen, die es Benutzern ermöglicht, eine Tabelle nur zu aktualisieren, wenn sie über das Tag-Schlüssel-Wert-Paar `"environment": "staging"` verfügt. Sie können den ResourceTag Bedingungsschlüssel [aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag) verwenden, um den Zugriff auf eine Tabelle auf der Grundlage der Tags, die an diese Tabelle angehängt sind, zu erlauben oder zu verweigern.

Sie können attributebasierte Bedingungen bei der Erstellung der Richtlinie oder zu einem späteren Zeitpunkt mithilfe von AWS API AWS-Managementkonsole, AWS Command Line Interface (AWS CLI), AWS SDK oder angeben. AWS CloudFormation

Im folgenden Beispiel ist die [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)Aktion für eine Tabelle mit dem Namen zulässig, `MusicTable` wenn sie einen Tag-Schlüssel mit dem Namen `environment` und dem Wert enthält. `production`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "dynamodb:UpdateItem"
      ],
      "Resource": "arn:aws:dynamodb:*:*:table/MusicTable",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/environment": "production"
        }
      }
    }
  ]
}
```

------

**Topics**
+ [Weshalb sollte ich ABAC verwenden?](#why-use-abac)
+ [Bedingungsschlüssel für die Implementierung von ABAC mit DynamoDB](#condition-keys-implement-abac)
+ [Überlegungen zur Verwendung von ABAC mit DynamoDB](#abac-considerations)
+ [Aktivieren von ABAC in DynamoDB](abac-enable-ddb.md)
+ [Verwenden von ABAC mit DynamoDB-Tabellen und -Indizes](abac-implementation-ddb-tables.md)
+ [Beispiele für die Verwendung von ABAC mit DynamoDB-Tabellen und -Indizes](abac-example-use-cases.md)
+ [Behebung häufiger ABAC-Fehler für DynamoDB-Tabellen und -Indizes](abac-troubleshooting.md)

## Weshalb sollte ich ABAC verwenden?
<a name="why-use-abac"></a>
+ **Einfachere Richtlinienverwaltung:** Sie verwenden weniger Richtlinien, da Sie keine verschiedenen Richtlinien erstellen müssen, um die Zugriffsebene für jeden IAM-Prinzipal zu definieren.
+ **Skalierbare Zugriffskontrolle:** Die Skalierung der Zugriffskontrolle ist mit ABAC einfacher, da Sie Ihre Richtlinien nicht aktualisieren müssen, wenn Sie neue DynamoDB-Ressourcen erstellen. Sie können Tags verwenden, um den Zugriff auf IAM-Prinzipale zu autorisieren, die Tags enthalten, die den Tags der Ressource entsprechen. Sie können neue IAM-Prinzipale oder DynamoDB-Ressourcen einbinden und entsprechende Tags anwenden, um automatisch die erforderlichen Berechtigungen zu gewähren, ohne Änderungen an den Richtlinien vornehmen zu müssen.
+ **Detaillierte Berechtigungsverwaltung:** Als bewährte Methode sollten Sie beim Erstellen von Richtlinien die [geringste Berechtigung gewähren](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege). Mit ABAC können Sie Tags für den IAM-Prinzipal erstellen und verwenden, um ihm Zugriff auf bestimmte Aktionen und Ressourcen zu gewährten, die den Tags für den IAM-Prinzipal entsprechen. 
+ **Ausrichtung am Unternehmensverzeichnis:** Sie können Tags vorhandenen Mitarbeiterattributen aus Ihrem Unternehmensverzeichnis zuordnen, um Ihre Zugriffskontrollrichtlinien an Ihre Organisationsstruktur anzupassen.

## Bedingungsschlüssel für die Implementierung von ABAC mit DynamoDB
<a name="condition-keys-implement-abac"></a>

Sie können die folgenden Bedingungsschlüssel in Ihren AWS Richtlinien verwenden, um die Zugriffsebene auf Ihre DynamoDB-Tabellen und -Indizes zu steuern:
+ [aws: ResourceTag /tag-key](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag): Steuert den Zugriff basierend darauf, ob das Tag-Schlüssel-Wert-Paar in einer DynamoDB-Tabelle oder einem DynamoDB-Index mit dem Tag-Schlüssel und -Wert in einer Richtlinie übereinstimmt oder nicht. Dieser Bedingungsschlüssel ist für alle relevant, die mit einer vorhandenen Tabelle oder einem APIs vorhandenen Index arbeiten.

  Die `dynamodb:ResourceTag`-Bedingungen werden so ausgewertet, als hätten Sie einer Ressource keine Tags angehängt.
+ [aws: RequestTag /tag-key](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag): Ermöglicht den Vergleich des Tag-Schlüssel-Wert-Paars, das in der Anfrage übergeben wurde, mit dem Tag-Paar, das Sie in der Richtlinie angeben. Dieser Bedingungsschlüssel ist relevant für diejenigen APIs , die Tags als Teil der Nutzlast der Anfrage enthalten. Dazu APIs gehören [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)und. [TagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TagResource.html)
+ [aws:TagKeys:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys) Vergleicht die Tag-Schlüssel in einer Anfrage mit den Schlüsseln, die Sie in der Richtlinie angeben. Dieser Bedingungsschlüssel ist relevant für diejenigen APIs , die Tags als Teil der Nutzlast der Anfrage enthalten. Dazu APIs gehören `CreateTable``TagResource`, und`UntagResource`.

## Überlegungen zur Verwendung von ABAC mit DynamoDB
<a name="abac-considerations"></a>

Wenn Sie ABAC mit DynamoDB-Tabellen oder -Indizes verwenden, berücksichtigen Sie die folgenden Überlegungen:
+ Tagging und ABAC werden für DynamoDB Streams nicht unterstützt.
+ Tagging und ABAC werden für DynamoDB-Backups nicht unterstützt. Um ABAC mit Backups zu verwenden, empfehlen wir die Verwendung von [AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/whatisbackup.html).
+ Tags werden in wiederhergestellten Tabellen nicht beibehalten. Sie müssen den wiederhergestellten Tabellen Tags hinzufügen, bevor Sie Tag-basierte Bedingungen in Ihren Richtlinien verwenden können.

# Aktivieren von ABAC in DynamoDB
<a name="abac-enable-ddb"></a>

In den meisten AWS-Konten Fällen ist ABAC standardmäßig aktiviert. Mithilfe der [DynamoDB-Konsole](https://console.aws.amazon.com/dynamodb/) können Sie überprüfen, ob ABAC für Ihr Konto aktiviert ist. Stellen Sie dazu sicher, dass Sie die DynamoDB-Konsole mit einer Rolle öffnen, die über die [dynamodb](#required-permissions-abac): -Berechtigung verfügt. GetAbacStatus Öffnen Sie dann die Seite **Einstellungen** der DynamoDB-Konsole.

Wenn Sie die Registerkarte **Attributbasierte Zugriffskontrolle** nicht sehen oder wenn auf der Registerkarte der Status **An** angezeigt wird, ist ABAC für Ihr Konto aktiviert. Wenn auf der Registerkarte **Attributbasierte Zugangskontrolle** jedoch wie in der folgenden Abbildung gezeigt der Status **Aus** angezeigt wird, ist ABAC für Ihr Konto nicht aktiviert.

## Attributbasierte Zugriffskontrolle – nicht aktiviert
<a name="abac-disabled-image"></a>

![\[Seite Einstellungen der DynamoDB-Konsole, auf der die Registerkarte Attributbasierte Zugriffskontrolle angezeigt wird\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/ddb-console-settings-page.png)


ABAC ist nicht aktiviert, weshalb tagbasierte Bedingungen, die in ihren identitätsbasierten Richtlinien oder anderen Richtlinien angegeben sind, noch geprüft werden müssen. AWS-Konten Wenn ABAC für Ihr Konto nicht aktiviert ist, werden die Tag-basierten Bedingungen in Ihren Richtlinien, die auf DynamoDB-Tabellen oder -Indizes angewendet werden sollen, so ausgewertet, als wären keine Tags für Ihre Ressourcen oder API-Anforderungen vorhanden. Wenn ABAC für Ihr Konto aktiviert ist, werden die Tag-basierten Bedingungen in den Richtlinien Ihres Kontos unter Berücksichtigung der mit Ihren Tabellen oder API-Anforderungen verknüpften Tags ausgewertet.

Um ABAC für Ihr Konto zu aktivieren, empfehlen wir, zunächst Ihre Richtlinien wie im Abschnitt [Richtlinienprüfung](#policy-audit-for-abac) beschrieben zu überprüfen. Schließen Sie dann die [erforderlichen Berechtigungen für ABAC](#required-permissions-abac) in Ihre IAM-Richtlinie ein. Führen Sie abschließend die unter [Aktivieren von ABAC in der Konsole](#abac-enable-console) beschriebenen Schritte aus, um ABAC für Ihr Konto in der aktuellen Region zu aktivieren. Nachdem Sie ABAC aktiviert haben, können Sie die Option innerhalb der nächsten sieben Kalendertage nach der Aktivierung wieder deaktivieren.

**Topics**
+ [Überprüfen Ihrer Richtlinien vor der Aktivierung von ABAC](#policy-audit-for-abac)
+ [IAM-Berechtigungen, die für die Aktivierung von ABAC erforderlich sind](#required-permissions-abac)
+ [Aktivieren von ABAC in der Konsole](#abac-enable-console)

## Überprüfen Ihrer Richtlinien vor der Aktivierung von ABAC
<a name="policy-audit-for-abac"></a>

Bevor Sie ABAC für Ihr Konto aktivieren, prüfen Sie Ihre Richtlinien, um sicherzustellen, dass die Tag-basierten Bedingungen, die möglicherweise in den Richtlinien Ihres Kontos enthalten sind, wie vorgesehen eingerichtet sind. Durch die Prüfung Ihrer Richtlinien können Sie Überraschungen durch Autorisierungsänderungen in Ihren DynamoDB-Workflows vermeiden, nachdem ABAC aktiviert wurde. Beispiele für die Verwendung von attributbasierten Bedingungen mit Tags sowie das Vorher-Nachher-Verhalten der ABAC-Implementierung finden Sie unter [Beispiele für die Verwendung von ABAC mit DynamoDB-Tabellen und -IndizesBeispielanwendungsfälle](abac-example-use-cases.md).

## IAM-Berechtigungen, die für die Aktivierung von ABAC erforderlich sind
<a name="required-permissions-abac"></a>

Sie benötigen die `dynamodb:UpdateAbacStatus`-Berechtigung, um ABAC für Ihr Konto in der aktuellen Region zu aktivieren. Um zu überprüfen, ob ABAC für Ihr Konto aktiviert ist, benötigen Sie außerdem die `dynamodb:GetAbacStatus`-Berechtigung. Mit dieser Berechtigung können Sie den ABAC-Status für ein Konto in einer beliebigen Region anzeigen. Sie benötigen diese Berechtigungen zusätzlich zu den Berechtigungen, die für den Zugriff auf die DynamoDB-Konsole erforderlich sind.

Die folgende IAM-Richtlinie gewährt die Berechtigung, ABAC zu aktivieren und ihren Status für ein Konto in der aktuellen Region anzuzeigen.

```
{
"version": "2012-10-17", 		 	 	 &TCX5-2025-waiver;
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:UpdateAbacStatus",
                "dynamodb:GetAbacStatus"
             ],
            "Resource": "*"
        }
    ]
}
```

## Aktivieren von ABAC in der Konsole
<a name="abac-enable-console"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Wählen Sie im Navigationsbereich die Region, für die Sie ABAC aktivieren möchten.

1. Wählen Sie im linken Navigationsbereich die Option **Einstellungen** aus.

1. Führen Sie auf der Seite **Settings (Einstellungen)** die folgenden Schritte aus:

   1. Wählen Sie auf der Registerkarte **Attributbasierte Zugriffskontrolle** die Option **Aktivieren** aus.

   1. Wählen im Feld **Einstellung für die attributbasierte Zugriffskontrolle bestätigen** die Option **Aktivieren** aus, um Ihre Auswahl zu bestätigen.

      Dadurch wird ABAC für die aktuelle Region aktiviert und auf der Registerkarte **Attributbasierte Zugriffskontrolle** wird der Status **Ein** angezeigt.

      Wenn Sie ABAC nach der Aktivierung in der Konsole wieder deaktivieren möchten, können Sie die Deaktivierung innerhalb der nächsten sieben Kalendertage nach der Aktivierung durchführen. Wählen Sie dafür **Deaktivieren** auf der Registerkarte **Attributbasierte Zugriffskontrolle** auf der Seite **Einstellungen** aus.
**Anmerkung**  
Das Aktualisieren des ABAC-Status ist ein asynchroner Vorgang. Wenn die Tags in Ihren Richtlinien nicht sofort ausgewertet werden, müssen Sie möglicherweise einige Zeit warten, da die Änderungen letztendlich konsistent angewendet werden.

# Verwenden von ABAC mit DynamoDB-Tabellen und -Indizes
<a name="abac-implementation-ddb-tables"></a>

Die folgenden Schritte zeigen, wie Sie Berechtigungen mithilfe von ABAC einrichten. In diesem Beispielszenario fügen Sie einer DynamoDB-Tabelle Tags hinzu und erstellen eine IAM-Rolle mit einer Richtlinie, die Tag-basierte Bedingungen beinhaltet. Anschließend testen Sie die zulässigen Berechtigungen für die DynamoDB-Tabelle, indem Sie die Tag-Bedingungen erfüllen.

**Topics**
+ [Schritt 1: Hinzufügen von Tags zu einer DynamoDB-Tabelle](#abac-add-table-tags)
+ [Schritt 2: Erstellen einer IAM-Rolle mit einer Richtlinie, die Tag-basierte Bedingungen enthält](#abac-create-iam-role)
+ [Schritt 3: Testen der Berechtigungen](#abac-test-permissions)

## Schritt 1: Hinzufügen von Tags zu einer DynamoDB-Tabelle
<a name="abac-add-table-tags"></a>

Sie können Tags zu neuen oder vorhandenen DynamoDB-Tabellen hinzufügen, indem Sie die AWS API AWS-Managementkonsole, AWS Command Line Interface (AWS CLI), das AWS SDK oder verwenden. AWS CloudFormation Der folgende CLI-Befehl [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/tag-resource.html) fügt beispielsweise einer Tabelle namens `MusicTable` ein Tag hinzu.

```
aws dynamodb tag-resource —resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/MusicTable —tags Key=environment,Value=staging
```

## Schritt 2: Erstellen einer IAM-Rolle mit einer Richtlinie, die Tag-basierte Bedingungen enthält
<a name="abac-create-iam-role"></a>

[Erstellen Sie eine IAM-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) mithilfe des [ResourceTagBedingungsschlüssels aws: /tag-key](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag), um das in der IAM-Richtlinie angegebene Tag-Schlüssel-Wert-Paar mit dem Schlüssel-Wert-Paar zu vergleichen, das an die Tabelle angehängt ist. Die folgende Beispielrichtlinie ermöglicht es Benutzern, Elemente in Tabellen abzulegen oder zu aktualisieren, wenn diese Tabellen das Tag-Schlüssel-Wert-Paar `"environment": "staging"` enthalten. Wenn eine Tabelle das angegebene Tag-Schlüssel-Wert-Paar nicht enthält, werden diese Aktionen verweigert.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:PutItem",
                "dynamodb:UpdateItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/environment": "staging"
                }
            }
        }
    ]
}
```

------

## Schritt 3: Testen der Berechtigungen
<a name="abac-test-permissions"></a>

1. Hängen Sie die IAM-Richtlinie einem Testbenutzer oder einer Testrolle in Ihrem AWS-Konto zu. Stellen Sie sicher, dass der von Ihnen verwendete IAM-Prinzipal nicht bereits über eine andere Richtlinie Zugriff auf die DynamoDB-Tabelle hat.

1. Achten Sie darauf, dass Ihre DynamoDB-Tabelle den `"environment"`-Tag-Schlüssel mit dem Wert `"staging"` enthält.

1. Führen Sie die Aktionen `dynamodb:PutItem` und `dynamodb:UpdateItem` für die mit Tags versehene Tabelle aus. Diese Aktionen sollten erfolgreich sein, wenn das `"environment": "staging"`-Tag-Schlüssel-Wert-Paar vorhanden ist.

   Wenn Sie diese Aktionen für eine Tabelle ausführen, die nicht über das `"environment": "staging"`-Tag-Schlüssel-Wert-Paar verfügt, schlägt Ihre Anforderung mit einem `AccessDeniedException`-Fehler fehl.

Sie können sich auch die anderen im folgenden Abschnitt beschriebenen [Beispielanwendungsfälle](abac-example-use-cases.md) ansehen, um ABAC zu implementieren und weitere Tests durchzuführen.

# Beispiele für die Verwendung von ABAC mit DynamoDB-Tabellen und -Indizes
<a name="abac-example-use-cases"></a>

Die folgenden Beispiele zeigen einige Anwendungsfälle zur Implementierung von attributbasierten Bedingungen mithilfe von Tags.

**Topics**
+ [Beispiel 1: Eine Aktion mit aws zulassen: ResourceTag](#abac-allow-example-resource-tag)
+ [Beispiel 2: Eine Aktion mit aws zulassen: RequestTag](#abac-allow-example-request-tag)
+ [Beispiel 3: Eine Aktion mit aws ablehnen: TagKeys](#abac-deny-example-tag-key)

## Beispiel 1: Eine Aktion mit aws zulassen: ResourceTag
<a name="abac-allow-example-resource-tag"></a>

Mithilfe des `aws:ResourceTag/tag-key`-Bedingungsschlüssels können Sie das Tag-Schlüssel-Wert-Paar, das in einer IAM-Richtlinie angegeben ist, mit dem Schlüssel-Wert-Paar vergleichen, das in einer DynamoDB-Tabelle angehängt ist. Sie können beispielsweise eine bestimmte Aktion zulassen, z. B. [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)wenn die Tag-Bedingungen in einer IAM-Richtlinie und einer Tabelle übereinstimmen. Führen Sie dazu die folgenden Schritte aus:

------
#### [ Using the AWS CLI ]

1. Erstellen Sie eine -Tabelle. Im folgenden Beispiel wird der AWS CLI Befehl [create-table verwendet, um eine Tabelle](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/create-table.html) mit dem Namen zu erstellen. `myMusicTable`

   ```
   aws dynamodb create-table \
     --table-name myMusicTable \
     --attribute-definitions AttributeName=id,AttributeType=S \
     --key-schema AttributeName=id,KeyType=HASH \
     --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
     --region us-east-1
   ```

1. Fügen Sie dieser Tabelle ein Tag hinzu. Im folgenden Beispiel für den AWS CLI Befehl [tag-resource](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/tag-resource.html) wird das Schlüssel-Wert-Paar für das Tag hinzugefügt. `Title: ProductManager` `myMusicTable`

   ```
   aws dynamodb tag-resource --region us-east-1 --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/myMusicTable --tags Key=Title,Value=ProductManager
   ```

1. Erstellen Sie eine [Inline-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) und fügen Sie sie einer Rolle hinzu, an die die [AmazonDynamoDBReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBReadOnlyAccess.html) AWS verwaltete Richtlinie angehängt ist, wie im folgenden Beispiel gezeigt.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "dynamodb:PutItem",
         "Resource": "arn:aws:dynamodb:*:*:table/*",
         "Condition": {
           "StringEquals": {
             "aws:ResourceTag/Title": "ProductManager"
           }
         }
       }
     ]
   }
   ```

------

   Mit dieser Richtlinie kann die Aktion `PutItem` für die Tabelle ausgeführt werden, wenn der Tag-Schlüssel und -Wert, die der Tabelle angehängt sind, mit den in der Richtlinie angegebenen Tags übereinstimmen.

1. Nehmen Sie die Rolle mit den in Schritt 3 beschriebenen Richtlinien an.

1. Verwenden Sie den AWS CLI Befehl [put-item](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/put-item.html), um ein Element in den zu platzieren. `myMusicTable`

   ```
   aws dynamodb put-item \
       --table-name myMusicTable --region us-east-1 \
       --item '{
           "id": {"S": "2023"},
           "title": {"S": "Happy Day"},
           "info": {"M": {
               "rating": {"N": "9"},
               "Artists": {"L": [{"S": "Acme Band"}, {"S": "No One You Know"}]},
               "release_date": {"S": "2023-07-21"}
           }}
       }'
   ```

1. Scannen Sie die Tabelle, um zu überprüfen, ob das Element der Tabelle hinzugefügt wurde.

   ```
   aws dynamodb scan --table-name myMusicTable  --region us-east-1
   ```

------
#### [ Using the AWS SDK for Java 2.x ]

1. Erstellen Sie eine -Tabelle. Das folgende Beispiel verwendet die [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)API, um eine Tabelle mit dem Namen zu erstellen. `myMusicTable`

   ```
   DynamoDbClient dynamoDB = DynamoDbClient.builder().region(region).build();
   CreateTableRequest createTableRequest = CreateTableRequest.builder()
       .attributeDefinitions(
           Arrays.asList(
               AttributeDefinition.builder()
               .attributeName("id")
               .attributeType(ScalarAttributeType.S)
               .build()
           )
       )
       .keySchema(
           Arrays.asList(
               KeySchemaElement.builder()
               .attributeName("id")
               .keyType(KeyType.HASH)
               .build()
           )
       )
       .provisionedThroughput(ProvisionedThroughput.builder()
           .readCapacityUnits(5L)
           .writeCapacityUnits(5L)
           .build()
       )
       .tableName("myMusicTable")
       .build();
   
   CreateTableResponse createTableResponse = dynamoDB.createTable(createTableRequest);
   String tableArn = createTableResponse.tableDescription().tableArn();
   String tableName = createTableResponse.tableDescription().tableName();
   ```

1. Fügen Sie dieser Tabelle ein Tag hinzu. Die [TagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TagResource.html)API im folgenden Beispiel fügt dem Tag das Schlüssel-Wert-Paar `Title: ProductManager` hinzu. `myMusicTable`

   ```
   TagResourceRequest tagResourceRequest = TagResourceRequest.builder()
       .resourceArn(tableArn)
       .tags(
           Arrays.asList(
               Tag.builder()
               .key("Title")
               .value("ProductManager")
               .build()
           )
       )
       .build();
   dynamoDB.tagResource(tagResourceRequest);
   ```

1. Erstellen Sie eine [Inline-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) und fügen Sie sie einer Rolle hinzu, an die die [AmazonDynamoDBReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBReadOnlyAccess.html) AWS verwaltete Richtlinie angehängt ist, wie im folgenden Beispiel gezeigt.

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Action": "dynamodb:PutItem",
         "Resource": "arn:aws:dynamodb:*:*:table/*",
         "Condition": {
           "StringEquals": {
             "aws:ResourceTag/Title": "ProductManager"
           }
         }
       }
     ]
   }
   ```

------

   Mit dieser Richtlinie kann die Aktion `PutItem` für die Tabelle ausgeführt werden, wenn der Tag-Schlüssel und -Wert, die der Tabelle angehängt sind, mit den in der Richtlinie angegebenen Tags übereinstimmen.

1. Nehmen Sie die Rolle mit den in Schritt 3 beschriebenen Richtlinien an.

1. Verwenden Sie die [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)API, um ein Element in den zu platzieren`myMusicTable`.

   ```
   HashMap<String, AttributeValue> info = new HashMap<>();
   info.put("rating", AttributeValue.builder().s("9").build());
   info.put("artists", AttributeValue.builder().ss(List.of("Acme Band","No One You Know").build());
   info.put("release_date", AttributeValue.builder().s("2023-07-21").build());
   
   HashMap<String, AttributeValue> itemValues = new HashMap<>();
   itemValues.put("id", AttributeValue.builder().s("2023").build());
   itemValues.put("title", AttributeValue.builder().s("Happy Day").build());
   itemValues.put("info", AttributeValue.builder().m(info).build());
   
   
   PutItemRequest putItemRequest = PutItemRequest.builder()
                   .tableName(tableName)
                   .item(itemValues)
                   .build();
   dynamoDB.putItem(putItemRequest);
   ```

1. Scannen Sie die Tabelle, um zu überprüfen, ob das Element der Tabelle hinzugefügt wurde.

   ```
   ScanRequest scanRequest = ScanRequest.builder()
                   .tableName(tableName)
                   .build();
                   
   ScanResponse scanResponse = dynamoDB.scan(scanRequest);
   ```

------
#### [ Using the AWS SDK für Python (Boto3) ]

1. Erstellen Sie eine -Tabelle. Das folgende Beispiel verwendet die [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)API, um eine Tabelle mit dem Namen zu erstellen`myMusicTable`.

   ```
   create_table_response = ddb_client.create_table(
       AttributeDefinitions=[
           {
               'AttributeName': 'id',
               'AttributeType': 'S'
           },
       ],
       TableName='myMusicTable',
       KeySchema=[
           {
               'AttributeName': 'id',
               'KeyType': 'HASH'
           },
       ],
           ProvisionedThroughput={
           'ReadCapacityUnits': 5,
           'WriteCapacityUnits': 5
       },
   )
   
   table_arn = create_table_response['TableDescription']['TableArn']
   ```

1. Fügen Sie dieser Tabelle ein Tag hinzu. Die [TagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TagResource.html)API im folgenden Beispiel fügt dem Tag das Schlüssel-Wert-Paar `Title: ProductManager` hinzu. `myMusicTable`

   ```
   tag_resouce_response = ddb_client.tag_resource(
       ResourceArn=table_arn,
       Tags=[
           {
               'Key': 'Title',
               'Value': 'ProductManager'
           },
       ]
   )
   ```

1. Erstellen Sie eine [Inline-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) und fügen Sie sie einer Rolle hinzu, an die die [AmazonDynamoDBReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBReadOnlyAccess.html) AWS verwaltete Richtlinie angehängt ist, wie im folgenden Beispiel gezeigt.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
           "Effect": "Allow",
           "Action": "dynamodb:PutItem",
           "Resource": "arn:aws:dynamodb:*:*:table/*",
           "Condition": {
               "StringEquals": {
               "aws:ResourceTag/Title": "ProductManager"
               }
           }
           }
       ]
       }
   ```

------

   Mit dieser Richtlinie kann die Aktion `PutItem` für die Tabelle ausgeführt werden, wenn der Tag-Schlüssel und -Wert, die der Tabelle angehängt sind, mit den in der Richtlinie angegebenen Tags übereinstimmen.

1. Nehmen Sie die Rolle mit den in Schritt 3 beschriebenen Richtlinien an.

1. Verwenden Sie die [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)API, um ein Element in den zu platzieren`myMusicTable`.

   ```
   put_item_response = client.put_item(
       TableName = 'myMusicTable'
       Item = {
           'id': '2023',
           'title': 'Happy Day',
           'info': {
               'rating': '9',
               'artists': ['Acme Band','No One You Know'],
               'release_date': '2023-07-21'
           }
       }
   )
   ```

1. Scannen Sie die Tabelle, um zu überprüfen, ob das Element der Tabelle hinzugefügt wurde.

   ```
   scan_response = client.scan(
       TableName='myMusicTable'
   )
   ```

------

**Ohne ABAC**  
Wenn ABAC für Sie nicht aktiviert ist AWS-Konto, stimmen die Tag-Bedingungen in der IAM-Richtlinie und der DynamoDB-Tabelle nicht überein. Folglich gibt die `PutItem`-Aktion aufgrund der Auswirkung der `AmazonDynamoDBReadOnlyAccess`-Richtlinie einen `AccessDeniedException`-Fehler zurück.

```
An error occurred (AccessDeniedException) when calling the PutItem operation: User: arn:aws:sts::123456789012:assumed-role/DynamoDBReadOnlyAccess/Alice is not authorized to perform: dynamodb:PutItem on resource: arn:aws:dynamodb:us-east-1:123456789012:table/myMusicTable because no identity-based policy allows the dynamodb:PutItem action.
```

**Mit ABAC**  
Wenn ABAC für Sie aktiviert ist AWS-Konto, wird die `put-item` Aktion erfolgreich abgeschlossen und ein neues Element zu Ihrer Tabelle hinzugefügt. Das liegt daran, dass die Inline-Richtlinie in der Tabelle die `PutItem`-Aktion zulässt, wenn die Tag-Bedingungen in der IAM-Richtlinie und der Tabelle übereinstimmen.

## Beispiel 2: Eine Aktion mit aws zulassen: RequestTag
<a name="abac-allow-example-request-tag"></a>

Mithilfe des [RequestTagBedingungsschlüssels aws: /tag-key](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag) können Sie das Tag-Schlüssel-Wert-Paar, das in Ihrer Anfrage übergeben wurde, mit dem Tag-Paar vergleichen, das in der IAM-Richtlinie angegeben ist. Sie können beispielsweise eine bestimmte Aktion wie `CreateTable` mithilfe von `aws:RequestTag` zulassen, wenn die Tag-Bedingungen nicht übereinstimmen. Führen Sie dazu die folgenden Schritte aus:

------
#### [ Using the AWS CLI ]

1. Erstellen Sie eine [Inline-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) und fügen Sie sie einer Rolle hinzu, an die die [AmazonDynamoDBReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/ReadOnlyAccess.html) AWS verwaltete Richtlinie angehängt ist, wie im folgenden Beispiel gezeigt.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "dynamodb:CreateTable",
                   "dynamodb:TagResource"
               ],
               "Resource": "arn:aws:dynamodb:*:*:table/*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/Owner": "John"
                   }
               }
           }
       ]
   }
   ```

------

1. Erstellen Sie eine Tabelle, die das Tag-Schlüssel-Wert-Paar von `"Owner": "John"` enthält.

   ```
   aws dynamodb create-table \
   --attribute-definitions AttributeName=ID,AttributeType=S \
   --key-schema AttributeName=ID,KeyType=HASH  \
   --provisioned-throughput ReadCapacityUnits=1000,WriteCapacityUnits=500 \
   --region us-east-1 \
   --tags Key=Owner,Value=John \
   --table-name myMusicTable
   ```

------
#### [ Using the AWS SDK für Python (Boto3) ]

1. Erstellen Sie eine [Inline-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) und fügen Sie sie einer Rolle hinzu, an die die [AmazonDynamoDBReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBReadOnlyAccess.html) AWS verwaltete Richtlinie angehängt ist, wie im folgenden Beispiel gezeigt.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "dynamodb:CreateTable",
                   "dynamodb:TagResource"
               ],
               "Resource": "arn:aws:dynamodb:*:*:table/*",
               "Condition": {
                   "StringEquals": {
                       "aws:RequestTag/Owner": "John"
                   }
               }
           }
       ]
   }
   ```

------

1. Erstellen Sie eine Tabelle, die das Tag-Schlüssel-Wert-Paar von `"Owner": "John"` enthält.

   ```
   ddb_client = boto3.client('dynamodb')
   
   create_table_response = ddb_client.create_table(
       AttributeDefinitions=[
           {
               'AttributeName': 'id',
               'AttributeType': 'S'
           },
       ],
       TableName='myMusicTable',
       KeySchema=[
           {
               'AttributeName': 'id',
               'KeyType': 'HASH'
           },
       ],
           ProvisionedThroughput={
           'ReadCapacityUnits': 1000,
           'WriteCapacityUnits': 500
       },
       Tags=[
           {
               'Key': 'Owner',
               'Value': 'John'
           },
       ],
   )
   ```

------

**Ohne ABAC**  
Wenn ABAC für Sie nicht aktiviert ist AWS-Konto, stimmen die Tag-Bedingungen in der Inline-Richtlinie und der DynamoDB-Tabelle nicht überein. Folglich schlägt die `CreateTable`-Anforderung fehl und Ihre Tabelle wird nicht erstellt.

```
An error occurred (AccessDeniedException) when calling the CreateTable operation: User: arn:aws:sts::123456789012:assumed-role/Admin/John is not authorized to perform: dynamodb:CreateTable on resource: arn:aws:dynamodb:us-east-1:123456789012:table/myMusicTable because no identity-based policy allows the dynamodb:CreateTable action.
```

**Mit ABAC**  
Wenn ABAC für Sie aktiviert ist AWS-Konto, wird Ihre Anfrage zur Tabellenerstellung erfolgreich abgeschlossen. Da das Tag-Schlüssel-Wert-Paar von `"Owner": "John"` in der `CreateTable`-Anforderung vorhanden ist, ermöglicht die Inline-Richtlinie dem Benutzer `John`, die Aktion `CreateTable` auszuführen.

## Beispiel 3: Eine Aktion mit aws ablehnen: TagKeys
<a name="abac-deny-example-tag-key"></a>

Mithilfe des TagKeys Bedingungsschlüssels [aws:](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys) können Sie die Tag-Schlüssel in einer Anfrage mit den Schlüsseln vergleichen, die in der IAM-Richtlinie angegeben sind. Sie können beispielsweise eine bestimmte Aktion wie `CreateTable` mithilfe von `aws:TagKeys` verweigern, wenn ein bestimmter Tag-Schlüssel *nicht* in der Anforderung vorhanden ist. Führen Sie dazu die folgenden Schritte aus:

------
#### [ Using the AWS CLI ]

1. Fügen Sie eine vom [Kunden verwaltete Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) zu einer Rolle hinzu, der die AWS verwaltete [AmazonDynamoDBFullAccess-Richtlinie](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBFullAccess.html) zugeordnet ist, wie im folgenden Beispiel gezeigt.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": [
                   "dynamodb:CreateTable",
                   "dynamodb:TagResource"
               ],
               "Resource": "arn:aws:dynamodb:*:*:table/*",
               "Condition": {
                   "Null": {
                       "aws:TagKeys": "false"
                   },
                   "ForAllValues:StringNotEquals": {
                       "aws:TagKeys": "CostCenter"
                   }
               }
           }
       ]
   }
   ```

------

1. Nehmen Sie die Rolle an, der die Richtlinie angehängt wurde, und erstellen Sie eine Tabelle mit dem Tag-Schlüssel `Title`.

   ```
   aws dynamodb create-table \
   --attribute-definitions AttributeName=ID,AttributeType=S \
   --key-schema AttributeName=ID,KeyType=HASH  \
   --provisioned-throughput ReadCapacityUnits=1000,WriteCapacityUnits=500 \
   --region us-east-1 \
   --tags Key=Title,Value=ProductManager \
   --table-name myMusicTable
   ```

------
#### [ Using the AWS SDK für Python (Boto3) ]

1. Fügen Sie einer Rolle, der die [verwaltete [AmazonDynamoDBFullAccess-Richtlinie](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AmazonDynamoDBFullAccess.html) zugewiesen ist, eine vom Kunden](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies) AWS verwaltete Richtlinie hinzu, wie im folgenden Beispiel gezeigt.

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Deny",
               "Action": [
                   "dynamodb:CreateTable",
                   "dynamodb:TagResource"
               ],
               "Resource": "arn:aws:dynamodb:*:*:table/*",
               "Condition": {
                   "Null": {
                       "aws:TagKeys": "false"
                   },
                   "ForAllValues:StringNotEquals": {
                       "aws:TagKeys": "CostCenter"
                   }
               }
           }
       ]
   }
   ```

------

1. Nehmen Sie die Rolle an, der die Richtlinie angehängt wurde, und erstellen Sie eine Tabelle mit dem Tag-Schlüssel `Title`.

   ```
   ddb_client = boto3.client('dynamodb')
   
   create_table_response = ddb_client.create_table(
       AttributeDefinitions=[
           {
               'AttributeName': 'id',
               'AttributeType': 'S'
           },
       ],
       TableName='myMusicTable',
       KeySchema=[
           {
               'AttributeName': 'id',
               'KeyType': 'HASH'
           },
       ],
           ProvisionedThroughput={
           'ReadCapacityUnits': 1000,
           'WriteCapacityUnits': 500
       },
       Tags=[
           {
               'Key': 'Title',
               'Value': 'ProductManager'
           },
       ],
   )
   ```

------

**Ohne ABAC**  
Wenn ABAC für Sie nicht aktiviert ist AWS-Konto, sendet DynamoDB die Tag-Schlüssel im `create-table` Befehl nicht an IAM. Die `Null`-Bedingung stellt sicher, dass die Bedingung als `false` ausgewertet wird, wenn in der Anforderung keine Tags vorhanden sind. Da die `Deny`-Richtlinie nicht übereinstimmt, wird der Befehl `create-table` erfolgreich ausgeführt.

**Mit ABAC**  
Wenn ABAC für Sie aktiviert ist AWS-Konto, werden die im `create-table` Befehl übergebenen Tag-Schlüssel an IAM übergeben. Der Tag-Schlüssel `Title` wird anhand des bedingungsbasierten Tag-Schlüssels `CostCenter` ausgewertet, der in der `Deny`-Richtlinie enthalten ist. Der Tag-Schlüssel `Title` stimmt aufgrund des `StringNotEquals`-Operators nicht mit dem in der `Deny`-Richtlinie vorhandenen Tag-Schlüssel überein. Daher schlägt die `CreateTable`-Aktion fehl und Ihre Tabelle wird nicht erstellt. Wenn Sie den Befehl `create-table` ausführen, wird ein`AccessDeniedException`-Fehler zurückgegeben.

```
An error occurred (AccessDeniedException) when calling the CreateTable operation: User: arn:aws:sts::123456789012:assumed-role/DynamoFullAccessRole/ProductManager is not authorized to perform: dynamodb:CreateTable on resource: arn:aws:dynamodb:us-east-1:123456789012:table/myMusicTable with an explicit deny in an identity-based policy.
```

# Behebung häufiger ABAC-Fehler für DynamoDB-Tabellen und -Indizes
<a name="abac-troubleshooting"></a>

Dieses Thema enthält Hinweise zur Fehlerbehebung bei häufigen Fehlern und Problemen, die bei der Implementierung von ABAC in DynamoDB-Tabellen oder -Indizes auftreten können.

## Servicespezifische Bedingungsschlüssel in Richtlinien führen zu einem Fehler
<a name="abac-troubleshooting-service-specific-keys"></a>

Servicespezifische Bedingungsschlüssel werden nicht als gültige Bedingungsschlüssel betrachtet. Wenn Sie solche Schlüssel in Ihren Richtlinien verwendet haben, führen diese zu einem Fehler. Um dieses Problem zu beheben, müssen Sie die servicespezifischen Bedingungsschlüssel durch einen geeigneten [Bedingungsschlüssel für die Implementierung von ABAC](attribute-based-access-control.md#condition-keys-implement-abac) in DynamoDB ersetzen.

Angenommen, Sie haben den `dynamodb:ResourceTag` Bedingungsschlüssel in einer [Inline-Richtlinie](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) verwendet, die die Anforderung ausführt. [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html) Stellen Sie sich vor, dass die Anforderung mit einem `AccessDeniedException`-Fehler fehlschlägt. Das folgende Beispiel zeigt die fehlerhafte Inline-Richtlinie mit dem `dynamodb:ResourceTag`-Bedingungsschlüssel.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*",
            "Condition": {
                "StringEquals": {
                    "dynamodb:ResourceTag/Owner": "John"
                }
            }
        }
    ]
}
```

------

Um dieses Problem zu beheben, ersetzen Sie den `dynamodb:ResourceTag`-Bedingungsschlüssel durch `aws:ResourceTag`, wie im folgenden Beispiel gezeigt.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:PutItem"
            ],
            "Resource": "arn:aws:dynamodb:*:*:table/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/Owner": "John"
                }
            }
        }
    ]
}
```

------

## ABAC kann nicht deaktiviert werden
<a name="abac-troubleshooting-unable-opt-out"></a>

Wenn ABAC für Ihr Konto aktiviert wurde Support, können Sie sich nicht über die DynamoDB-Konsole von ABAC abmelden. Um sich abzumelden, wenden Sie sich an den [Support](https://console.aws.amazon.com/support).

Sie können sich *nur dann* selbst von ABAC abmelden, wenn Folgendes zutrifft:
+ Sie haben die Self-Service-Methode verwendet, um sich [über die DynamoDB-Konsole anzumelden](abac-enable-ddb.md#abac-enable-console).
+ Sie melden sich innerhalb von sieben Kalendertagen nach der Anmeldung ab.

# Datenschutz in DynamoDB
<a name="data-protection"></a>

Amazon DynamoDB bietet eine sehr robuste Speicherinfrastruktur, die für geschäftskritische und primäre Speicheranwendungen entwickelt wurde. Daten werden redundant auf mehreren Geräten in verschiedenen Anlagen einer Amazon-DynamoDB-Region gespeichert.

DynamoDB schützt im Ruhezustand gespeicherte Benutzerdaten sowie Daten, die zwischen lokalen Clients und DynamoDB sowie zwischen DynamoDB und anderen Ressourcen innerhalb derselben Region übertragen werden. AWS AWS 

**Topics**
+ [Ruhende DynamoDB-Verschlüsselung](EncryptionAtRest.md)
+ [Sichern von DynamoDB-Verbindungen mithilfe von VPC-Endpunkten und IAM-Richtlinien](inter-network-traffic-privacy.md)

# Ruhende DynamoDB-Verschlüsselung
<a name="EncryptionAtRest"></a>

Alle Benutzerdaten, die in Amazon DynamoDB gespeichert sind, werden im Ruhezustand vollständig verschlüsselt. Die DynamoDB-Verschlüsselung im Ruhezustand bietet erhöhte Sicherheit, indem alle Ruhedaten mit Verschlüsselungsschlüsseln verschlüsselt werden, die in [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) gespeichert sind. Diese Funktionalität trägt zur Verringerung des Betriebsaufwands und der Komplexität bei, die mit dem Schutz sensibler Daten einhergeht. Mit der Verschlüsselung ruhender Daten können Sie sicherheitsrelevante Anwendungen erstellen, die eine strenge Einhaltung der Verschlüsselungsvorschriften und der gesetzlichen Bestimmungen erfordern.

Die DynamoDB-Verschlüsselung im Ruhezustand bietet eine zusätzliche Datenschutzebene, indem Ihre Daten stets in einer verschlüsselten Tabelle gesichert werden – einschließlich des Primärschlüssels, lokaler und globaler sekundärer Indizes, Datenströme, globaler Tabellen, Backups und DynamoDB-Accelerator-(DAX)-Clustern –, wenn die Daten auf dauerhaften Datenträgern gespeichert werden. Richtlinien der Organisation, Vorschriften der Branche oder Behörde und Compliance-Anforderungen schreiben oft die Verschlüsselung ruhender Daten vor, um den Datenschutz Ihrer Anwendungen zu erhöhen. Weitere Informationen zur Verschlüsselung für Datenbankanwendungen finden Sie unter [AWS Database Encryption SDK](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/what-is-database-encryption-sdk.html).

Encryption at Rest ist in die Verwaltung der Verschlüsselungsschlüssel integriert, die AWS KMS zur Verschlüsselung Ihrer Tabellen verwendet werden. Weitere Informationen zu Schlüsseltypen und -status finden Sie unter [AWS Key Management Service -Konzepte](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html#key-state-cmk-type) im *AWS Key Management Service -Entwicklerhandbuch*.

Wenn Sie eine neue Tabelle erstellen, können Sie einen der folgenden AWS KMS key Typen zum Verschlüsseln Ihrer Tabelle auswählen. Sie können jederzeit zwischen diesen Schlüsseltypen wechseln.
+ **AWS-eigener Schlüssel —** Standardverschlüsselungstyp. Der Schlüssel befindet sich im Besitz von DynamoDB (kein Aufpreis).
+ **Von AWS verwalteter Schlüssel —** Der Schlüssel ist in Ihrem Konto gespeichert und wird von verwaltet AWS KMS (es AWS KMS fallen Gebühren an).
+ **Vom Kunden verwalteter Schlüssel –** Der Schlüssel wird in Ihrem Konto gespeichert und von Ihnen erstellt, besessen und verwaltet. Sie haben die volle Kontrolle über den KMS-Schlüssel (es AWS KMS fallen Gebühren an).

Weitere Informationen zu Schlüsseltypen finden Sie unter [Kundenschlüssel und AWS Schlüssel](/kms/latest/developerguide/concepts.html#key-mgmt).

**Anmerkung**  
Beim Erstellen eines neuen DAX-Clusters mit aktivierter Verschlüsselung im Ruhezustand wird ein Von AWS verwalteter Schlüssel verwendet, um Daten im Ruhezustand im Cluster zu verschlüsseln.
Wenn Ihre Tabelle einen Sortierschlüssel hat, werden einige der Sortierschlüssel, die Bereichsgrenzen markieren, in Klartext in den Metadaten der Tabelle gespeichert.

Wenn Sie auf eine verschlüsselte Tabelle zugreifen, entschlüsselt DynamoDB die Tabellendaten transparent. Sie müssen keinen Code oder Anwendungen ändern, um verschlüsselte Tabellen zu verwenden oder zu verwalten. DynamoDB liefert weiterhin dieselbe Latenz im einstelligen Millisekundenbereich, die Sie gewohnt sind, und alle DynamoDB Abfragen funktionieren nahtlos für Ihre verschlüsselten Daten.

Sie können einen Verschlüsselungsschlüssel angeben, wenn Sie eine neue Tabelle erstellen oder die Verschlüsselungsschlüssel für eine bestehende Tabelle mithilfe der AWS-Managementkonsole, AWS Command Line Interface (AWS CLI) oder der Amazon DynamoDB DynamoDB-API austauschen. Um zu erfahren wie dies geht, vgl. [Verwalten von verschlüsselten Tabellen in DynamoDB](encryption.tutorial.md).

Die Verschlüsselung im Ruhezustand mithilfe von AWS-eigener Schlüssel wird ohne zusätzliche Kosten angeboten. Es AWS KMS fallen jedoch Gebühren für einen Von AWS verwalteter Schlüssel und für einen vom Kunden verwalteten Schlüssel an. Weitere Informationen zur Preisgestaltung finden Sie unter [AWS KMS  – Preise](https://aws.amazon.com/kms/pricing).

DynamoDB-Verschlüsselung im Ruhezustand ist in allen AWS Regionen verfügbar, einschließlich der Regionen AWS China (Peking) und AWS China (Ningxia) sowie der Regionen AWS GovCloud (USA). Weitere Informationen erhalten Sie unter [Verschlüsselung im Ruhezustand mit DynamoDB: Funktionsweise](encryption.howitworks.md) und [Nutzungshinweise zur Verschlüsselung ruhender Daten in DynamoDB](encryption.usagenotes.md).

# Verschlüsselung im Ruhezustand mit DynamoDB: Funktionsweise
<a name="encryption.howitworks"></a>

Die Amazon-DynamoDB-Verschlüsselung verschlüsselt Ihre Daten mit 256-bit-Advanced-Encryption-Standard (AES-256), um Ihre Daten vor unautorisiertem Zugriff auf den zugrunde liegenden Speicher zu schützen.

Encryption at Rest ist in AWS Key Management Service (AWS KMS) integriert, um die Verschlüsselungsschlüssel zu verwalten, die zur Verschlüsselung Ihrer Tabellen verwendet werden.

**Anmerkung**  
Im Mai 2022 AWS KMS wurde der Rotationsplan Von AWS verwaltete Schlüssel von allen drei Jahren (etwa 1.095 Tage) auf jedes Jahr (ungefähr 365 Tage) geändert.  
Neue Von AWS verwaltete Schlüssel werden automatisch ein Jahr nach ihrer Erstellung und danach ungefähr jedes Jahr rotiert.  
Bestehende Von AWS verwaltete Schlüssel werden automatisch ein Jahr nach ihrer letzten Rotation und danach jedes Jahr gewechselt.

## AWS-eigene Schlüssel
<a name="ddb-owned"></a>

 AWS-eigene Schlüssel sind nicht in Ihrem AWS Konto gespeichert. Sie sind Teil einer Sammlung von KMS-Schlüsseln, die AWS Eigentümer sind und für die Verwendung in mehreren AWS Konten verwaltet werden. AWS Dienste, die Sie AWS-eigene Schlüssel zum Schutz Ihrer Daten verwenden können. AWS-eigene Schlüssel die von DynamoDB verwendet werden, werden jedes Jahr rotiert (ungefähr 365 Tage). 

Sie können ihre Verwendung nicht einsehen, verwalten AWS-eigene Schlüssel, verwenden oder überwachen. Sie müssen jedoch keine Maßnahmen ergreifen oder Programme zum Schutz der Schlüssel ändern, die zur Verschlüsselung Ihrer Daten verwendet werden.

Ihnen wird weder eine monatliche Gebühr noch eine Nutzungsgebühr für die Nutzung von berechnet AWS-eigene Schlüssel, und sie werden auch nicht auf die AWS KMS Kontingente für Ihr Konto angerechnet.

## Von AWS verwaltete Schlüssel
<a name="managed-key-service-default-kms"></a>

Von AWS verwaltete Schlüssel sind KMS-Schlüssel in Ihrem Konto, die in Ihrem Namen von einem integrierten AWS Dienst erstellt, verwaltet und verwendet werden. AWS KMS Sie können die Von AWS verwaltete Schlüssel in Ihrem Konto anzeigen, ihre Schlüsselrichtlinien abrufen und ihre Verwendung in AWS CloudTrail -Protokollen prüfen. Sie haben jedoch nicht die Möglichkeit, diese KMS-Schlüssel zu verwalten oder ihre Berechtigungen zu ändern.

Encryption at Rest integriert sich automatisch in die Verwaltung von AWS KMS Von AWS verwaltete Schlüssel for DynamoDB (`aws/dynamodb`), die zum Verschlüsseln Ihrer Tabellen verwendet werden. Wenn beim Erstellen Ihrer verschlüsselten DynamoDB-Tabelle Von AWS verwalteter Schlüssel kein vorhanden ist, AWS KMS wird automatisch ein neuer Schlüssel für Sie erstellt. Dieser Schlüssel wird für verschlüsselte Tabellen verwendet, die in future erstellt werden. AWS KMS kombiniert sichere, hochverfügbare Hardware und Software, um ein für die Cloud skaliertes Schlüsselverwaltungssystem bereitzustellen.

Weitere Informationen zur Verwaltung der Von AWS verwalteter Schlüssel Berechtigungen von finden Sie unter [Autorisieren der Verwendung von Von AWS verwalteter Schlüssel im AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-authz) *Entwicklerhandbuch*.

## Kundenseitig verwaltete Schlüssel
<a name="managed-key-customer-managed"></a>

Von Kunden verwaltete Schlüssel sind KMS-Schlüssel in Ihrem AWS Konto, die Sie erstellen, besitzen und verwalten. Sie haben die volle Kontrolle über diese KMS-Schlüssel, einschließlich der Festlegung und Pflege ihrer wichtigsten Richtlinien, IAM-Richtlinien und Unterstützungen. Aktivieren und Deaktivieren; Drehen ihres kryptographischen Materials; Hinzufügen von Tags; Erstellen von Aliasen, die auf sie verweisen; und sie zum Löschen planen. Weitere Informationen zum Verwalten von Berechtigungen eines kundenseitig verwalteten Schlüssels finden Sie unter [Kundenseitig verwaltete Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

Wenn Sie einen kundenverwalteten Schlüssel als Verschlüsselungsschlüssel auf Tabellenebene angeben, werden die DynamoDB-Tabelle, die lokalen und globalen sekundären Indizes und Streams mit demselben kundenverwalteten Schlüssel verschlüsselt. Bei Bedarf werden Backups mit dem Verschlüsselungsschlüssel auf Tabellenebene verschlüsselt, der zum Zeitpunkt der Erstellung der Backup angegeben wird. Beim Aktualisieren des Verschlüsselungsschlüssels auf Tabellenebene wird der Verschlüsselungsschlüssel nicht geändert, der vorhandenen On-Demand-Backups zugeordnet ist.

Durch Festlegen des Status des kundenverwalteten Schlüssels auf Deaktivierung oder Planung für das Löschen wird verhindert, dass alle Benutzer und der DynamoDB-Service Daten verschlüsseln oder entschlüsseln und Lese- und Schreibvorgänge für die Tabelle ausführen können. DynamoDB muss Zugriff auf Ihren Verschlüsselungsschlüssel haben, um sicherzustellen, dass Sie weiterhin auf Ihre Tabelle zugreifen können und Datenverluste zu verhindern.

Wenn Sie den kundenverwalteten Schlüssel deaktivieren oder planen ihn zu Löschen, wird Ihr Tabellenstatus **Unzugänglich**. Um sicherzustellen, dass Sie die Arbeit mit der Tabelle fortsetzen können, müssen Sie DynamoDB Zugriff auf den angegebenen Verschlüsselungsschlüssel innerhalb von sieben Tagen gewähren. Sobald der Dienst erkennt, dass der Zugriff auf den Verschlüsselungsschlüssel nicht möglich ist, sendet DynamoDB eine E-Mail-Benachrichtigung, um Sie zu benachrichtigen.

**Anmerkung**  
Wenn auf Ihren kundenverwalteten Schlüssel länger als sieben Tage nicht mehr vom DynamoDB-Service zugegriffen werden kann, wird die Tabelle archiviert und es kann nicht mehr darauf zugegriffen werden. DynamoDB erstellt eine On-Demand-Backup Ihrer Tabelle, und es wird Ihnen in Rechnung gestellt. Sie können diese On-Demand-Backup verwenden, um Ihre Daten in einer neuen Tabelle wiederherzustellen. Um die Wiederherstellung zu initiieren, muss der letzte kundenverwaltete Schlüssel in der Tabelle aktiviert sein, und DynamoDB muss Zugriff darauf haben.
Wenn Ihr kundenverwalteter Schlüssel, der zum Verschlüsseln eines globalen Tabellenreplikats verwendet wurde, nicht zugänglich ist, entfernt DynamoDB dieses Replikat aus der Replikationsgruppe. Das Replikat wird nicht gelöscht, und die Replikation wird 20 Stunden nach der Erkennung des kundenverwalteten Schlüssels als nicht zugänglich angehalten.

Weitere Informationen finden Sie unter [Aktivieren von Schlüsseln](/kms/latest/developerguide/enabling-keys.html) und [Löschen von Schlüsseln](/kms/latest/developerguide/deleting-keys.html). 

## Hinweise zur Verwendung Von AWS verwaltete Schlüssel
<a name="managed-key-notes"></a>

Amazon DynamoDB kann Ihre Tabellendaten nur lesen, wenn es Zugriff auf den in Ihrem AWS KMS Konto gespeicherten KMS-Schlüssel hat. DynamoDB verwendet die Envelope-Verschlüsselung und die Schlüsselhierarchie, um Daten zu verschlüsseln. Ihr AWS KMS Verschlüsselungsschlüssel wird verwendet, um den Stammschlüssel dieser Schlüsselhierarchie zu verschlüsseln. Weitere Informationen zur [Envelope-Verschlüsselung](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#enveloping) finden Sie im *AWS Key Management Service -Entwicklerhandbuch*.

 DynamoDB ruft nicht AWS KMS für jeden DynamoDB-Vorgang auf. Der Schlüssel wird einmal alle 5 Minuten pro Aufrufer mit aktivem Datenverkehr aktualisiert.

Stellen Sie sicher, dass das SDK für die Wiederverwendung von Verbindungen konfiguriert ist. Andernfalls treten Latenzen auf, da DynamoDB für jeden DynamoDB-Vorgang neue AWS KMS Cacheeinträge neu einrichten muss. Darüber hinaus müssen Sie möglicherweise mit höheren Kosten rechnen. AWS KMS CloudTrail Um dies beispielsweise mit dem Node.js SDK zu tun, können Sie einen neuen HTTPS-Agent mit aktivierter `keepAlive` erstellen. Weitere Informationen finden Sie unter [Konfigurieren von keepAlive in Node.js](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/node-reusing-connections.html) im *AWS SDK für JavaScript -Entwicklerhandbuch*.

# Nutzungshinweise zur Verschlüsselung ruhender Daten in DynamoDB
<a name="encryption.usagenotes"></a>

Beachten Sie Folgendes, wenn Sie die Verschlüsselung ruhender Daten in Amazon DynamoDB verwenden.

## Alle Tabellendaten werden verschlüsselt
<a name="encryption.usagenotes.tabledata"></a>

Die serverseitige Verschlüsselung ruhender Daten ist für alle DynamoDB-Tabellendaten aktiviert und kann nicht deaktiviert werden. Sie können nicht nur eine Teilmenge von Elementen in einer Tabelle verschlüsseln.

Die Verschlüsselung ruhender Daten verschlüsselt Daten nur, während sie auf persistenten Speichermedien statisch (ruhende Daten) sind. Wenn die Datensicherheit für in Übertragung befindliche oder genutzte Daten wichtig ist, müssen Sie ggf. zusätzliche Maßnahmen ergreifen:
+ Daten während der Übertragung: Alle Ihre Daten in DynamoDB werden während der Übertragung verschlüsselt. Standardmäßig verwenden Mitteilungen an und von DynamoDB das HTTPS-Protokoll, das den Netzwerkverkehr mittels Secure-Sockets-Layer-(SSL)-/Transport-Layer-Security-(TLS)-Verschlüsselung schützt.
+ Genutzte Daten: Schützen Sie Daten durch Client-seitige Verschlüsselung, bevor sie an DynamoDB gesendet werden. Weitere Informationen finden Sie unter [Client- und serverseitige Verschlüsselung im Entwicklerhandbuch](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/client-server-side.html) für *Amazon DynamoDB Encryption Client*.

Sie können Streams mit verschlüsselten Tabellen verwenden. DynamoDB-Streams werden immer mit einem Verschlüsselungsschlüssel auf Tabellenebene verschlüsselt. Weitere Informationen finden Sie unter [Ändern Sie die Datenerfassung für DynamoDB Streams](Streams.md).

DynamoDB-Backups werden verschlüsselt. Für die Tabelle, die aus einem Backup wiederhergestellt wird, ist die Verschlüsselung ebenfalls aktiviert. Sie können den AWS-eigener Schlüssel Von AWS verwalteter Schlüssel, oder vom Kunden verwalteten Schlüssel verwenden, um Ihre Backup-Daten zu verschlüsseln. Weitere Informationen finden Sie unter [Backup und Wiederherstellung für DynamoDB](Backup-and-Restore.md).

Lokale Sekundärindizes und globale Sekundärindizes werden mit dem gleichen Schlüssel wie die Basistabelle verschlüsselt.

## Verschlüsselungstypen
<a name="encryption.usagenotes.encryptiontypes"></a>

**Anmerkung**  
Vom Kunden verwaltete Schlüssel werden in der globalen Tabelle Version 2017 nicht unterstützt. Wenn Sie einen vom Kunden verwalteten Schlüssel in einer globalen DynamoDB-Tabelle verwenden möchten, müssen Sie die Tabelle auf Version 2019 aktualisieren und dann aktivieren.

Bei der handelt es sich um den Verschlüsselungstyp AWS-Managementkonsole, `KMS` wenn Sie den Von AWS verwalteter Schlüssel oder den vom Kunden verwalteten Schlüssel zum Verschlüsseln Ihrer Daten verwenden. Der Verschlüsselungstyp lautet `DEFAULT`, wenn Sie den AWS-eigener Schlüssel verwenden. In der Amazon DynamoDB DynamoDB-API ist der Verschlüsselungstyp der Fall, `KMS` wenn Sie den Von AWS verwalteter Schlüssel oder den vom Kunden verwalteten Schlüssel verwenden. Wenn kein Verschlüsselungstyp angegeben wird, werden Ihre Daten mit dem AWS-eigener Schlüssel verschlüsselt. Sie können jederzeit zwischen dem AWS-eigener Schlüssel Von AWS verwalteter Schlüssel, und dem vom Kunden verwalteten Schlüssel wechseln. Sie können die Konsole, die AWS Command Line Interface (AWS CLI) oder die Amazon DynamoDB DynamoDB-API verwenden, um die Verschlüsselungsschlüssel zu wechseln.

Beachten Sie die folgenden Einschränkungen bei Verwendung kundenverwalteter Schlüssel:
+ Sie können einen kundenverwalteten Schlüssel nicht mit den DynamoDB-Accelerator (DAX)-Clustern verwenden. Weitere Informationen finden Sie unter [DAX-Verschlüsselung im Ruhezustand](DAXEncryptionAtRest.md).
+ Sie können einen kundenverwalteten Schlüssel nutzen, um Tabellen zu verschlüsseln, die Transaktionen verwenden. Um jedoch die Dauerhaftigkeit für die Weitergabe von Transaktionen zu gewährleisten, wird eine Kopie der Transaktionsanforderung vom Dienst vorübergehend gespeichert und mit einem AWS-eigener Schlüssel verschlüsselt. Festgeschriebene Daten in Ihren Tabellen und sekundären Indizes werden im Ruhezustand immer mit Ihrem kundenverwalteten Schlüssel verschlüsselt.
+ Sie können einen kundenverwalteten Schlüssel nutzen, um Tabellen zu verschlüsseln, die Contributor Insights verwenden. Daten, an die übertragen werden, sind jedoch mit einem Amazon CloudWatch verschlüsselt. AWS-eigener Schlüssel
+ Achten Sie beim Umstieg auf einen neuen, vom Kunden verwalteten Schlüssel darauf, dass der ursprüngliche Schlüssel aktiviert bleibt, bis der Vorgang abgeschlossen ist. AWS Sie benötigen weiterhin den Originalschlüssel, um die Daten zu entschlüsseln, bevor Sie sie mit dem neuen Schlüssel verschlüsseln. Der Vorgang ist abgeschlossen, wenn der SSEDescription Status der Tabelle AKTIVIERT ist und der KMSMaster KeyArn des neuen vom Kunden verwalteten Schlüssels angezeigt wird. Zu diesem Zeitpunkt kann der ursprüngliche Schlüssel deaktiviert oder zum Löschen eingeplant werden.
+ Sobald der neue kundenverwaltete Schlüssel angezeigt wird, werden die Tabelle und alle neuen On-Demand-Backups mit dem neuen Schlüssel verschlüsselt.
+ Alle vorhandenen On-Demand-Backups bleiben mit dem kundenverwalteten Schlüssel verschlüsselt, der beim Erstellen dieser Backups verwendet wurde. Sie benötigen denselben Schlüssel, um diese Backups wiederherzustellen. Sie können den Schlüssel für den Zeitraum identifizieren, in dem jedes Backup erstellt wurde, indem Sie die DescribeBackup API verwenden, um die Backups einzusehen SSEDescription.
+ Wenn Sie den kundenverwalteten Schlüssel deaktivieren oder zum Löschen vorsehen, gilt für alle Daten in DynamoDB Streams weiterhin eine 24-stündige Lebensdauer. Nicht abgerufene Daten, die älter als 24 Stunden sind, können jederzeit entfernt werden.
+ Wenn Sie den kundenverwalteten Schlüssel deaktivieren oder zum Löschen planen, werden Time-to-Live (TTL)-Löschungen für 30 Minuten fortgesetzt. Diese TTL-Löschungen werden weiterhin an DynamoDB Streams ausgegeben und unterliegen dem Standardintervall. trimming/retention 

  Weitere Informationen finden Sie unter [Aktivieren von Schlüsseln](/kms/latest/developerguide/enabling-keys.html) und [Löschen von Schlüsseln](/kms/latest/developerguide/deleting-keys.html). 

## Verwenden von KMS-Schlüsseln und Datenschlüsseln
<a name="dynamodb-kms"></a>

Die DynamoDB-Funktion zur Verschlüsselung im Ruhezustand verwendet eine AWS KMS key und eine Hierarchie von Datenschlüsseln, um Ihre Tabellendaten zu schützen. DynamoDB verwendet die gleiche Schlüsselhierarchie zum Schutz von DynamoDB-Streams, globalen Tabellen und Backups, wenn sie auf beständige Medien geschrieben werden.

Wir empfehlen Ihnen, Ihre Verschlüsselungsstrategie zu planen, bevor Sie Ihre Tabelle in DynamoDB implementieren. Wenn Sie sensible oder vertrauliche Daten in DynamoDB speichern, sollten Sie erwägen, eine clientseitige Verschlüsselung in Ihren Plan aufzunehmen. Auf diese Weise können Sie Daten so nah wie möglich an ihrem Ursprung verschlüsseln und den Schutz der Daten während ihres gesamten Lebenszyklus gewährleisten. Weitere Informationen finden Sie in der Dokumentation zum [DynamoDB-Verschlüsselungsclient](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/what-is-ddb-encrypt.html).

**AWS KMS key**  
Die Verschlüsselung im Ruhezustand schützt Ihre DynamoDB-Tabellen mit einem AWS KMS key. Standardmäßig verwendet DynamoDB einen [AWS-eigener Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk), einen Mehrmandanten-Verschlüsselungsschlüssel, der in einem DynamoDB-Servicekonto erstellt und verwaltet wird. Sie können Ihre DynamoDB-Tabellen jedoch mit einem [vom Kunden verwalteten Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) für DynamoDB (`aws/dynamodb`) in Ihrem AWS-Konto verschlüsseln. Sie können für jede Tabelle einen anderen KMS-Schlüssel auswählen. Der KMS-Schlüssel, den Sie für eine Tabelle auswählen, wird auch zur Verschlüsselung der lokalen und globalen sekundären Indizes, Streams und Backups verwendet.  
Sie wählen den KMS-Schlüssel für eine Tabelle aus, wenn Sie die Tabelle erstellen oder aktualisieren. Sie können den KMS-Schlüssel für eine Tabelle jederzeit ändern, entweder in der DynamoDB-Konsole oder mithilfe des [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)Vorgangs. Der Vorgang des Schlüsselwechsels ist nahtlos und erfolgt ohne Ausfallzeiten oder Beeinträchtigung des Service.  
DynamoDB unterstützt nur [symmetrische KMS-Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks). Sie können keinen [asymmetrischen KMS-Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks) verwenden, um Ihre DynamoDB-Tabellen zu verschlüsseln. 
Verwenden Sie einen kundenverwalteten KMS-Schlüssel, um die folgenden Funktionen zu erhalten:  
+ Sie erstellen und verwalten den KMS-Schlüssel, einschließlich der Einstellung der [Schlüsselrichtlinien](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), [IAM-Richtlinien](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) und [Erteilungen](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html), um den Zugriff auf den KMS-Schlüssel zu steuern. Sie können den KMS-Schlüssel [aktivieren und deaktivieren](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html), die [automatische Schlüsseldrehung](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html) aktivieren und deaktivieren und [den KMS-Schlüssel löschen](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys.html), wenn er nicht mehr verwendet wird.
+ Sie können einen kundenverwalteten Schlüssel mit [importiertem Schlüsselmaterial](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html) oder einen kundenverwalteten Schlüssel in einem [benutzerdefinierten Schlüsselspeicher](https://docs.aws.amazon.com/kms/latest/developerguide/custom-key-store-overview.html) verwenden, den Sie besitzen und verwalten. 
+ [Sie können die Verschlüsselung und Entschlüsselung Ihrer DynamoDB-Tabelle überprüfen, indem Sie die DynamoDB-API-Aufrufe in Logs untersuchen. AWS KMSAWS CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-cmk-trail)
Verwenden Sie die, Von AWS verwalteter Schlüssel wenn Sie eine der folgenden Funktionen benötigen:  
+ Sie können [den KMS-Schlüssel anzeigen](https://docs.aws.amazon.com/kms/latest/developerguide/viewing-keys.html) und [seine Schlüsselrichtlinie anzeigen](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-viewing.html). (Sie können die Schlüsselrichtlinie nicht ändern.)
+ [Sie können die Verschlüsselung und Entschlüsselung Ihrer DynamoDB-Tabelle überprüfen, indem Sie die DynamoDB-API-Aufrufe in Logs untersuchen. AWS KMSAWS CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-cmk-trail)
[Sie ist jedoch kostenlos und ihre Nutzung AWS-eigener Schlüssel wird nicht auf Ressourcen- oder Anforderungskontingente angerechnet AWS KMS .](https://docs.aws.amazon.com/kms/latest/developerguide/limits.html) Vom Kunden verwaltete Schlüssel, für die für jeden API-Aufruf [eine Von AWS verwaltete Schlüssel Gebühr](https://aws.amazon.com/kms/pricing/) anfällt. Für diese KMS-Schlüssel gelten AWS KMS Kontingente.

**Tabellenschlüssel**  
DynamoDB verwendet den KMS-Schlüssel, der als *Tabellenschlüssel* bezeichnet wird, zum [Generieren](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) und Verschlüsseln eines eindeutigen [Datenschlüssels](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) für die Tabelle. Der Tabellenschlüssel bleibt für die Lebensdauer der verschlüsselten Tabelle bestehen.   
Der Tabellenschlüssel wird als Schlüssel-Verschlüsselungsschlüssel verwendet. DynamoDB verwendet diesen Tabellenschlüssel zum Schutz von Daten-Verschlüsselungsschlüsseln, die zum Verschlüsseln der Tabellendaten verwendet werden. DynamoDB generiert einen eindeutigen Datenverschlüsselungsschlüssel für jede zugrunde liegende Struktur in einer Tabelle, mehrere Tabellenelemente können jedoch vom gleichen Datenverschlüsselungsschlüssel geschützt werden.  

![\[Verschlüsseln einer DynamoDB-Tabelle per Verschlüsselung im Ruhezustand\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/service-ddb-encrypt.png)

Wenn Sie zum ersten Mal auf eine verschlüsselte Tabelle zugreifen, sendet DynamoDB eine Anfrage an, den KMS-Schlüssel AWS KMS zum Entschlüsseln des Tabellenschlüssels zu verwenden. Anschließend wird der Klartext-Tabellenschlüssel zum Entschlüsseln der Datenverschlüsselungsschlüssel verwendet und die Klartext-Datenverschlüsselungsschlüssel werden zum Entschlüsseln der Tabellendaten verwendet.  
DynamoDB speichert und verwendet den Tabellenschlüssel und die Datenverschlüsselungsschlüssel außerhalb von. AWS KMS Alle Schlüssel werden mit [Advanced Encryption Standard](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard) (AES)-Verschlüsselung und 256-Bit-Verschlüsselungsschlüsseln geschützt. Anschließend werden die verschlüsselten Schlüssel zusammen mit den verschlüsselten Daten gespeichert, damit sie bei Bedarf für die Entschlüsselung der Tabellendaten verfügbar sind.  
Wenn Sie den KMS-Schlüssel für Ihre Tabelle ändern, generiert DynamoDB einen neuen Tabellenschlüssel. Anschließend wird der neue Tabellenschlüssel verwendet, um die Datenverschlüsselungsschlüssel neu zu verschlüsseln.

**Tabellenschlüssel-Caching**  
Um zu vermeiden, dass AWS KMS jede DynamoDB-Operation aufgerufen wird, speichert DynamoDB die Klartext-Tabellenschlüssel für jeden Aufrufer im Speicher zwischen. Wenn DynamoDB nach fünf Minuten Inaktivität eine Anfrage für den zwischengespeicherten Tabellenschlüssel erhält, sendet es eine neue Anfrage an, um den Tabellenschlüssel AWS KMS zu entschlüsseln. Dieser Aufruf erfasst alle Änderungen, die seit der letzten Anforderung zur Entschlüsselung des Tabellenschlüssels an den Zugriffsrichtlinien des KMS-Schlüssels in AWS KMS oder AWS Identity and Access Management (IAM) vorgenommen wurden.

## Autorisieren der Nutzung Ihres KMS-Schlüssels
<a name="dynamodb-kms-authz"></a>

Wenn Sie einen [kundenverwalteten Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) oder den [Von AWS verwalteter Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)-verwalteten Schlüssel in Ihrem Konto zum Schutz Ihrer DynamoDB-Tabelle verwenden, müssen die Richtlinien für diesen KMS-Schlüssel DynamoDB zu seiner Verwendung in Ihrem Namen berechtigen. Der Autorisierungskontext auf dem Von AWS verwalteter Schlüssel für DynamoDB umfasst seine wichtigsten Richtlinien und Berechtigungen, mit denen die Berechtigungen zu seiner Verwendung delegiert werden. 

Sie haben die volle Kontrolle über die Richtlinien und Erteilungen für einen kundenverwalteten Schlüssel. Nachdem der Von AWS verwalteter Schlüssel in Ihrem Konto ist, können Sie die seine Richtlinien und Erteilungen anzeigen. Da er jedoch von verwaltet wird AWS, können Sie die Richtlinien nicht ändern.

DynamoDB benötigt keine zusätzliche Autorisierung, um den Standard zum Schutz der DynamoDB-Tabellen in Ihrem [AWS-eigener Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms_keys)zu verwenden. AWS-Konto

**Topics**
+ [Wichtige Richtlinie für ein Von AWS verwalteter Schlüssel](#dynamodb-policies)
+ [Schlüsselrichtlinie für einen kundenverwalteten Schlüssel](#dynamodb-customer-cmk-policy)
+ [Verwenden von Erteilungen zum Autorisieren von DynamoDB](#dynamodb-grants)

### Wichtige Richtlinie für ein Von AWS verwalteter Schlüssel
<a name="dynamodb-policies"></a>

Wenn DynamoDB den [Von AWS verwalteter Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) für DynamoDB (`aws/dynamodb`) in kryptografischen Operationen verwendet, geschieht dies im Auftrag des Benutzers, der auf die [DynamoDB-Ressource](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-overview.html) zugreift. Die wichtigste Richtlinie für Von AWS verwalteter Schlüssel gibt allen Benutzern des Kontos die Erlaubnis, das Von AWS verwalteter Schlüssel für bestimmte Operationen zu verwenden. Die Berechtigung wird aber nur gewährt, wenn DynamoDB die Anforderung für den Benutzer ausgibt. Die [ViaService Bedingung](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) in der Schlüsselrichtlinie erlaubt es keinem Benutzer, die zu verwenden, Von AWS verwalteter Schlüssel es sei denn, die Anforderung stammt vom DynamoDB-Dienst.

Diese wichtige Richtlinie wurde, wie alle Richtlinien Von AWS verwaltete Schlüssel, von festgelegt. AWS Sie können sie nicht ändern, aber jederzeit anzeigen. Details dazu finden Sie unter [Anzeigen einer Schlüsselrichtlinie](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-viewing.html).

Die Richtlinienanweisungen in der Schlüsselrichtlinie haben folgende Wirkungen:
+ Erlauben Sie Benutzern im Konto, Von AWS verwalteter Schlüssel for DynamoDB in kryptografischen Vorgängen zu verwenden, wenn die Anforderung von DynamoDB in ihrem Namen kommt. Die Richtlinie erlaubt Benutzern auch das [Erstellen von Erteilungen](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-grants) für den KMS-Schlüssel.
+ Ermöglicht es autorisierten IAM-Identitäten im Konto, die Eigenschaften des Von AWS verwalteter Schlüssel für DynamoDB anzuzeigen und [die Erteilung zu widerrufen](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html), die DynamoDB die Verwendung des KMS-Schlüssels erlaubt. DynamoDB verwendet [Erteilungen](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-grants) für laufende Wartungsoperationen.
+ Ermöglicht DynamoDB, schreibgeschützte Operationen durchzuführen, um die Von AWS verwalteter Schlüssel für DynamoDB in Ihrem Konto zu finden.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Id" : "auto-dynamodb-1",
  "Statement" : [ {
    "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB",
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "*"
    },
    "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ],
    "Resource" : "*",
    "Condition" : {
      "StringEquals" : {
        "kms:CallerAccount" : "111122223333",
        "kms:ViaService" : "dynamodb.us-west-2.amazonaws.com"
      }
    }
  }, {
    "Sid" : "Allow direct access to key metadata to the account",
    "Effect" : "Allow",
    "Principal" : {
      "AWS" : "arn:aws:iam::111122223333:root"
    },
    "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ],
    "Resource" : "*"
  }, {
    "Sid" : "Allow DynamoDB Service with service principal name dynamodb.amazonaws.com to describe the key directly",
    "Effect" : "Allow",
    "Principal" : {
      "Service" : "dynamodb.amazonaws.com"
    },
    "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*" ],
    "Resource" : "*"
  } ]
}
```

------

### Schlüsselrichtlinie für einen kundenverwalteten Schlüssel
<a name="dynamodb-customer-cmk-policy"></a>

Wenn Sie einen [kundenverwalteten KMS-Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) zum Schutz einer DynamoDB-Tabelle auswählen, erhält DynamoDB die Berechtigung, den KMS-Schlüssel im Namen des Prinzipals zu verwenden, der die Auswahl trifft. Dieser Prinzipal, ein Benutzer oder eine Rolle, muss über die Berechtigungen für den KMS-Schlüssel verfügen, die DynamoDB benötigt. Sie können diese Berechtigungen in einer [Schlüsselrichtlinie](https://docs.aws.amazon.com/kms/latest/developerguide/key-policies.html), einer [IAM-Richtlinie](https://docs.aws.amazon.com/kms/latest/developerguide/iam-policies.html) oder einer [Erteilung](https://docs.aws.amazon.com/kms/latest/developerguide/grants.html) bereitstellen.

DynamoDB erfordert mindestens die folgenden Berechtigungen für einen kundenverwalteten Schlüssel:
+ [kms:Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html)
+ [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)
+ [kms](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html): \$1 (für und) ReEncrypt kms: ReEncryptFrom kms: ReEncryptTo
+ kms: GenerateDataKey \$1 (für [kms: GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html) und [kms: GenerateDataKeyWithoutPlaintext](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKeyWithoutPlaintext.html))
+ [km: DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)
+ [km: CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)

Beispielsweise bietet die folgende Beispiel-Schlüsselrichtlinie nur die erforderlichen Berechtigungen. Die Richtlinie hat folgende Auswirkungen:
+ Erlaubt DynamoDB die Verwendung des KMS-Schlüssels in kryptografischen Operationen und das Erstellen von Erteilungen, jedoch nur, wenn es im Auftrag von Prinzipalen im Konto handelt, die über die Berechtigung zur Verwendung von DynamoDB verfügen. Wenn die in der Richtlinienanweisung angegebenen Prinzipale nicht zur Verwendung von DynamoDB berechtigt sind, schlägt der Aufruf selbst dann fehl, wenn er vom DynamoDB-Service stammt. 
+ Der ViaService Bedingungsschlüssel [kms:](https://docs.aws.amazon.com/kms/latest/developerguide/policy-conditions.html#conditions-kms-via-service) erlaubt die Berechtigungen nur, wenn die Anforderung von DynamoDB im Namen der in der Richtlinienerklärung aufgeführten Prinzipale kommt. Diese Prinzipale können diese Operationen nicht direkt aufrufen. Beachten Sie, dass der `kms:ViaService`-Wert, `dynamodb.*.amazonaws.com`, in der Region-Position ein Sternchen (\$1) hat. DynamoDB benötigt die Berechtigung, unabhängig von einem bestimmten Objekt zu sein, AWS-Region damit es regionsübergreifende Aufrufe zur Unterstützung globaler [DynamoDB-Tabellen](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GlobalTables.html) durchführen kann.
+ Gewährt den KMS-Schlüsseladministratoren (Benutzer, die die `db-team`-Rolle annehmen können) schreibgeschützten Zugriff auf den KMS-Schlüssel und die Berechtigung, Erteilungen zu widerrufen, einschließlich der [Erteilungen, die DynamoDB zum Schutz der Tabelle benötigt](#dynamodb-grants).

Bevor Sie eine Beispielschlüsselrichtlinie verwenden, ersetzen Sie die Beispielprinzipale durch tatsächliche Prinzipale aus Ihrer. AWS-Konto

------
#### [ JSON ]

****  

```
{
  "Id": "key-policy-dynamodb",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB",
      "Effect": "Allow",
      "Principal": {"AWS": "arn:aws:iam::111122223333:user/db-lead"},
      "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey",
        "kms:CreateGrant"
      ],
      "Resource": "*",      
      "Condition": { 
         "StringLike": {
           "kms:ViaService" : "dynamodb.*.amazonaws.com"
         }
      }
    },
    {
      "Sid":  "Allow administrators to view the KMS key and revoke grants",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::111122223333:role/db-team"
       },
      "Action": [
        "kms:Describe*",
        "kms:Get*",
        "kms:List*",
        "kms:RevokeGrant"
      ],
      "Resource": "*"
    }
  ]
}
```

------

### Verwenden von Erteilungen zum Autorisieren von DynamoDB
<a name="dynamodb-grants"></a>

Zusätzlich zu den Schlüsselrichtlinien verwendet DynamoDB Erteilungen, um Berechtigungen für einen kundenverwalteten KMS-Schlüssel oder den Von AWS verwalteter Schlüssel -verwalteten Schlüssel für DynamoDB festzulegen (`aws/dynamodb`). Verwenden Sie den Vorgang, um die Zuweisungen für einen KMS-Schlüssel in Ihrem Konto anzuzeigen. [ListGrants](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListGrants.html) DynamoDB benötigt keine Erteilungen oder zusätzliche Berechtigungen, um die [AWS-eigener Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) zum Schutz Ihrer Tabellen zu verwenden.

DynamoDB verwendet die Berechtigungen aus der Erteilung zur Ausführung von Hintergrundsystemwartung und kontinuierlichen Datenschutzaufgaben. Außerdem werden Erteilungen verwenden, um [Tabellenschlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/services-dynamodb.html#dynamodb-encrypt) zu generieren.

Jede Erteilung ist tabellenspezifisch. Wenn in Ihrem Konto mehrere Tabellen mit demselben KMS-Schlüssel verschlüsselt sind, ist eine Erteilung für jede Art von Tabelle vorhanden. Die Gewährung wird durch den [DynamoDB-Verschlüsselungskontext](#dynamodb-encryption-context) eingeschränkt, der den Tabellennamen und die AWS-Konto ID umfasst, und sie beinhaltet die Berechtigung, [die Grant zurückzuziehen](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html), wenn sie nicht mehr benötigt wird. 

Zum Erstellen von Erteilungen muss DynamoDB zum Aufrufen von `CreateGrant` im Auftrag des Benutzers berechtigt sein, der die verschlüsselte Tabelle erstellt hat. Denn Von AWS verwaltete Schlüssel DynamoDB erhält die `kms:CreateGrant` Erlaubnis von der [Schlüsselrichtlinie](#dynamodb-policies), die es Kontonutzern erlaubt, den KMS-Schlüssel nur dann [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)aufzurufen, wenn DynamoDB die Anfrage im Namen eines autorisierten Benutzers stellt. 

Die Schlüsselrichtlinie kann es dem Konto auch erlauben, die [Erteilung für den KMS-Schlüssel zu widerrufen](https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html). Wenn Sie jedoch die Erteilung für eine aktive verschlüsselte Tabelle widerrufen, kann DynamoDB die Tabelle nicht mehr schützen und pflegen.

## DynamoDB-Verschlüsselungsclient
<a name="dynamodb-encryption-context"></a>

Ein [Verschlüsselungskontext](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context) ist eine Gruppe von Schlüssel/Wert-Paaren mit willkürlichen, nicht geheimen Daten. Wenn Sie einen Verschlüsselungskontext in eine Datenverschlüsselungsanforderung aufnehmen, wird der Verschlüsselungskontext AWS KMS kryptografisch an die verschlüsselten Daten gebunden. Zur Entschlüsselung der Daten müssen Sie denselben Verschlüsselungskontext übergeben. 

DynamoDB verwendet bei allen AWS KMS kryptografischen Vorgängen denselben Verschlüsselungskontext. Wenn Sie einen [kundenverwalteten Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) oder einen [Von AWS verwalteter Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)-verwalteten Schlüssel zum Schutz Ihrer DynamoDB-Tabelle verwenden, können Sie anhand des Verschlüsselungskontexts die Verwendung des KMS-Schlüssels in Prüfungs-Datensätzen und -Protokollen identifizieren. Es erscheint auch im Klartext in Protokollen wie [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)[Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html). 

Der Verschlüsselungskontext kann auch als Bedingung für die Autorisierung in Richtlinien und Erteilungen verwendet werden. DynamoDB verwendet den Verschlüsselungskontext, um die Berechtigungen einzuschränken, die [den](#dynamodb-grants) Zugriff auf den vom Kunden verwalteten Schlüssel oder Von AWS verwalteter Schlüssel in Ihrem Konto und Ihrer Region ermöglichen.

In seinen Anfragen an AWS KMS verwendet DynamoDB einen Verschlüsselungskontext mit zwei Schlüssel-Wert-Paaren.

```
"encryptionContextSubset": {
    "aws:dynamodb:tableName": "Books"
    "aws:dynamodb:subscriberId": "111122223333"
}
```
+ **Tabelle**: Das erste Schlüssel-Wert-Paar gibt die Tabelle an, die DynamoDB verschlüsselt. Der Schlüssel lautet `aws:dynamodb:tableName`. Der Wert ist der Name der Tabelle.

  ```
  "aws:dynamodb:tableName": "<table-name>"
  ```

  Beispiel:

  ```
  "aws:dynamodb:tableName": "Books"
  ```
+ **Konto** – Das zweite Schlüssel-Wert-Paar identifiziert das AWS-Konto. Der Schlüssel lautet `aws:dynamodb:subscriberId`. Der Wert ist die Konto-ID.

  ```
  "aws:dynamodb:subscriberId": "<account-id>"
  ```

  Beispiel:

  ```
  "aws:dynamodb:subscriberId": "111122223333"
  ```

## Überwachen der DynamoDB-Interaktion mit AWS KMS
<a name="dynamodb-cmk-trail"></a>

Wenn Sie einen vom [Kunden verwalteten Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) oder einen [Von AWS verwalteter Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)zum Schutz Ihrer DynamoDB-Tabellen verwenden, können Sie mithilfe von AWS CloudTrail Protokollen die Anfragen verfolgen, an die DynamoDB in Ihrem Namen sendet. AWS KMS 

Die Anforderungen `GenerateDataKey`, `Decrypt` und `CreateGrant` werden in diesem Abschnitt beschrieben. Darüber hinaus ermittelt DynamoDB mithilfe eines [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)Vorgangs, ob der von Ihnen ausgewählte KMS-Schlüssel im Konto und in der Region vorhanden ist. Außerdem wird ein [RetireGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_RetireGrant.html)Vorgang verwendet, um einen Zuschuss zu entfernen, wenn Sie eine Tabelle löschen. 

**GenerateDataKey**  
Wenn Sie die Verschlüsselung im Ruhezustand für eine Tabelle aktivieren, erstellt DynamoDB einen eindeutigen Tabellenschlüssel. Es sendet eine *[GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)*Anfrage an AWS KMS , die den KMS-Schlüssel für die Tabelle angibt.   
Das Ereignis, das die `GenerateDataKey`-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Der Benutzer ist das DynamoDB-Servicekonto. Die Parameter enthalten den Amazon-Ressourcennamen (ARN) des KMS-Schlüssels, einen Schlüsselbezeichner, der einen 256-Bit-Schlüssel benötigt, und den [Verschlüsselungskontext](#dynamodb-encryption-context), der die Tabelle und das AWS-Konto identifiziert.  

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AWSService", 
        "invokedBy": "dynamodb.amazonaws.com" 
    },
    "eventTime": "2018-02-14T00:15:17Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "GenerateDataKey",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "dynamodb.amazonaws.com",
    "userAgent": "dynamodb.amazonaws.com",
    "requestParameters": {
        "encryptionContext": {
            "aws:dynamodb:tableName": "Services",
            "aws:dynamodb:subscriberId": "111122223333"
        }, 
        "keySpec": "AES_256", 
        "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab"
    }, 
    "responseElements": null,
    "requestID": "229386c1-111c-11e8-9e21-c11ed5a52190",
    "eventID": "e3c436e9-ebca-494e-9457-8123a1f5e979",
    "readOnly": true,
    "resources": [
        {
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "accountId": "111122223333",
            "type": "AWS::KMS::Key" 
        } 
    ],
    "eventType": "AwsApiCall",
    "recipientAccountId": "111122223333",
    "sharedEventID": "bf915fa6-6ceb-4659-8912-e36b69846aad"
}
```

**Decrypt**  
Wenn Sie auf eine verschlüsselte DynamoDB-Tabelle zugreifen, muss DynamoDB den Tabellenschlüssel entschlüsseln, damit die in der Hierarchie tiefer angeordneten Schlüssel entschlüsselt werden können. Anschließend werden die Daten in der Tabelle entschlüsselt. Entschlüsseln des Tabellenschlüssels DynamoDB sendet eine [Decrypt-Anfrage](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) an AWS KMS , die den KMS-Schlüssel für die Tabelle angibt.  
Das Ereignis, das die `Decrypt`-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Der Benutzer ist Ihr Hauptbenutzer, der auf AWS-Konto die Tabelle zugreift. Zu den Parametern gehören der verschlüsselte Tabellenschlüssel (als Chiffretext-Blob) und der [Verschlüsselungskontext](#dynamodb-encryption-context), der die Tabelle und den identifiziert. AWS-Konto AWS KMS leitet die ID des KMS-Schlüssels aus dem Chiffretext ab.   

```
{
    "eventVersion": "1.05",
    "userIdentity": {
        "type": "AssumedRole",
        "principalId": "AROAIGDTESTANDEXAMPLE:user01",
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01",
        "accountId": "111122223333",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "sessionContext": {
            "attributes": {
                "mfaAuthenticated": "false", 
                "creationDate": "2018-02-14T16:42:15Z"
            },
            "sessionIssuer": {
                "type": "Role",
                "principalId": "AROAIGDT3HGFQZX4RY6RU",
                "arn": "arn:aws:iam::111122223333:role/Admin",
                "accountId": "111122223333",
                "userName": "Admin" 
            }
        },
        "invokedBy": "dynamodb.amazonaws.com"
    },
    "eventTime": "2018-02-14T16:42:39Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "Decrypt",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "dynamodb.amazonaws.com",
    "userAgent": "dynamodb.amazonaws.com",
    "requestParameters": 
    {
        "encryptionContext":
        {
            "aws:dynamodb:tableName": "Books",
            "aws:dynamodb:subscriberId": "111122223333" 
        }
    }, 
    "responseElements": null, 
    "requestID": "11cab293-11a6-11e8-8386-13160d3e5db5",
    "eventID": "b7d16574-e887-4b5b-a064-bf92f8ec9ad3", 
    "readOnly": true, 
    "resources": [ 
        {
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "accountId": "111122223333", 
            "type": "AWS::KMS::Key" 
        }
    ],
    "eventType": "AwsApiCall", 
    "recipientAccountId": "111122223333"
}
```

**CreateGrant**  
Wenn Sie einen [kundenverwalteten Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk) oder einen [Von AWS verwalteter Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) zum Schutz Ihrer DynamoDB-Tabelle verwenden, verwendet DynamoDB [Erteilungen](#dynamodb-grants), um dem Service die Ausführung von Aufgaben für kontinuierlichen Datenschutz, Wartung und Haltbarkeit zu erlauben. Diese Erteilungen sind für [AWS-eigener Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-owned-cmk) nicht erforderlich.  
Die von DynamoDB erstellten Erteilungen sind tabellenspezifisch. Der Principal in der [CreateGrant](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html)Anfrage ist der Benutzer, der die Tabelle erstellt hat.   
Das Ereignis, das die `CreateGrant`-Operation aufzeichnet, ähnelt dem folgenden Beispielereignis. Die Parameter enthalten den Amazon-Ressourcennamen (ARN) des KMS-Schlüssels für die Tabelle, den Empfänger-Prinzipal und den ausscheidenden Prinzipal (der DynamoDB-Service) sowie die Operationen, für die die Erteilung gilt. Enthalten ist auch eine Beschränkung, die für alle Verschlüsselungsoperationen den angegebenen [Verschlüsselungskontext](#dynamodb-encryption-context) voraussetzt.  

```
{ 
    "eventVersion": "1.05", 
    "userIdentity": 
    { 
        "type": "AssumedRole", 
        "principalId": "AROAIGDTESTANDEXAMPLE:user01", 
        "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", 
        "accountId": "111122223333", 
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE", 
        "sessionContext": { 
            "attributes": { 
                "mfaAuthenticated": "false", 
                "creationDate": "2018-02-14T00:12:02Z" 
            }, 
            "sessionIssuer": { 
                "type": "Role", 
                "principalId": "AROAIGDTESTANDEXAMPLE", 
                "arn": "arn:aws:iam::111122223333:role/Admin", 
                "accountId": "111122223333", 
                "userName": "Admin" 
            }
        }, 
        "invokedBy": "dynamodb.amazonaws.com" 
    }, 
    "eventTime": "2018-02-14T00:15:15Z", 
    "eventSource": "kms.amazonaws.com", 
    "eventName": "CreateGrant", 
    "awsRegion": "us-west-2", 
    "sourceIPAddress": "dynamodb.amazonaws.com", 
    "userAgent": "dynamodb.amazonaws.com", 
    "requestParameters": { 
        "keyId": "1234abcd-12ab-34cd-56ef-1234567890ab", 
        "retiringPrincipal": "dynamodb.us-west-2.amazonaws.com", 
        "constraints": { 
            "encryptionContextSubset": {
                "aws:dynamodb:tableName": "Books",
                "aws:dynamodb:subscriberId": "111122223333" 
            } 
        }, 
        "granteePrincipal": "dynamodb.us-west-2.amazonaws.com", 
        "operations": [ 
            "DescribeKey", 
            "GenerateDataKey", 
            "Decrypt", 
            "Encrypt", 
            "ReEncryptFrom", 
            "ReEncryptTo", 
            "RetireGrant" 
        ] 
    }, 
    "responseElements": { 
        "grantId": "5c5cd4a3d68e65e77795f5ccc2516dff057308172b0cd107c85b5215c6e48bde" 
    }, 
    "requestID": "2192b82a-111c-11e8-a528-f398979205d8", 
    "eventID": "a03d65c3-9fee-4111-9816-8bf96b73df01", 
    "readOnly": false, 
    "resources": [ 
        { 
            "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
            "accountId": "111122223333", 
            "type": "AWS::KMS::Key" 
        } 
    ], 
    "eventType": "AwsApiCall",
    "recipientAccountId": "111122223333"
}
```

# Verwalten von verschlüsselten Tabellen in DynamoDB
<a name="encryption.tutorial"></a>

Sie können das AWS-Managementkonsole oder das AWS Command Line Interface (AWS CLI) verwenden, um den Verschlüsselungsschlüssel für neue Tabellen anzugeben und die Verschlüsselungsschlüssel für bestehende Tabellen in Amazon DynamoDB zu aktualisieren.

**Topics**
+ [Angeben des Verschlüsselungsschlüssels für eine neue Tabelle](#encryption.tutorial-creating)
+ [Aktualisieren eines Verschlüsselungsschlüssels](#encryption.tutorial-update)

## Angeben des Verschlüsselungsschlüssels für eine neue Tabelle
<a name="encryption.tutorial-creating"></a>

Führen Sie die folgenden Schritte aus, um den Verschlüsselungsschlüssel für eine neue Tabelle mithilfe der Amazon-DynamoDB-Konsole oder AWS CLI.

### Erstellen einer verschlüsselten Tabelle (Konsole)
<a name="encryption.tutorial-console"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1.  Klicken Sie im Navigationsbereich auf der linken Seite der Konsole auf **Tabellen**.

1. Wählen Sie **Create Table** (Tabelle erstellen) aus. Geben Sie für **Table name (Tabellenname)** den Namen **Music** ein. Geben Sie als Primärschlüssel **Artist** und als Sortierschlüssel **SongTitle** ein, beide als Zeichenfolgen.

1. Stellen sie in **Einstellungen** sicher, dass **Einstellungen anpassen** ausgewählt ist.
**Anmerkung**  
Wenn **„Standardeinstellungen verwenden**“ ausgewählt ist, werden Tabellen im Ruhezustand ohne zusätzliche AWS-eigener Schlüssel Kosten verschlüsselt.

1. Wählen Sie **unter Verschlüsselung im Ruhezustand** einen Verschlüsselungstyp - AWS-eigener Schlüssel Von AWS verwalteter Schlüssel, oder einen vom Kunden verwalteten Schlüssel aus.
   +  **Gehört Amazon DynamoDB.** AWS eigener Schlüssel, der speziell DynamoDB gehört und von DynamoDB verwaltet wird. Für die Verwendung dieses Schlüssels wird Ihnen keine zusätzliche Gebühr berechnet.
   + **AWS verwalteter Schlüssel**. Schlüssel-Alias: `aws/dynamodb` Der Schlüssel ist in Ihrem Konto gespeichert und wird von AWS Key Management Service (AWS KMS) verwaltet. AWS KMS Es fallen Gebühren an.
   +  **In Ihrem Konto gespeichert, in Ihrem Besitz und von Ihnen verwaltet.** Vom Kunden verwalteter Schlüssel. Der Schlüssel ist in Ihrem Konto gespeichert und wird von AWS Key Management Service (AWS KMS) verwaltet. AWS KMS Es fallen Gebühren an.
**Anmerkung**  
Wenn Sie Ihren eigenen Schlüssel besitzen und verwalten möchten, stellen Sie sicher, dass die KMS-Schlüsselrichtlinie ordnungsgemäß festgelegt ist. Weitere Informationen sowie Beispiele finden Sie unter [Schlüsselrichtlinie für einen kundenverwalteten Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

1. Wählen Sie **Create table** (Tabelle erstellen) , um die verschlüsselte Tabelle zu erstellen. Um den Verschlüsselungstyp zu bestimmen, wählen Sie die Tabellendetails auf der Registerkarte **Übersicht** und überprüfen Sie den Abschnitt **Weitere Details**.

### Erstellen einer verschlüsselten Tabelle (AWS CLI)
<a name="encryption.tutorial-cli"></a>

Verwenden Sie die AWS CLI , um eine Tabelle mit dem Standard- AWS-eigener Schlüssel Von AWS verwalteter Schlüssel, dem oder einem vom Kunden verwalteten Schlüssel für Amazon DynamoDB zu erstellen.

**Um eine verschlüsselte Tabelle mit dem Standard zu erstellen AWS-eigener Schlüssel**
+ Erstellen Sie die verschlüsselte `Music`-Tabelle folgendermaßen.

  ```
  aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5
  ```
**Anmerkung**  
Diese Tabelle ist jetzt mit dem Standard AWS-eigener Schlüssel im DynamoDB-Dienstkonto verschlüsselt.

**Um eine verschlüsselte Tabelle mit dem Von AWS verwalteter Schlüssel für DynamoDB zu erstellen**
+ Erstellen Sie die verschlüsselte `Music`-Tabelle folgendermaßen.

  ```
  aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --sse-specification Enabled=true,SSEType=KMS
  ```

   Der `SSEDescription`-Status der Tabellenbeschreibung ist auf `ENABLED` festgelegt und der `SSEType` ist `KMS`. 

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

**So erstellen Sie eine verschlüsselte Tabelle mit einem kundenverwalteten Schlüssel für DynamoDB**
+ Erstellen Sie die verschlüsselte `Music`-Tabelle folgendermaßen.

  ```
  aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --sse-specification Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
  ```
**Anmerkung**  
Für die `KMSMasterKeyId` können Sie eine Schlüssel-ID, einen Schlüssel-ARN oder einen Schlüsselalias verwenden. Wenn Sie einen Schlüsselalias verwenden (z. B.`alias/my-key`), löst DynamoDB den Alias auf und ordnet den zugrunde liegenden AWS KMS Schlüssel der Tabelle zu. In der Tabellenbeschreibung `KMSMasterKeyArn` wird immer der Schlüssel-ARN des aufgelösten Schlüssels angezeigt, nicht der Alias. Weitere Informationen zu Schlüsselkennungen finden Sie unter [Schlüsselkennungen (KeyId)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#key-id) im *AWS Key Management Service Entwicklerhandbuch*.

   Der `SSEDescription`-Status der Tabellenbeschreibung ist auf `ENABLED` festgelegt und der `SSEType` ist `KMS`.

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

## Aktualisieren eines Verschlüsselungsschlüssels
<a name="encryption.tutorial-update"></a>

Sie können auch die DynamoDB-Konsole oder die verwenden AWS CLI , um die Verschlüsselungsschlüssel einer vorhandenen Tabelle zwischen einem AWS-eigener Schlüssel Von AWS verwalteter Schlüssel, und einem vom Kunden verwalteten Schlüssel jederzeit zu aktualisieren.

### Aktualisieren eines Verschlüsselungsschlüssels (Konsole)
<a name="encryption.tutorial-update-console"></a>

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1.  Klicken Sie im Navigationsbereich auf der linken Seite der Konsole auf **Tabellen**.

1. Wählen Sie die Tabelle, die Sie aktualisieren möchten.

1. Wählen Sie **Aktionen** aus dem Dropdown-Menü und wählen Sie dann die Option **Aktualisieren von Einstellungen**.

1. Wechseln Sie zur Registerkarte **Zusätzliche Einstellungen**.

1. Wählen Sie unter **Verschlüsselung** **Verwalten der Verschlüsselung** aus.

1. Wählen Sie einen Verschlüsselungstyp aus:
   +  **Im Besitz von Amazon DynamoDB.** Der AWS KMS Schlüssel gehört DynamoDB und wird von DynamoDB verwaltet. Für die Verwendung dieses Schlüssels wird Ihnen keine zusätzliche Gebühr berechnet.
   + **AWS verwalteter Schlüssel Schlüsselalias**:. `aws/dynamodb` Der Schlüssel ist in Ihrem Konto gespeichert und wird von verwaltet AWS Key Management Service. (AWS KMS). AWS KMS Gebühren fallen an.
   +  **In Ihrem Konto gespeichert, in Ihrem Besitz und von Ihnen verwaltet.** Der Schlüssel ist in Ihrem Konto gespeichert und wird von verwaltet AWS Key Management Service. (AWS KMS). AWS KMS Gebühren fallen an.
**Anmerkung**  
Wenn Sie Ihren eigenen Schlüssel besitzen und verwalten möchten, stellen Sie sicher, dass die KMS-Schlüsselrichtlinie ordnungsgemäß festgelegt ist. Weitere Informationen finden Sie unter [Schlüsselrichtlinie für einen kundenverwalteten Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk).

   Wählen Sie dann **Save** (Speichern) um die verschlüsselte Tabelle zu aktualisieren. Um den Verschlüsselungstyp zu bestimmen, überprüfen Sie die Tabellendetails auf der Registerkarte **Overview (Übersicht)**.

### Aktualisieren eines Verschlüsselungsschlüssels (AWS CLI)
<a name="encryption.tutorial-update-cli"></a>

Das folgende Beispiel zeigt das Aktualisieren einer verschlüsselten Tabelle mit der AWS CLI.

**Um eine verschlüsselte Tabelle mit dem Standard zu aktualisieren AWS-eigener Schlüssel**
+ Aktualisieren Sie die verschlüsselte `Music`-Tabelle wie im folgenden Beispiel.

  ```
  aws dynamodb update-table \
    --table-name Music \
    --sse-specification Enabled=false
  ```
**Anmerkung**  
Diese Tabelle ist jetzt mit dem Standard AWS-eigener Schlüssel im DynamoDB-Dienstkonto verschlüsselt.

**Um eine verschlüsselte Tabelle mit dem Von AWS verwalteter Schlüssel für DynamoDB zu aktualisieren**
+ Aktualisieren Sie die verschlüsselte `Music`-Tabelle wie im folgenden Beispiel.

  ```
  aws dynamodb update-table \
    --table-name Music \
    --sse-specification Enabled=true
  ```

   Der `SSEDescription`-Status der Tabellenbeschreibung ist auf `ENABLED` festgelegt und der `SSEType` ist `KMS`.

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

**Um eine verschlüsselte Tabelle mit einem kundenverwalteten Schlüssel für DynamoDB zu aktualisieren**
+ Aktualisieren Sie die verschlüsselte `Music`-Tabelle wie im folgenden Beispiel.

  ```
  aws dynamodb update-table \
    --table-name Music \
    --sse-specification Enabled=true,SSEType=KMS,KMSMasterKeyId=abcd1234-abcd-1234-a123-ab1234a1b234
  ```
**Anmerkung**  
Für die `KMSMasterKeyId` können Sie eine Schlüssel-ID, einen Schlüssel-ARN oder einen Schlüsselalias verwenden. Wenn Sie einen Schlüsselalias verwenden (z. B.`alias/my-key`), löst DynamoDB den Alias auf und ordnet den zugrunde liegenden AWS KMS Schlüssel der Tabelle zu. In der Tabellenbeschreibung `KMSMasterKeyArn` wird immer der Schlüssel-ARN des aufgelösten Schlüssels angezeigt, nicht der Alias.

   Der `SSEDescription`-Status der Tabellenbeschreibung ist auf `ENABLED` festgelegt und der `SSEType` ist `KMS`. 

  ```
  "SSEDescription": {
    "SSEType": "KMS",
    "Status": "ENABLED",
    "KMSMasterKeyArn": "arn:aws:kms:us-east-1:123456789012:key/abcd1234-abcd-1234-a123-ab1234a1b234",
  }
  ```

# Sichern von DynamoDB-Verbindungen mithilfe von VPC-Endpunkten und IAM-Richtlinien
<a name="inter-network-traffic-privacy"></a>

Verbindungen sind sowohl zwischen Amazon DynamoDB und lokalen Anwendungen als auch zwischen DynamoDB und anderen AWS Ressourcen innerhalb derselben Region geschützt. AWS 

## Erforderliche Richtlinie für Endpunkte
<a name="inter-network-traffic-DescribeEndpoints"></a>

Amazon DynamoDB bietet eine [DescribeEndpoints](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeEndpoints.html)-API, mit der Sie regionale Endpunktinformationen auflisten können. Bei Anforderungen an die öffentlichen DynamoDB-Endpunkte reagiert die API unabhängig von der konfigurierten DynamoDB-IAM-Richtlinie, auch wenn es in der IAM- oder VPC-Endpunktrichtlinie ein explizites oder implizites Verweigern gibt. Dies liegt daran, dass DynamoDB die Autorisierung für die `DescribeEndpoints`-API absichtlich überspringt.

Bei Anfragen von einem VPC-Endpunkt müssen sowohl die IAM- als auch die Endpunktrichtlinien der Virtual Private Cloud (VPC) den `DescribeEndpoints`-API-Aufruf für die anfordernden Prinzipale vom Identity and Access Management (IAM) mithilfe der IAM-`dynamodb:DescribeEndpoints`-Aktion autorisieren. Andernfalls wird der Zugriff auf die `DescribeEndpoints`-API verweigert.

Im Folgenden finden Sie ein Beispiel für eine Endpunktrichtlinie.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111122223333:root"
            },
            "Action": "dynamodb:DescribeEndpoints",
            "Resource": "*"
        }
    ]
}
```

------

## Datenverkehr zwischen Service und On-Premises-Clients und -Anwendungen
<a name="inter-network-traffic-privacy-on-prem"></a>

Sie haben zwei Verbindungsoptionen zwischen Ihrem privaten Netzwerk und: AWS
+ Eine AWS Site-to-Site VPN Verbindung. Weitere Informationen finden Sie unter [Was ist AWS Site-to-Site VPN?](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) im *AWS Site-to-Site VPN -Benutzerhandbuch*.
+ Eine Direct Connect Verbindung. Weitere Informationen finden Sie unter [Was ist Direct Connect?](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) im *Direct Connect -Benutzerhandbuch*.

Der Zugriff auf DynamoDB über das Netzwerk erfolgt über AWS Published. APIs Clients müssen Transport Layer Security (TLS) 1.2 unterstützen. Wir empfehlen TLS 1.3. Clients müssen außerdem Cipher Suites mit PFS (Perfect Forward Secrecy) wie DHE (Ephemeral Diffie-Hellman) oder ECDHE (Elliptic Curve Ephemeral Diffie-Hellman) unterstützen. Die meisten modernen Systemen wie Java 7 und höher unterstützen diese Modi. Außerdem müssen Sie die Anfragen mit einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel signieren, die einem IAM-Prinzipal zugeordnet sind. Sie können auch [AWS -Security-Token-Service (STS)](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) verwenden um temporäre Sicherheitsanmeldeinformationen zu generieren.

## Verkehr zwischen AWS Ressourcen in derselben Region
<a name="inter-network-traffic-privacy-within-region"></a>

Ein Amazon-Virtual-Private-Cloud-Endpunkt (Amazon VPC) für DynamoDB ist eine logische Entität innerhalb einer VPC, die nur Die Verbindung zu DynamoDB zulässt. Die Amazon VPC leitet Anforderungen an DynamoDB weiter und leitet Antworten an die VPC zurück. Weitere Informationen finden Sie unter [VPC-Endpunkte](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html) im *Amazon-VPC-Benutzerhandbuch*. Dieser Abschnitt enthält Beispiele für Richtlinien, die für die Steuerung des Zugriffs auf VPC-Endpunkte verwendet werden können. Sehen Sie [Verwenden von IAM-Richtlinien zum Steuern des Zugriffs auf DynamoDB](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-ddb.html). 

**Anmerkung**  
Amazon VPC-Endpunkte sind nicht über AWS Site-to-Site VPN oder zugänglich. Direct Connect

# AWS Identity and Access Management (IAM) und DynamoDB
<a name="identity-and-access-mgmt"></a>

 AWS Identity and Access Management ist ein AWS Dienst, der einem Administrator hilft, den Zugriff auf Ressourcen sicher zu kontrollieren. AWS Administratoren steuern, wer authentifiziert (angemeldet) und autorisiert (im Besitz von Berechtigungen) ist, Amazon-DynamoDB- und DynamoDB-Accelerator-Ressourcen zu nutzen. Sie können IAM zum Verwalten von Zugriffsberechtigungen und Implementieren von Sicherheitsrichtlinien für Amazon DynamoDB und DynamoDB Accelerator verwenden. IAM ist ein AWS Dienst, den Sie ohne zusätzliche Kosten nutzen können. 

 

**Topics**
+ [Identity and Access Management für Amazon DynamoDB](security-iam.md)
+ [Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle](specifying-conditions.md)

# Identity and Access Management für Amazon DynamoDB
<a name="security-iam"></a>





AWS Identity and Access Management (IAM) hilft einem Administrator AWS-Service , den Zugriff auf Ressourcen sicher zu AWS kontrollieren. IAM-Administratoren steuern, wer für die Nutzung von DynamoDB-Ressourcen *authentifiziert* (angemeldet) und *autorisiert* (mit Berechtigungen ausgestattet) werden kann. IAM ist ein Programm AWS-Service , das Sie ohne zusätzliche Kosten nutzen können.

**Topics**
+ [Zielgruppe](#security_iam_audience)
+ [Authentifizierung mit Identitäten](#security_iam_authentication)
+ [Verwalten des Zugriffs mit Richtlinien](#security_iam_access-manage)
+ [Funktionsweise von Amazon DynamoDB mit IAM](security_iam_service-with-iam.md)
+ [Beispiele für identitätsbasierte Richtlinien für Amazon DynamoDB](security_iam_id-based-policy-examples.md)
+ [Fehlerbehebung für Amazon-DynamoDB-Identität und -Zugriff](security_iam_troubleshoot.md)
+ [IAM-Richtlinie zum Verhindern des Erwerbs von reservierter DynamoDB-Kapazität](iam-policy-prevent-purchase-reserved-capacity.md)

## Zielgruppe
<a name="security_iam_audience"></a>

Wie Sie AWS Identity and Access Management (IAM) verwenden, hängt von Ihrer Rolle ab:
+ **Servicebenutzer** – Fordern Sie von Ihrem Administrator Berechtigungen an, wenn Sie nicht auf Features zugreifen können (siehe [Fehlerbehebung für Amazon-DynamoDB-Identität und -Zugriff](security_iam_troubleshoot.md)).
+ **Serviceadministrator** – Bestimmen Sie den Benutzerzugriff und stellen Sie Berechtigungsanfragen (siehe [Funktionsweise von Amazon DynamoDB mit IAM](security_iam_service-with-iam.md)).
+ **IAM-Administrator** – Schreiben Sie Richtlinien zur Zugriffsverwaltung (siehe [Beispiele für identitätsbasierte Richtlinien für Amazon DynamoDB](security_iam_id-based-policy-examples.md)).

## Authentifizierung mit Identitäten
<a name="security_iam_authentication"></a>

Authentifizierung ist die Art und Weise, wie Sie sich AWS mit Ihren Identitätsdaten anmelden. Sie müssen sich als IAM-Benutzer authentifizieren oder eine IAM-Rolle annehmen. Root-Benutzer des AWS-Kontos

Sie können sich als föderierte Identität anmelden, indem Sie Anmeldeinformationen aus einer Identitätsquelle wie AWS IAM Identity Center (IAM Identity Center), Single Sign-On-Authentifizierung oder Anmeldeinformationen verwenden. Google/Facebook Weitere Informationen zum Anmelden finden Sie unter [So melden Sie sich bei Ihrem AWS-Konto an](https://docs.aws.amazon.com/signin/latest/userguide/how-to-sign-in.html) im *Benutzerhandbuch für AWS-Anmeldung *.

 AWS Bietet für den programmatischen Zugriff ein SDK und eine CLI zum kryptografischen Signieren von Anfragen. Weitere Informationen finden Sie unter [AWS Signature Version 4 for API requests](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_sigv.html) im *IAM-Benutzerhandbuch*.

### AWS-Konto Root-Benutzer
<a name="security_iam_authentication-rootuser"></a>

 Wenn Sie einen erstellen AWS-Konto, beginnen Sie mit einer Anmeldeidentität, dem sogenannten AWS-Konto *Root-Benutzer*, der vollständigen Zugriff auf alle AWS-Services Ressourcen hat. Wir raten ausdrücklich davon ab, den Root-Benutzer für Alltagsaufgaben zu verwenden. Eine Liste der Aufgaben, für die Sie sich als Root-Benutzer anmelden müssen, finden Sie unter [Tasks that require root user credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks) im *IAM-Benutzerhandbuch*. 

### Verbundidentität
<a name="security_iam_authentication-federated"></a>

Es hat sich bewährt, dass menschliche Benutzer für den Zugriff AWS-Services mithilfe temporärer Anmeldeinformationen einen Verbund mit einem Identitätsanbieter verwenden müssen.

Eine *föderierte Identität* ist ein Benutzer aus Ihrem Unternehmensverzeichnis, Ihrem Directory Service Web-Identitätsanbieter oder der AWS-Services mithilfe von Anmeldeinformationen aus einer Identitätsquelle zugreift. Verbundene Identitäten übernehmen Rollen, die temporäre Anmeldeinformationen bereitstellen.

Für die zentrale Zugriffsverwaltung empfehlen wir AWS IAM Identity Center. Weitere Informationen finden Sie unter [Was ist IAM Identity Center?](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html) im *AWS IAM Identity Center -Benutzerhandbuch*.

### IAM-Benutzer und -Gruppen
<a name="security_iam_authentication-iamuser"></a>

Ein *[IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html)* ist eine Identität mit bestimmten Berechtigungen für eine einzelne Person oder Anwendung. Wir empfehlen die Verwendung temporärer Anmeldeinformationen anstelle von IAM-Benutzern mit langfristigen Anmeldeinformationen. Weitere Informationen finden Sie im *IAM-Benutzerhandbuch* unter [Erfordern, dass menschliche Benutzer den Verbund mit einem Identitätsanbieter verwenden müssen, um AWS mithilfe temporärer Anmeldeinformationen darauf zugreifen zu](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#bp-users-federation-idp) können.

Eine [https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html) spezifiziert eine Sammlung von IAM-Benutzern und erleichtert die Verwaltung von Berechtigungen für große Gruppen von Benutzern. Weitere Informationen finden Sie unter [Anwendungsfälle für IAM-Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/gs-identities-iam-users.html) im *IAM-Benutzerhandbuch*.

### IAM-Rollen
<a name="security_iam_authentication-iamrole"></a>

Eine *[IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)* ist eine Identität mit spezifischen Berechtigungen, die temporäre Anmeldeinformationen bereitstellt. Sie können eine Rolle übernehmen, indem Sie [von einer Benutzer- zu einer IAM-Rolle (Konsole) wechseln](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-console.html) AWS CLI oder einen AWS API-Vorgang aufrufen. Weitere Informationen finden Sie unter [Methoden, um eine Rolle zu übernehmen](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage-assume.html) im *IAM-Benutzerhandbuch*.

IAM-Rollen sind nützlich für den Verbundbenutzer-Zugriff, temporäre IAM-Benutzerberechtigungen, kontoübergreifenden Zugriff, serviceübergreifenden Zugriff und Anwendungen, die auf Amazon EC2 laufen. Weitere Informationen finden Sie unter [Kontoübergreifender Ressourcenzugriff in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) im *IAM-Benutzerhandbuch*.

## Verwalten des Zugriffs mit Richtlinien
<a name="security_iam_access-manage"></a>

Sie kontrollieren den Zugriff, AWS indem Sie Richtlinien erstellen und diese an AWS Identitäten oder Ressourcen anhängen. Eine Richtlinie definiert Berechtigungen, wenn sie mit einer Identität oder Ressource verknüpft sind. AWS bewertet diese Richtlinien, wenn ein Principal eine Anfrage stellt. Die meisten Richtlinien werden AWS als JSON-Dokumente gespeichert. Weitere Informationen zu JSON-Richtliniendokumenten finden Sie unter [Übersicht über JSON-Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#access_policies-json) im *IAM-Benutzerhandbuch*.

Mit Hilfe von Richtlinien legen Administratoren fest, wer Zugriff auf was hat, indem sie definieren, welches **Prinzipal** welche **Aktionen** auf welchen **Ressourcen**und unter welchen **Bedingungen**durchführen darf.

Standardmäßig haben Benutzer, Gruppen und Rollen keine Berechtigungen. Ein IAM-Administrator erstellt IAM-Richtlinien und fügt sie zu Rollen hinzu, die die Benutzer dann übernehmen können. IAM-Richtlinien definieren Berechtigungen unabhängig von der Methode, die zur Ausführung der Operation verwendet wird.

### Identitätsbasierte Richtlinien
<a name="security_iam_access-manage-id-based-policies"></a>

Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität (Benutzer, Gruppe oder Rolle) anfügen können. Diese Richtlinien steuern, welche Aktionen Identitäten für welche Ressourcen und unter welchen Bedingungen ausführen können. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter [Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) im *IAM-Benutzerhandbuch*.

Identitätsbasierte Richtlinien können *Inline-Richtlinien* (direkt in eine einzelne Identität eingebettet) oder *verwaltete Richtlinien* (eigenständige Richtlinien, die mit mehreren Identitäten verbunden sind) sein. Informationen dazu, wie Sie zwischen verwalteten und Inline-Richtlinien wählen, finden Sie unter [Choose between managed policies and inline policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-choosing-managed-or-inline.html) im *IAM-Benutzerhandbuch*.

### Ressourcenbasierte Richtlinien
<a name="security_iam_access-manage-resource-based-policies"></a>

Ressourcenbasierte Richtlinien sind JSON-Richtliniendokumente, die Sie an eine Ressource anfügen. Beispiele hierfür sind *Vertrauensrichtlinien für IAM-Rollen* und Amazon S3*-Bucket-Richtlinien*. In Services, die ressourcenbasierte Richtlinien unterstützen, können Service-Administratoren sie verwenden, um den Zugriff auf eine bestimmte Ressource zu steuern. Sie müssen in einer ressourcenbasierten Richtlinie [einen Prinzipal angeben](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html).

Ressourcenbasierte Richtlinien sind Richtlinien innerhalb dieses Diensts. Sie können AWS verwaltete Richtlinien von IAM nicht in einer ressourcenbasierten Richtlinie verwenden.

### Weitere Richtlinientypen
<a name="security_iam_access-manage-other-policies"></a>

AWS unterstützt zusätzliche Richtlinientypen, mit denen die maximalen Berechtigungen festgelegt werden können, die durch gängigere Richtlinientypen gewährt werden:
+ **Berechtigungsgrenzen** – Eine Berechtigungsgrenze legt die maximalen Berechtigungen fest, die eine identitätsbasierte Richtlinie einer IAM-Entität erteilen kann. Weitere Informationen finden Sie unter [Berechtigungsgrenzen für IAM-Entitäten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html) im *-IAM-Benutzerhandbuch*.
+ **Richtlinien zur Dienstkontrolle (SCPs)** — Geben Sie die maximalen Berechtigungen für eine Organisation oder Organisationseinheit in an AWS Organizations. Weitere Informationen finden Sie unter [Service-Kontrollrichtlinien](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html) im *AWS Organizations -Benutzerhandbuch*.
+ **Richtlinien zur Ressourcenkontrolle (RCPs)** — Legen Sie die maximal verfügbaren Berechtigungen für Ressourcen in Ihren Konten fest. Weitere Informationen finden Sie im *AWS Organizations Benutzerhandbuch* unter [Richtlinien zur Ressourcenkontrolle (RCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_rcps.html).
+ **Sitzungsrichtlinien** – Sitzungsrichtlinien sind erweiterte Richtlinien, die als Parameter übergeben werden, wenn Sie eine temporäre Sitzung für eine Rolle oder einen Verbundbenutzer erstellen. Weitere Informationen finden Sie unter [Sitzungsrichtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#policies_session) im *IAM-Benutzerhandbuch*.

### Mehrere Richtlinientypen
<a name="security_iam_access-manage-multiple-policies"></a>

Wenn für eine Anfrage mehrere Arten von Richtlinien gelten, sind die sich daraus ergebenden Berechtigungen schwieriger zu verstehen. Informationen darüber, wie AWS bestimmt wird, ob eine Anfrage zulässig ist, wenn mehrere Richtlinientypen betroffen sind, finden Sie unter [Bewertungslogik für Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html) im *IAM-Benutzerhandbuch*.

# Funktionsweise von Amazon DynamoDB mit IAM
<a name="security_iam_service-with-iam"></a>

Bevor Sie IAM zum Verwalten des Zugriffs auf DynamoDB verwenden, informieren Sie sich, welche IAM-Funktionen Sie mit DynamoDB verwenden können.






| IAM-Feature | DynamoDB-Unterstützung | 
| --- | --- | 
|  [Identitätsbasierte Richtlinien](#security_iam_service-with-iam-id-based-policies)  |   Ja  | 
|  [Ressourcenbasierte Richtlinien](#security_iam_service-with-iam-resource-based-policies)  |   Ja  | 
|  [Richtlinienaktionen](#security_iam_service-with-iam-id-based-policies-actions)  |   Ja  | 
|  [Richtlinienressourcen](#security_iam_service-with-iam-id-based-policies-resources)  |   Ja  | 
|  [Bedingungsschlüssel für die Richtlinie](#security_iam_service-with-iam-id-based-policies-conditionkeys)  |   Ja  | 
|  [ACLs](#security_iam_service-with-iam-acls)  |   Nein   | 
|  [ABAC (Tags in Richtlinien)](#security_iam_service-with-iam-tags)  |   Ja  | 
|  [Temporäre Anmeldeinformationen](#security_iam_service-with-iam-roles-tempcreds)  |   Ja  | 
|  [Prinzipalberechtigungen](#security_iam_service-with-iam-principal-permissions)  |   Ja  | 
|  [Servicerollen](#security_iam_service-with-iam-roles-service)  |   Ja  | 
|  [Service-verknüpfte Rollen](#security_iam_service-with-iam-roles-service-linked)  |   Ja  | 

*Einen allgemeinen Überblick darüber, wie DynamoDB und andere AWS Dienste mit den meisten IAM-Funktionen funktionieren, finden Sie im [AWS IAM-Benutzerhandbuch unter Dienste, die mit IAM funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html).*

## Identitätsbasierte Richtlinien für DynamoDB
<a name="security_iam_service-with-iam-id-based-policies"></a>

**Unterstützt Richtlinien auf Identitätsbasis:** Ja

Identitätsbasierte Richtlinien sind JSON-Berechtigungsrichtliniendokumente, die Sie einer Identität anfügen können, wie z. B. IAM-Benutzern, -Benutzergruppen oder -Rollen. Diese Richtlinien steuern, welche Aktionen die Benutzer und Rollen für welche Ressourcen und unter welchen Bedingungen ausführen können. Informationen zum Erstellen identitätsbasierter Richtlinien finden Sie unter [Definieren benutzerdefinierter IAM-Berechtigungen mit vom Kunden verwalteten Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) im *IAM-Benutzerhandbuch*.

Mit identitätsbasierten IAM-Richtlinien können Sie angeben, welche Aktionen und Ressourcen zugelassen oder abgelehnt werden. Darüber hinaus können Sie die Bedingungen festlegen, unter denen Aktionen zugelassen oder abgelehnt werden. Informationen zu sämtlichen Elementen, die Sie in einer JSON-Richtlinie verwenden, finden Sie in der [IAM-Referenz für JSON-Richtlinienelemente](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) im *IAM-Benutzerhandbuch*.

### Beispiele für identitätsbasierte Richtlinien für DynamoDB
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



Beispiele für identitätsbasierte DynamoDB-Richtlinien finden Sie unter [Beispiele für identitätsbasierte Richtlinien für Amazon DynamoDB](security_iam_id-based-policy-examples.md).

## Ressourcenbasierte Richtlinien in DynamoDB
<a name="security_iam_service-with-iam-resource-based-policies"></a>

**Unterstützt ressourcenbasierte Richtlinien:** Ja

Ressourcenbasierte Richtlinien sind JSON-Richtliniendokumente, die Sie an eine Ressource anfügen. Beispiele für ressourcenbasierte Richtlinien sind IAM-*Rollen-Vertrauensrichtlinien* und Amazon-S3-*Bucket-Richtlinien*. In Services, die ressourcenbasierte Richtlinien unterstützen, können Service-Administratoren sie verwenden, um den Zugriff auf eine bestimmte Ressource zu steuern. Für die Ressource, an welche die Richtlinie angehängt ist, legt die Richtlinie fest, welche Aktionen ein bestimmter Prinzipal unter welchen Bedingungen für diese Ressource ausführen kann. Sie müssen in einer ressourcenbasierten Richtlinie [einen Prinzipal angeben](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html). Zu den Prinzipalen können Konten, Benutzer, Rollen, Verbundbenutzer oder gehören. AWS-Services

Um kontoübergreifenden Zugriff zu ermöglichen, können Sie ein gesamtes Konto oder IAM-Entitäten in einem anderen Konto als Prinzipal in einer ressourcenbasierten Richtlinie angeben. Weitere Informationen finden Sie unter [Kontoübergreifender Ressourcenzugriff in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) im *IAM-Benutzerhandbuch*.

## Richtlinienaktionen für DynamoDB
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

**Unterstützt Richtlinienaktionen:** Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das Element `Action` einer JSON-Richtlinie beschreibt die Aktionen, mit denen Sie den Zugriff in einer Richtlinie zulassen oder verweigern können. Nehmen Sie Aktionen in eine Richtlinie auf, um Berechtigungen zur Ausführung des zugehörigen Vorgangs zu erteilen.



Eine Liste der DynamoDB-Aktionen finden Sie unter [Von Amazon DynamoDB definierte Aktionen](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html#amazondynamodb-actions-as-permissions) in der *Service-Autorisierungs-Referenz*.

Richtlinienaktionen in DynamoDB verwenden das folgende Präfix vor der Aktion:

```
aws
```

Um mehrere Aktionen in einer einzigen Anweisung anzugeben, trennen Sie sie mit Kommata:

```
"Action": [
      "aws:action1",
      "aws:action2"
         ]
```





Beispiele für identitätsbasierte DynamoDB-Richtlinien finden Sie unter [Beispiele für identitätsbasierte Richtlinien für Amazon DynamoDB](security_iam_id-based-policy-examples.md).

## Richtlinienressourcen für DynamoDB
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

**Unterstützt Richtlinienressourcen:** Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das JSON-Richtlinienelement `Resource` gibt die Objekte an, auf welche die Aktion angewendet wird. Als Best Practice geben Sie eine Ressource mit dem zugehörigen [Amazon-Ressourcennamen (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) an. Verwenden Sie für Aktionen, die keine Berechtigungen auf Ressourcenebene unterstützen, einen Platzhalter (\$1), um anzugeben, dass die Anweisung für alle Ressourcen gilt.

```
"Resource": "*"
```

*Eine Liste der DynamoDB-Ressourcentypen und ihrer ARNs Eigenschaften finden Sie unter [Von Amazon DynamoDB definierte Ressourcen in der Service Authorization](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html#amazondynamodb-resources-for-iam-policies) Reference.* Informationen zu den Aktionen, mit denen Sie den ARN einzelner Ressourcen angeben können, finden Sie unter [Von Amazon DynamoDB definierte Aktionen](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html#amazondynamodb-actions-as-permissions).





Beispiele für identitätsbasierte DynamoDB-Richtlinien finden Sie unter [Beispiele für identitätsbasierte Richtlinien für Amazon DynamoDB](security_iam_id-based-policy-examples.md).

## Richtlinien-Bedingungsschlüssel für DynamoDB
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

**Unterstützt servicespezifische Richtlinienbedingungsschlüssel:** Ja

Administratoren können mithilfe von AWS JSON-Richtlinien angeben, wer Zugriff auf was hat. Das heißt, welcher **Prinzipal** **Aktionen** für welche **Ressourcen** und unter welchen **Bedingungen** ausführen kann.

Das Element `Condition` gibt an, wann Anweisungen auf der Grundlage definierter Kriterien ausgeführt werden. Sie können bedingte Ausdrücke erstellen, die [Bedingungsoperatoren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html) verwenden, z. B. ist gleich oder kleiner als, damit die Bedingung in der Richtlinie mit Werten in der Anforderung übereinstimmt. Eine Übersicht aller AWS globalen Bedingungsschlüssel finden Sie unter [Kontextschlüssel für AWS globale Bedingungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) im *IAM-Benutzerhandbuch*.

Eine Liste von DynamoDB-Bedingungsschlüsseln finden Sie unter [Bedingungsschlüssel für Amazon DynamoDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html#amazondynamodb-policy-keys) in der *Service-Autorisierungs-Referenz*. Informationen dazu, mit welchen Aktionen und Ressourcen Sie einen Bedingungsschlüssel verwenden können, finden Sie unter [Von Amazon DynamoDB definierte Aktionen](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html#amazondynamodb-actions-as-permissions).

Beispiele für identitätsbasierte DynamoDB-Richtlinien finden Sie unter [Beispiele für identitätsbasierte Richtlinien für Amazon DynamoDB](security_iam_id-based-policy-examples.md).

## Zugriffskontrolllisten (ACLs) in DynamoDB
<a name="security_iam_service-with-iam-acls"></a>

**Unterstützt ACLs**: Nein 

Zugriffskontrolllisten (ACLs) steuern, welche Principals (Kontomitglieder, Benutzer oder Rollen) über Zugriffsberechtigungen für eine Ressource verfügen. ACLs ähneln ressourcenbasierten Richtlinien, verwenden jedoch nicht das JSON-Richtliniendokumentformat.

## Attributbasierte Zugriffskontrolle (Attribute-Based Access Control, ABAC) mit DynamoDB
<a name="security_iam_service-with-iam-tags"></a>

**Unterstützt ABAC (Tags in Richtlinien):** Ja

Die attributbasierte Zugriffskontrolle (ABAC) ist eine Autorisierungsstrategie, bei der Berechtigungen basierend auf Attributen, auch als Tags bezeichnet, definiert werden. Sie können Tags an IAM-Entitäten und AWS Ressourcen anhängen und dann ABAC-Richtlinien so entwerfen, dass Operationen möglich sind, wenn das Tag des Prinzipals mit dem Tag auf der Ressource übereinstimmt.

Um den Zugriff auf der Grundlage von Tags zu steuern, geben Sie im Bedingungselement einer[ Richtlinie Tag-Informationen ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html)an, indem Sie die Schlüssel `aws:ResourceTag/key-name`, `aws:RequestTag/key-name`, oder Bedingung `aws:TagKeys` verwenden.

Wenn ein Service alle drei Bedingungsschlüssel für jeden Ressourcentyp unterstützt, lautet der Wert für den Service **Ja**. Wenn ein Service alle drei Bedingungsschlüssel für nur einige Ressourcentypen unterstützt, lautet der Wert **Teilweise**.

*Weitere Informationen zu ABAC finden Sie unter [Definieren von Berechtigungen mit ABAC-Autorisierung](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html) im IAM-Benutzerhandbuch*. Um ein Tutorial mit Schritten zur Einstellung von ABAC anzuzeigen, siehe [Attributbasierte Zugriffskontrolle (ABAC)](https://docs.aws.amazon.com/IAM/latest/UserGuide/tutorial_attribute-based-access-control.html) verwenden im *IAM-Benutzerhandbuch*.

## Verwenden temporärer Anmeldeinformationen mit DynamoDB
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

**Unterstützt temporäre Anmeldeinformationen:** Ja

Temporäre Anmeldeinformationen ermöglichen den kurzfristigen Zugriff auf AWS Ressourcen und werden automatisch erstellt, wenn Sie einen Verbund verwenden oder die Rollen wechseln. AWS empfiehlt, temporäre Anmeldeinformationen dynamisch zu generieren, anstatt langfristige Zugriffsschlüssel zu verwenden. Weitere Informationen finden Sie unter [Temporäre Anmeldeinformationen in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) und [AWS-Services , die mit IAM funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html) im *IAM-Benutzerhandbuch*.

## Serviceübergreifende Prinzipal-Berechtigungen für DynamoDB
<a name="security_iam_service-with-iam-principal-permissions"></a>

**Unterstützt Forward Access Sessions (FAS):** Ja

 Forward Access Sessions (FAS) verwenden die Berechtigungen des Prinzipals, der einen aufruft AWS-Service, kombiniert mit der Anforderung, Anfragen AWS-Service an nachgeschaltete Dienste zu stellen. Einzelheiten zu den Richtlinien für FAS-Anforderungen finden Sie unter [Zugriffssitzungen weiterleiten](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_forward_access_sessions.html). 

## Servicerollen für DynamoDB
<a name="security_iam_service-with-iam-roles-service"></a>

**Unterstützt Servicerollen:** Ja

 Eine Servicerolle ist eine [IAM-Rolle](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html), die ein Service annimmt, um Aktionen in Ihrem Namen auszuführen. Ein IAM-Administrator kann eine Servicerolle innerhalb von IAM erstellen, ändern und löschen. Weitere Informationen finden Sie unter [Erstellen einer Rolle zum Delegieren von Berechtigungen an einen AWS-Service](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html) im *IAM-Benutzerhandbuch*. 

**Warnung**  
Das Ändern der Berechtigungen für eine Servicerolle könnte die Funktionalität von DynamoDB beeinträchtigen. Bearbeiten Sie Servicerollen nur, wenn DynamoDB dazu Anleitungen gibt.

## Serviceverknüpfte Rollen für DynamoDB
<a name="security_iam_service-with-iam-roles-service-linked"></a>

**Unterstützt serviceverknüpfte Rollen:** Ja

 Eine serviceverknüpfte Rolle ist eine Art von Servicerolle, die mit einer verknüpft ist. AWS-Service Der Service kann die Rolle übernehmen, um eine Aktion in Ihrem Namen auszuführen. Dienstbezogene Rollen werden in Ihrem Dienst angezeigt AWS-Konto und gehören dem Dienst. Ein IAM-Administrator kann die Berechtigungen für Service-verknüpfte Rollen anzeigen, aber nicht bearbeiten. 

Details zum Erstellen oder Verwalten von serviceverknüpften Rollen finden Sie unter [AWS -Services, die mit IAM funktionieren](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html). Suchen Sie in der Tabelle nach einem Service mit einem `Yes` in der Spalte **Service-linked role** (Serviceverknüpfte Rolle). Wählen Sie den Link **Yes** (Ja) aus, um die Dokumentation für die serviceverknüpfte Rolle für diesen Service anzuzeigen.

### Unterstützte serviceverknüpfte Rollen in DynamoDB
<a name="security_iam_service-with-iam-roles-service-linked-supported-by-dynamodb"></a>

Die folgenden serviceverknüpften Rollen werden in DynamoDB unterstützt.
+ DynamoDB verwendet die serviceverknüpfte Rolle **AWSServiceRoleForDynamoDBReplication**für die globale Tabellenreplikation zwischen. AWS-Regionen Weitere Informationen [Sicherheit von globalen DynamoDB-Tabellen](globaltables-security.md) zur serviceverknüpften Rolle finden Sie unter **AWSServiceRoleForDynamoDBReplication**.
+ DynamoDB Accelerator (DAX) verwendet die dienstverknüpfte Rolle ** AWSServiceRoleForDAX für die Konfiguration und Wartung eines DAX-Clusters**. Weitere Informationen [Verwendung von serviceverknüpften IAM-Rollen für DAX](using-service-linked-roles.md) zur dienstverknüpften **AWSServiceRoleForDAX-Rolle** finden Sie unter.

Zusätzlich zu diesen serviceverknüpften DynamoDB-Rollen verwendet DynamoDB Application Auto Scaling Service für die automatische Verwaltung der Durchsatzeinstellungen für Tabellen mit dem Modus bereitgestellter Kapazität. Der Application Auto Scaling Scaling-Dienst verwendet die dienstverknüpfte Rolle ** AWSServiceRoleForApplicationAutoScaling\$1DynamoDBTable**, um die Durchsatzeinstellungen in DynamoDB-Tabellen zu verwalten, für die Auto Scaling aktiviert ist. Weitere Informationen finden Sie unter [Serviceverknüpfte Rollen für Application Auto Scaling](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-service-linked-roles.html).

# Beispiele für identitätsbasierte Richtlinien für Amazon DynamoDB
<a name="security_iam_id-based-policy-examples"></a>

Benutzer und Rollen haben standardmäßig nicht die Berechtigung, DynamoDB-Ressourcen zu erstellen oder zu ändern. Ein IAM-Administrator muss IAM-Richtlinien erstellen, die Benutzern die Berechtigung erteilen, Aktionen für die Ressourcen auszuführen, die sie benötigen.

Informationen dazu, wie Sie unter Verwendung dieser beispielhaften JSON-Richtliniendokumente eine identitätsbasierte IAM-Richtlinie erstellen, finden Sie unter [Erstellen von IAM-Richtlinien (Konsole)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html) im *IAM-Benutzerhandbuch*.

*Einzelheiten zu den von DynamoDB definierten Aktionen und Ressourcentypen, einschließlich des Formats ARNs für die einzelnen Ressourcentypen, finden Sie unter [Aktionen, Ressourcen und Bedingungsschlüssel für Amazon DynamoDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html) in der Service Authorization Reference.*

**Topics**
+ [Best Practices für Richtlinien](#security_iam_service-with-iam-policy-best-practices)
+ [Verwenden der DynamoDB-Konsole](#security_iam_id-based-policy-examples-console)
+ [Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer](#security_iam_id-based-policy-examples-view-own-permissions)
+ [Verwenden von identitätsbasierten Richtlinien mit Amazon DynamoDB](using-identity-based-policies.md)

## Best Practices für Richtlinien
<a name="security_iam_service-with-iam-policy-best-practices"></a>

Identitätsbasierte Richtlinien legen fest, ob jemand DynamoDB-Ressourcen in Ihrem Konto erstellen, darauf zugreifen oder sie löschen kann. Dies kann zusätzliche Kosten für Ihr verursachen AWS-Konto. Beachten Sie beim Erstellen oder Bearbeiten identitätsbasierter Richtlinien die folgenden Richtlinien und Empfehlungen:
+ **Erste Schritte mit AWS verwalteten Richtlinien und Umstellung auf Berechtigungen mit den geringsten Rechten** — Verwenden Sie die *AWS verwalteten Richtlinien*, die Berechtigungen für viele gängige Anwendungsfälle gewähren, um damit zu beginnen, Ihren Benutzern und Workloads Berechtigungen zu gewähren. Sie sind in Ihrem verfügbar. AWS-Konto Wir empfehlen Ihnen, die Berechtigungen weiter zu reduzieren, indem Sie vom AWS Kunden verwaltete Richtlinien definieren, die speziell auf Ihre Anwendungsfälle zugeschnitten sind. Weitere Informationen finden Sie unter [Von AWS verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) oder [Von AWS verwaltete Richtlinien für Auftragsfunktionen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_job-functions.html) im *IAM-Benutzerhandbuch*.
+ **Anwendung von Berechtigungen mit den geringsten Rechten** – Wenn Sie mit IAM-Richtlinien Berechtigungen festlegen, gewähren Sie nur die Berechtigungen, die für die Durchführung einer Aufgabe erforderlich sind. Sie tun dies, indem Sie die Aktionen definieren, die für bestimmte Ressourcen unter bestimmten Bedingungen durchgeführt werden können, auch bekannt als *die geringsten Berechtigungen*. Weitere Informationen zur Verwendung von IAM zum Anwenden von Berechtigungen finden Sie unter [ Richtlinien und Berechtigungen in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html) im *IAM-Benutzerhandbuch*.
+ **Verwenden von Bedingungen in IAM-Richtlinien zur weiteren Einschränkung des Zugriffs** – Sie können Ihren Richtlinien eine Bedingung hinzufügen, um den Zugriff auf Aktionen und Ressourcen zu beschränken. Sie können beispielsweise eine Richtlinienbedingung schreiben, um festzulegen, dass alle Anforderungen mithilfe von SSL gesendet werden müssen. Sie können auch Bedingungen verwenden, um Zugriff auf Serviceaktionen zu gewähren, wenn diese für einen bestimmten Zweck verwendet werden AWS-Service, z. CloudFormation B. Weitere Informationen finden Sie unter [IAM-JSON-Richtlinienelemente: Bedingung](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) im *IAM-Benutzerhandbuch*.
+ **Verwenden von IAM Access Analyzer zur Validierung Ihrer IAM-Richtlinien, um sichere und funktionale Berechtigungen zu gewährleisten** – IAM Access Analyzer validiert neue und vorhandene Richtlinien, damit die Richtlinien der IAM-Richtliniensprache (JSON) und den bewährten IAM-Methoden entsprechen. IAM Access Analyzer stellt mehr als 100 Richtlinienprüfungen und umsetzbare Empfehlungen zur Verfügung, damit Sie sichere und funktionale Richtlinien erstellen können. Weitere Informationen finden Sie unter [Richtlinienvalidierung mit IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) im *IAM-Benutzerhandbuch*.
+ **Multi-Faktor-Authentifizierung (MFA) erforderlich** — Wenn Sie ein Szenario haben, das IAM-Benutzer oder einen Root-Benutzer in Ihrem System erfordert AWS-Konto, aktivieren Sie MFA für zusätzliche Sicherheit. Um MFA beim Aufrufen von API-Vorgängen anzufordern, fügen Sie Ihren Richtlinien MFA-Bedingungen hinzu. Weitere Informationen finden Sie unter [Sicherer API-Zugriff mit MFA](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa_configure-api-require.html) im *IAM-Benutzerhandbuch*.

Weitere Informationen zu bewährten Methoden in IAM finden Sie unter [Best Practices für die Sicherheit in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) im *IAM-Benutzerhandbuch*.

## Verwenden der DynamoDB-Konsole
<a name="security_iam_id-based-policy-examples-console"></a>

Für den Zugriff auf die Amazon-DynamoDB-Konsole müssen Sie über einen Mindestsatz von Berechtigungen verfügen. Diese Berechtigungen müssen es Ihnen ermöglichen, Details zu den DynamoDB-Ressourcen in Ihrem aufzulisten und anzuzeigen. AWS-Konto Wenn Sie eine identitätsbasierte Richtlinie erstellen, die strenger ist als die mindestens erforderlichen Berechtigungen, funktioniert die Konsole nicht wie vorgesehen für Entitäten (Benutzer oder Rollen) mit dieser Richtlinie.

Sie müssen Benutzern, die nur die API AWS CLI oder die API aufrufen, keine Mindestberechtigungen für die Konsole gewähren. AWS Stattdessen sollten Sie nur Zugriff auf die Aktionen zulassen, die der API-Operation entsprechen, die die Benutzer ausführen möchten.

Um sicherzustellen, dass Benutzer und Rollen die DynamoDB-Konsole weiterhin verwenden können, fügen Sie den Entitäten auch die DynamoDB `ConsoleAccess` - oder `ReadOnly` AWS verwaltete Richtlinie hinzu. Weitere Informationen finden Sie unter [Hinzufügen von Berechtigungen zu einem Benutzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console) im *IAM-Benutzerhandbuch*.

## Gewähren der Berechtigung zur Anzeige der eigenen Berechtigungen für Benutzer
<a name="security_iam_id-based-policy-examples-view-own-permissions"></a>

In diesem Beispiel wird gezeigt, wie Sie eine Richtlinie erstellen, die IAM-Benutzern die Berechtigung zum Anzeigen der eingebundenen Richtlinien und verwalteten Richtlinien gewährt, die ihrer Benutzeridentität angefügt sind. Diese Richtlinie umfasst Berechtigungen zum Ausführen dieser Aktion auf der Konsole oder programmgesteuert mithilfe der OR-API. AWS CLI AWS 

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ViewOwnUserInfo",
            "Effect": "Allow",
            "Action": [
                "iam:GetUserPolicy",
                "iam:ListGroupsForUser",
                "iam:ListAttachedUserPolicies",
                "iam:ListUserPolicies",
                "iam:GetUser"
            ],
            "Resource": ["arn:aws:iam::*:user/${aws:username}"]
        },
        {
            "Sid": "NavigateInConsole",
            "Effect": "Allow",
            "Action": [
                "iam:GetGroupPolicy",
                "iam:GetPolicyVersion",
                "iam:GetPolicy",
                "iam:ListAttachedGroupPolicies",
                "iam:ListGroupPolicies",
                "iam:ListPolicyVersions",
                "iam:ListPolicies",
                "iam:ListUsers"
            ],
            "Resource": "*"
        }
    ]
}
```

# Verwenden von identitätsbasierten Richtlinien mit Amazon DynamoDB
<a name="using-identity-based-policies"></a>

Dieses Thema behandelt die Verwendung identitätsbasierter AWS Identity and Access Management (IAM) -Richtlinien mit Amazon DynamoDB und bietet Beispiele. Die folgenden Beispiele zu identitätsbasierten Richtlinien verdeutlichen, wie ein Kontoadministrator IAM-Identitäten (d.h. Benutzern, Gruppen und Rollen) Berechtigungsrichtlinien zuweisen und somit Berechtigungen zum Durchführen von Operationen an Amazon-DynamoDB-Ressourcen erteilen kann.

Dieses Thema besteht aus folgenden Abschnitten:
+ [Erforderliche IAM-Berechtigungen für die Verwendung der Amazon-DynamoDB-Konsole](#console-permissions)
+ [AWS verwaltete (vordefinierte) IAM-Richtlinien für Amazon DynamoDB](#access-policy-examples-aws-managed)
+ [Beispiele für vom Kunden verwaltete Richtlinien](#access-policy-examples-for-sdk-cli)



Nachstehend finden Sie ein Beispiel für eine Berechtigungsrichtlinie.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DescribeQueryScanBooksTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeTable",
                "dynamodb:Query",
                "dynamodb:Scan"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:111122223333:table/Books"
        }
    ]
}
```

------

 Die obige Richtlinie enthält eine Anweisung, die Berechtigungen für drei DynamoDB-Aktionen (`dynamodb:DescribeTable``dynamodb:Query`, und`dynamodb:Scan`) für eine Tabelle in der `us-west-2` AWS Region gewährt, die dem von angegebenen AWS Konto gehört. `account-id` Der *Amazon-Ressourcenname (ARN)* in dem `Resource`-Wert gibt die Tabelle an, für die die Berechtigungen zutreffen.

## Erforderliche IAM-Berechtigungen für die Verwendung der Amazon-DynamoDB-Konsole
<a name="console-permissions"></a>

Um mit der DynamoDB-Konsole arbeiten zu können, muss ein Benutzer über Mindestberechtigungen verfügen, die es ihm ermöglichen, mit den DynamoDB-Ressourcen seines AWS Kontos zu arbeiten. Zusätzlich zu diesen DynamoDB-Berechtigungen erfordert die Konsole Berechtigungen von den folgenden Services:
+  CloudWatch Amazon-Berechtigungen zur Anzeige von Metriken und Grafiken.
+ AWS Data Pipeline Berechtigungen zum Exportieren und Importieren von DynamoDB-Daten. 
+  AWS Identity and Access Management Berechtigungen für den Zugriff auf Rollen, die für Exporte und Importe erforderlich sind.
+ Amazon Simple Notification Service berechtigt, Sie zu benachrichtigen, wenn ein CloudWatch Alarm ausgelöst wird.
+ AWS Lambda Berechtigungen zur Verarbeitung von DynamoDB Streams Streams-Datensätzen.

Wenn Sie eine IAM-Richtlinie erstellen, die strenger ist als die mindestens erforderlichen Berechtigungen, funktioniert die Konsole nicht wie vorgesehen für Benutzer mit dieser IAM-Richtlinie. Um sicherzustellen, dass diese Benutzer die DynamoDB-Konsole weiterhin verwenden können, fügen Sie dem Benutzer auch die `AmazonDynamoDBReadOnlyAccess` AWS verwaltete Richtlinie hinzu, wie unter beschrieben. [AWS verwaltete (vordefinierte) IAM-Richtlinien für Amazon DynamoDB](#access-policy-examples-aws-managed)

Sie müssen Benutzern, die nur die Amazon DynamoDB-API AWS CLI oder die Amazon DynamoDB DynamoDB-API aufrufen, keine Mindestberechtigungen für die Konsole gewähren.

**Anmerkung**  
 Wenn Sie auf einen VPC-Endpunkt verweisen, müssen Sie auch den DescribeEndpoints API-Aufruf für die anfordernden IAM-Prinzipale mit der IAM-Aktion (dynamodb:) autorisieren. DescribeEndpoints Weitere Informationen finden Sie unter [Erforderliche Richtlinie für Endpunkte](inter-network-traffic-privacy.md#inter-network-traffic-DescribeEndpoints). 

## AWS verwaltete (vordefinierte) IAM-Richtlinien für Amazon DynamoDB
<a name="access-policy-examples-aws-managed"></a>

AWS adressiert einige gängige Anwendungsfälle durch die Bereitstellung eigenständiger IAM-Richtlinien, die von erstellt und verwaltet werden. AWS Diese AWS verwalteten Richtlinien gewähren die erforderlichen Berechtigungen für allgemeine Anwendungsfälle, sodass Sie nicht erst untersuchen müssen, welche Berechtigungen benötigt werden. Weitere Informationen finden Sie unter [AWS -verwaltete Richtlinien](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies) im *IAM-Benutzerhandbuch*.

Die folgenden AWS verwalteten Richtlinien, die Sie Benutzern in Ihrem Konto zuordnen können, sind spezifisch für DynamoDB und nach Anwendungsszenarien gruppiert:
+ **AmazonDynamoDBReadOnlyAccess**— Gewährt schreibgeschützten Zugriff auf DynamoDB-Ressourcen über die. AWS-Managementkonsole
+ **AmazonDynamoDBFullZugriff** — Gewährt vollen Zugriff auf DynamoDB-Ressourcen über die. AWS-Managementkonsole

Sie können diese Richtlinien für AWS verwaltete Berechtigungen überprüfen, indem Sie sich bei der IAM-Konsole anmelden und dort nach bestimmten Richtlinien suchen.

**Wichtig**  
Die bewährte Methode besteht darin, benutzerdefinierte IAM-Richtlinien zu erstellen, die den Benutzern, Rollen oder Gruppen, die diese Berechtigungen benötigen, die [geringste Berechtigung](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege) gewähren. 

## Beispiele für vom Kunden verwaltete Richtlinien
<a name="access-policy-examples-for-sdk-cli"></a>

In diesem Abschnitt finden Sie Beispiele für Benutzerrichtlinien, die Berechtigungen für verschiedene DynamoDB-Aktionen gewähren. Diese Richtlinien funktionieren, wenn Sie AWS SDKs oder die AWS CLI verwenden. Wenn Sie die Konsole verwenden, müssen Sie zusätzliche konsolenspezifische Berechtigungen erteilen. Weitere Informationen finden Sie unter [Erforderliche IAM-Berechtigungen für die Verwendung der Amazon-DynamoDB-Konsole](#console-permissions).

**Anmerkung**  
Alle folgenden Richtlinienbeispiele verwenden eine der AWS Regionen und enthalten fiktive Konto- IDs und Tabellennamen.

Beispiele:
+ [IAM-Richtlinie zum Erteilen von Berechtigungen für alle DynamoDB-Aktionen in einer Tabelle](grant-permissions-to-any-action-on-table.md)
+ [IAM-Richtlinie zum Gewähren von Schreibgeschützten Berechtigungen für Elemente in einer DynamoDB-Tabelle](read-only-permissions-on-table-items.md)
+ [IAM-Richtlinie zum Erteilen des Zugriffs auf eine bestimmte DynamoDB-Tabelle und ihre Indizes](iam-policy-specific-table-indexes.md)
+ [IAM-Richtlinie zum Lesen, Schreiben, Aktualisieren und Löschen des Zugriffs auf eine DynamoDB-Tabelle](iam-policy-example-data-crud.md)
+ [IAM-Richtlinie zur Trennung von DynamoDB-Umgebungen im selben Konto AWS](iam-policy-separate-environments.md)
+ [IAM-Richtlinie zum Verhindern des Erwerbs von reservierter DynamoDB-Kapazität](iam-prevent-purchase-reserved-capacity.md)
+ [IAM-Richtlinie zum Gewähren von Lesezugriff für einen DynamoDB Stream (nicht für die Tabelle)](iam-policy-read-stream-only.md)
+ [IAM-Richtlinie, um einer AWS Lambda Funktion den Zugriff auf DynamoDB-Stream-Datensätze zu ermöglichen](iam-policy-example-lamda-process-dynamodb-streams.md)
+ [IAM-Richtlinie für Lese- und Schreibzugriff auf einen DynamoDB-Accelerator-(DAX)-Cluster](iam-policy-example-read-write-dax-access.md)

 Das *IAM-Benutzerhandbuch* umfasst [drei zusätzliche DynamoDB-Beispiele](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_examples.html):
+ [Amazon DynamoDB: Gewährt Zugriff auf eine bestimmte Tabelle](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_specific-table.html)
+ [Amazon DynamoDB: Gewährt Zugriff auf bestimmte Spalten](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_columns.html)
+ [Amazon DynamoDB: Ermöglicht basierend auf einer Amazon-Cognito-ID den zeilenweisen Zugriff auf DynamoDB](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_dynamodb_rows.html)

# IAM-Richtlinie zum Erteilen von Berechtigungen für alle DynamoDB-Aktionen in einer Tabelle
<a name="grant-permissions-to-any-action-on-table"></a>

Die folgende Berechtigungsrichtlinie erteilt Berechtigungen für *alle* DynamoDB-Aktionen in einer Tabelle namens `Books`. Der im angegebene Ressourcen-ARN `Resource` identifiziert eine Tabelle in einer bestimmten AWS Region. Wenn Sie den Tabellennamen `Books` im`Resource`-ARN durch ein Platzhalterzeichen (\$1) ersetzen, lassen Sie *alle* DynamoDB-Aktionen für *alle* Tabellen im Konto zu. Berücksichtigen Sie sorgfältig die möglichen Auswirkungen auf die Sicherheit, bevor Sie ein Platzhalterzeichen für diese oder eine IAM-Richtlinie verwenden.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllAPIActionsOnBooks",
            "Effect": "Allow",
            "Action": "dynamodb:*",
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books"
        }
    ]
}
```

------

**Anmerkung**  
Dies ist ein Beispiel für die Verwendung eines Platzhalterzeichens (\$1), das *Alle* Aktionen, einschließlich Administration, Datenvorgänge, Überwachung und Kauf von reservierten DynamoDB-Kapazitäten. Stattdessen empfiehlt es sich, jede Aktion explizit anzugeben, die gewährt werden soll, und nur was dieser Benutzer, die Rolle oder die Gruppe benötigt.

# IAM-Richtlinie zum Gewähren von Schreibgeschützten Berechtigungen für Elemente in einer DynamoDB-Tabelle
<a name="read-only-permissions-on-table-items"></a>

Die folgende Berechtigungsrichtlinie erteilt ausschließlich Berechtigungen für die `GetItem`, `BatchGetItem`, `Scan`, `Query` und `ConditionCheckItem`DynamoDB-Aktionen und legt somit einen schreibgeschützten Zugriff auf eine Tabelle `Books` fest.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "ReadOnlyAPIActionsOnBooks",
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem",
                "dynamodb:BatchGetItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:ConditionCheckItem"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books"
        }
    ]
}
```

------

# IAM-Richtlinie zum Erteilen des Zugriffs auf eine bestimmte DynamoDB-Tabelle und ihre Indizes
<a name="iam-policy-specific-table-indexes"></a>

Mit der folgenden Richtlinie werden die Berechtigungen für Datenänderungsaktionen für eine DynamoDB-Tabelle mit dem Namen `Books` und alle Indizes dieser Tabelle. Weitere Informationen zu der Funktionsweise von Indizes finden Sie unter [Verbessern des Datenzugriffs mit sekundären Indizes in DynamoDB](SecondaryIndexes.md).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessTableAllIndexesOnBooks",
            "Effect": "Allow",
            "Action": [
              "dynamodb:PutItem",
              "dynamodb:UpdateItem",
              "dynamodb:DeleteItem",
              "dynamodb:BatchWriteItem",
              "dynamodb:GetItem",
              "dynamodb:BatchGetItem",
              "dynamodb:Scan",
              "dynamodb:Query",
              "dynamodb:ConditionCheckItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books",
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books/index/*"
            ]
        }
    ]
}
```

------

# IAM-Richtlinie zum Lesen, Schreiben, Aktualisieren und Löschen des Zugriffs auf eine DynamoDB-Tabelle
<a name="iam-policy-example-data-crud"></a>

Verwenden Sie diese Richtlinie, wenn Sie Ihrer Anwendung erlauben müssen, Daten in Amazon-DynamoDB-Tabellen, -Indizes und -Streams zu erstellen, zu lesen, zu aktualisieren und zu löschen. Ersetzen Sie gegebenenfalls den Namen der AWS Region, Ihre Konto-ID und den Tabellennamen oder das Platzhalterzeichen (\$1).

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBIndexAndStreamAccess",
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetShardIterator",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:DescribeStream",
                "dynamodb:GetRecords",
                "dynamodb:ListStreams"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books/index/*",
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books/stream/*"
            ]
        },
        {
            "Sid": "DynamoDBTableAccess",
            "Effect": "Allow",
            "Action": [
                "dynamodb:BatchGetItem",
                "dynamodb:BatchWriteItem",
                "dynamodb:ConditionCheckItem",
                "dynamodb:PutItem",
                "dynamodb:DescribeTable",
                "dynamodb:DeleteItem",
                "dynamodb:GetItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:UpdateItem"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books"
        },
        {
            "Sid": "DynamoDBDescribeLimitsAccess",
            "Effect": "Allow",
            "Action": "dynamodb:DescribeLimits",
            "Resource": [
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books",
                "arn:aws:dynamodb:us-west-2:123456789012:table/Books/index/*"
            ]
        }
    ]
}
```

------

Um diese Richtlinie auf alle DynamoDB-Tabellen in allen AWS Regionen für dieses Konto auszudehnen, verwenden Sie einen Platzhalter (\$1) für die Region und den Tabellennamen. Beispiel:

```
"Resource":[
                "arn:aws:dynamodb:*:123456789012:table/*",
                "arn:aws:dynamodb:*:123456789012:table/*/index/*"
                ]
```

# IAM-Richtlinie zur Trennung von DynamoDB-Umgebungen im selben Konto AWS
<a name="iam-policy-separate-environments"></a>

Angenommen, Sie verfügen über separate Umgebungen, wobei jede Umgebung ihre eigene Version einer Tabelle namens `ProductCatalog` unterhält. Wenn Sie zwei `ProductCatalog` Tabellen in demselben AWS Konto erstellen, kann sich die Arbeit in einer Umgebung aufgrund der Art und Weise, wie Berechtigungen eingerichtet sind, auf die andere Umgebung auswirken. Beispielsweise werden Kontingente für die Anzahl gleichzeitiger Vorgänge auf der Kontrollebene (z. B.`CreateTable`) auf AWS Kontoebene festgelegt.

Daher reduziert jede Aktion in einer Umgebung die Anzahl der Operationen, die in der anderen Umgebung verfügbar sind. Es besteht auch das Risiko, dass der Code in der Umgebung möglicherweise versehentlich auf Tabellen in der anderen Umgebung zugreift.

**Anmerkung**  
Wenn Sie Produktions- und Test-Workloads trennen möchten, um den potenziellen „Explosionsradius“ eines Ereignisses zu steuern, empfiehlt es sich, separate AWS -Konten für Test- und Produktions-Workloads zu erstellen. Weitere Informationen finden Sie unter [AWS Kontenverwaltung und Trennung](https://docs.aws.amazon.com//wellarchitected/latest/security-pillar/aws-account-management-and-separation.html).

Weiter gehen wir davon aus, dass Sie über zwei Entwickler verfügen, Amit und Alice, die die `ProductCatalog`-Tabelle testen. Anstatt dass jeder Entwickler ein separates AWS Konto benötigt, können sich Ihre Entwickler dasselbe AWS Testkonto teilen. In diesem Testkonto können Sie eine Kopie derselben Tabelle für jeden Entwickler zur Bearbeitung erstellen, beispielsweise `Alice_ProductCatalog` und `Amit_ProductCatalog`. In diesem Fall können Sie die Benutzer Alice und Amit in dem AWS Konto erstellen, das Sie für die Testumgebung erstellt haben. Sie können dann diesen Benutzern Berechtigungen erteilen, damit sie in den Tabellen, die sie besitzen, DynamoDB-Aktionen durchführen können. 

Um diesen Benutzern IAM-Berechtigungen zu erteilen, können Sie Folgendes tun:
+ Erstellen Sie eine separate Richtlinie für jeden Benutzer und weisen jede Richtlinie getrennt ihrem Benutzer zu. Sie können beispielsweise die folgende Richtlinie der Benutzerin Alice zuweisen, um ihr Zugriff auf alle DynamoDB-Aktionen in der Tabelle `Alice_ProductCatalog` zu gewähren: 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "AllAPIActionsOnAliceTable",
              "Effect": "Allow",
              "Action": [
                "dynamodb:DeleteItem",
                "dynamodb:DescribeContributorInsights",
                "dynamodb:RestoreTableToPointInTime",
                "dynamodb:ListTagsOfResource",
                "dynamodb:CreateTableReplica",
                "dynamodb:UpdateContributorInsights",
                "dynamodb:CreateBackup",
                "dynamodb:DeleteTable",
                "dynamodb:UpdateTableReplicaAutoScaling",
                "dynamodb:UpdateContinuousBackups",
                "dynamodb:TagResource",
                "dynamodb:DescribeTable",
                "dynamodb:GetItem",
                "dynamodb:DescribeContinuousBackups",
                "dynamodb:BatchGetItem",
                "dynamodb:UpdateTimeToLive",
                "dynamodb:BatchWriteItem",
                "dynamodb:ConditionCheckItem",
                "dynamodb:UntagResource",
                "dynamodb:PutItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteTableReplica",
                "dynamodb:DescribeTimeToLive",
                "dynamodb:RestoreTableFromBackup",
                "dynamodb:UpdateTable",
                "dynamodb:DescribeTableReplicaAutoScaling",
                "dynamodb:GetShardIterator",
                "dynamodb:DescribeStream",
                "dynamodb:GetRecords",
                "dynamodb:DescribeLimits",
                "dynamodb:ListStreams"
              ],
              "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Alice_ProductCatalog/*"
          }
      ]
  }
  ```

------

  Anschließend können Sie eine ähnliche Richtlinie mit einer anderen Ressource (`Amit_ProductCatalog`-Tabelle) für den Benutzer Amit erstellen. 
+ Anstatt die Richtlinien einzelnen Benutzern zuzuweisen, können Sie IAM-Richtlinienvariablen zum Schreiben einer einzelnen Richtlinie verwenden und sie einer Gruppe anfügen. Sie müssen eine Gruppe erstellen und für dieses Beispiel die Benutzer Alice und Amit der Gruppe hinzufügen. Das folgende Beispiel gewährt Berechtigungen, um alle DynamoDB-Aktionen in der Tabelle `${aws:username}_ProductCatalog` durchzuführen. Die Richtlinienvariable `${aws:username}` wird durch den Benutzernamen des Anforderers bei der Evaluierung der Richtlinie ersetzt. Wenn Alice beispielsweise eine Anforderung für das Hinzufügen eines Elements sendet, wird die Aktion nur zugelassen, wenn Alice der `Alice_ProductCatalog`-Tabelle Elemente hinzufügt. 

------
#### [ JSON ]

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "ActionsOnUserSpecificTable",
              "Effect": "Allow",
              "Action": [
                "dynamodb:PutItem",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteItem",
                "dynamodb:BatchWriteItem",
                "dynamodb:GetItem",
                "dynamodb:BatchGetItem",
                "dynamodb:Scan",
                "dynamodb:Query",
                "dynamodb:ConditionCheckItem"
              ],
              "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/${aws:username}_ProductCatalog"
          },
          {
              "Sid": "AdditionalPrivileges",
              "Effect": "Allow",
              "Action": [
                  "dynamodb:ListTables",
                  "dynamodb:DescribeTable",
                  "dynamodb:DescribeContributorInsights"
              ],
              "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/*"
          }
      ]
  }
  ```

------

**Anmerkung**  
Bei der Verwendung von IAM-Richtlinienvariablen müssen Sie explizit die `2012-10-17`-Version der IAM-Zugriffsrichtliniensprache in der Richtlinie angeben. Die Standardversion der IAM-Zugriffsrichtliniensprache (`2008-10-17`) unterstützt keine Richtlinienvariablen. 

Anstelle der Identifizierung einer bestimmten Tabelle als Ressource können Sie ein Platzhalterzeichen (\$1) verwenden, um Berechtigungen für alle Tabellen zu gewähren, in denen der Name dem Namen des Benutzers vorangesetzt wird, der die Anforderung stellt. Siehe folgendes Beispiel.

```
"Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/${aws:username}_*"
```

# IAM-Richtlinie zum Verhindern des Erwerbs von reservierter DynamoDB-Kapazität
<a name="iam-prevent-purchase-reserved-capacity"></a>

Mit Amazon DynamoDBs reservierter Kapazität bezahlen Sie im Vorfeld eine einmalige Gebühr und verpflichten sich zur Zahlung für eine Mindestnutzung während eines bestimmten Zeitraums mit erheblichen Einsparungen. Sie können den verwenden AWS-Managementkonsole , um reservierte Kapazität einzusehen und zu erwerben. Möglicherweise möchten Sie jedoch nicht, dass alle Benutzer in Ihrer Organisation reservierte Kapazität erwerben können. Weitere Informationen über reservierte Kapazität finden Sie unter [Amazon DynamoDB](https://aws.amazon.com/dynamodb/pricing).

DynamoDB bietet die folgenden API-Operationen für die Steuerung des Zugriffs auf das reservierte Kapazitätsmanagement:
+ `dynamodb:DescribeReservedCapacity` – gibt die Käufe der reservierten Kapazität zurück, die momentan bestehen
+ `dynamodb:DescribeReservedCapacityOfferings` – gibt Details über die Pläne der reservierten Kapazität zurück, die momentan von AWS angeboten werden.
+ `dynamodb:PurchaseReservedCapacityOfferings` – führt einen tatsächlichen Kauf von reservierter Kapazität durch

Der AWS-Managementkonsole verwendet diese API-Aktionen, um Informationen zur reservierten Kapazität anzuzeigen und Käufe zu tätigen. Sie können diese Operationen nicht von einem Anwendungsprogramm abrufen, da sie nur über die Konsole aufgerufen werden können. Sie können jedoch den Zugriff auf diese Operationen in einer IAM-Berechtigungsrichtlinie zulassen oder verweigern.

Die folgende Richtlinie ermöglicht es Benutzern, Käufe und Angebote für reservierte Kapazität mithilfe von AWS-Managementkonsole einzusehen. Neue Käufe werden jedoch verweigert.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowReservedCapacityDescriptions",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeReservedCapacity",
                "dynamodb:DescribeReservedCapacityOfferings"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:*"
        },
        {
            "Sid": "DenyReservedCapacityPurchases",
            "Effect": "Deny",
            "Action": "dynamodb:PurchaseReservedCapacityOfferings",
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:*"
        }
    ]
}
```

------

Beachten Sie, dass diese Richtlinie das Platzhalterzeichen (\$1) verwendet, um Beschreibungsberechtigungen für alle, zu ermöglichen und den Kauf von reservierter DynamoDB-Kapazität für alle zu verweigern.

# IAM-Richtlinie zum Gewähren von Lesezugriff für einen DynamoDB Stream (nicht für die Tabelle)
<a name="iam-policy-read-stream-only"></a>

Wenn Sie DynamoDB Streams für eine Tabelle aktivieren, werden Informationen über jede Änderung an den Elementen in der Tabelle erfasst. Weitere Informationen finden Sie unter [Ändern Sie die Datenerfassung für DynamoDB Streams](Streams.md).

In einigen Fällen möchten Sie möglicherweise verhindern, dass eine Anwendung Daten aus einer DynamoDB-Tabelle liest, während weiterhin der Zugriff auf den Stream dieser Tabelle gewährt wird. Sie können beispielsweise so konfigurieren AWS Lambda , dass ein Stream abgefragt und eine Lambda-Funktion aufgerufen wird, wenn Elementaktualisierungen erkannt werden, und dann zusätzliche Verarbeitungen durchführen.

Die folgenden Aktionen sind für die Steuerung des Zugriffs auf DynamoDB Streams verfügbar:
+ `dynamodb:DescribeStream`
+ `dynamodb:GetRecords`
+ `dynamodb:GetShardIterator`
+ `dynamodb:ListStreams`

Das folgende Beispielrichtlinie erteilt Benutzerberechtigungen, um auf die Streams in einer Tabelle mit dem Namen `GameScores` zuzugreifen. Das letzte Platzhalterzeichen (\$1) in dem ARN entspricht jedem Stream, der mit dieser Tabelle verknüpft ist.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AccessGameScoresStreamOnly",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeStream",
                "dynamodb:GetRecords",
                "dynamodb:GetShardIterator",
                "dynamodb:ListStreams"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/stream/*"
        }
    ]
}
```

------

Beachten Sie, dass diese Richtlinie Zugriff auf die Streams in der `GameScores`-Tabelle gewährt, aber nicht auf die Tabelle selbst.

# IAM-Richtlinie, um einer AWS Lambda Funktion den Zugriff auf DynamoDB-Stream-Datensätze zu ermöglichen
<a name="iam-policy-example-lamda-process-dynamodb-streams"></a>

Wenn Sie möchten, dass bestimmte Aktionen auf der Grundlage von Ereignissen in einem DynamoDB-Stream ausgeführt werden, können Sie eine AWS Lambda Funktion schreiben, die durch diese Ereignisse ausgelöst wird. Eine solche Lambda-Funktion benötigt Berechtigungen zum Lesen von Daten aus dem DynamoDB-Stream. Weitere Informationen zur Verwendung der Lambda mit DynamoDB Streams finden Sie unter [DynamoDB Streams und -Trigger AWS Lambda](Streams.Lambda.md).

Um Lambda Berechtigungen zu erteilen, verwenden Sie die Berechtigungsrichtlinie, die der IAM-Rolle der Lambda-Funktion zugeordnet ist (-Ausführungsrolle). Geben Sie diese Richtlinie an, wenn Sie die Lambda-Funktion erstellen.

Sie können beispielsweise die folgenden Berechtigungsrichtlinien mit den Ausführungsrollen verknüpfen, um Lambda-Berechtigungen zu erteilen, die aufgeführten DynamoDB-Streams-Aktionen durchzuführen.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "APIAccessForDynamoDBStreams",
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetRecords",
                "dynamodb:GetShardIterator",
                "dynamodb:DescribeStream",
                "dynamodb:ListStreams"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/stream/*"
        }
    ]
}
```

------

Weitere Informationen finden Sie unter [AWS Lambda -Berechtigungen](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html) im *AWS Lambda -Entwicklerhandbuch*.

# IAM-Richtlinie für Lese- und Schreibzugriff auf einen DynamoDB-Accelerator-(DAX)-Cluster
<a name="iam-policy-example-read-write-dax-access"></a>

Die folgende Richtlinie ermöglicht einen Lese-, Schreib-, Aktualisierungs- und Löschzugriff auf einen DynamoDB-Accelerator-(DAX)-Cluster, der aber nicht der DynamoDB-Tabelle zugeordnet ist. Um diese Richtlinie zu verwenden, ersetzen Sie den Namen der AWS Region, Ihre Konto-ID und den Namen Ihres DAX-Clusters.

**Anmerkung**  
Diese Richtlinie ermöglicht den Zugriff auf DAX-Cluster, aber nicht auf die zugehörige DynamoDB-Tabelle. Stellen Sie sicher, dass Ihr DAX-Cluster über die richtige Richtlinie verfügt, um dieselben Vorgänge in der DynamoDB-Tabelle in Ihrem Namen auszuführen. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AmazonDynamoDBDAXDataOperations",
            "Effect": "Allow",
            "Action": [
                "dax:GetItem",
                "dax:PutItem",
                "dax:ConditionCheckItem",
                "dax:BatchGetItem",
                "dax:BatchWriteItem",
                "dax:DeleteItem",
                "dax:Query",
                "dax:UpdateItem",
                "dax:Scan"
            ],
            "Resource": "arn:aws:dax:eu-west-1:123456789012:cache/MyDAXCluster"
        }
    ]
}
```

------

Um diese Richtlinie so zu erweitern, dass sie den DAX-Zugriff für alle AWS Regionen für ein Konto abdeckt, verwenden Sie ein Platzhalterzeichen (\$1) für den Namen der Region.

```
"Resource": "arn:aws:dax:*:123456789012:cache/MyDAXCluster"
```







# Fehlerbehebung für Amazon-DynamoDB-Identität und -Zugriff
<a name="security_iam_troubleshoot"></a>

Verwenden Sie die folgenden Informationen, um häufige Probleme zu diagnostizieren und zu beheben, die beim Arbeiten mit DynamoDB und IAM auftreten könnten.

**Topics**
+ [Ich bin nicht autorisiert, eine Aktion in DynamoDB auszuführen.](#security_iam_troubleshoot-no-permissions)
+ [Ich bin nicht berechtigt, iam durchzuführen: PassRole](#security_iam_troubleshoot-passrole)
+ [Ich möchte Personen außerhalb von mir den Zugriff AWS-Konto auf meine DynamoDB-Ressourcen ermöglichen](#security_iam_troubleshoot-cross-account-access)

## Ich bin nicht autorisiert, eine Aktion in DynamoDB auszuführen.
<a name="security_iam_troubleshoot-no-permissions"></a>

Wenn Ihnen AWS-Managementkonsole mitgeteilt wird, dass Sie nicht berechtigt sind, eine Aktion auszuführen, müssen Sie sich an Ihren Administrator wenden, um Unterstützung zu erhalten. Ihr Administrator ist die Person, die Ihnen Ihren Benutzernamen und Ihr Passwort zur Verfügung gestellt hat.

Der folgende Beispielfehler tritt auf, wenn der `mateojackson`-Benutzer versucht, die Konsole zum Anzeigen von Details zu einer fiktiven `my-example-widget`-Ressource zu verwenden, jedoch nicht über `aws:GetWidget`-Berechtigungen verfügt.

```
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: aws:GetWidget on resource: my-example-widget
```

In diesem Fall bittet Mateo seinen Administrator um die Aktualisierung seiner Richtlinien, um unter Verwendung der Aktion `my-example-widget` auf die Ressource `aws:GetWidget` zugreifen zu können.

## Ich bin nicht berechtigt, iam durchzuführen: PassRole
<a name="security_iam_troubleshoot-passrole"></a>

Wenn Sie die Fehlermeldung erhalten, dass Sie nicht zum Durchführen der `iam:PassRole`-Aktion autorisiert sind, müssen Ihre Richtlinien aktualisiert werden, um eine Rolle an DynamoDB übergeben zu können.

Einige AWS-Services ermöglichen es Ihnen, eine bestehende Rolle an diesen Dienst zu übergeben, anstatt eine neue Servicerolle oder eine dienstverknüpfte Rolle zu erstellen. Hierzu benötigen Sie Berechtigungen für die Übergabe der Rolle an den Dienst.

Der folgende Fehler tritt beispielsweise auf, wenn ein IAM-Benutzer mit dem Namen `marymajor` versucht, die Konsole zu verwenden, um eine Aktion in DynamoDB auszuführen. Die Aktion erfordert jedoch, dass der Service über Berechtigungen verfügt, die durch eine Servicerolle gewährt werden. Mary besitzt keine Berechtigungen für die Übergabe der Rolle an den Dienst.

```
User: arn:aws:iam::123456789012:user/marymajor is not authorized to perform: iam:PassRole
```

In diesem Fall müssen die Richtlinien von Mary aktualisiert werden, um die Aktion `iam:PassRole` ausführen zu können.

Wenn Sie Hilfe benötigen, wenden Sie sich an Ihren AWS Administrator. Ihr Administrator hat Ihnen Ihre Anmeldeinformationen zur Verfügung gestellt.

## Ich möchte Personen außerhalb von mir den Zugriff AWS-Konto auf meine DynamoDB-Ressourcen ermöglichen
<a name="security_iam_troubleshoot-cross-account-access"></a>

Sie können eine Rolle erstellen, mit der Benutzer in anderen Konten oder Personen außerhalb Ihrer Organisation auf Ihre Ressourcen zugreifen können. Sie können festlegen, wem die Übernahme der Rolle anvertraut wird. Für Dienste, die ressourcenbasierte Richtlinien oder Zugriffskontrolllisten (ACLs) unterstützen, können Sie diese Richtlinien verwenden, um Personen Zugriff auf Ihre Ressourcen zu gewähren.

Weitere Informationen dazu finden Sie hier:
+ Informationen dazu, ob DynamoDB diese Funktionen unterstützt, finden Sie unter [Funktionsweise von Amazon DynamoDB mit IAM](security_iam_service-with-iam.md).
+ *Informationen dazu, wie Sie Zugriff auf Ihre Ressourcen in AWS-Konten Ihrem Besitz gewähren können, finden Sie im IAM-Benutzerhandbuch unter [Gewähren des Zugriffs für einen IAM-Benutzer in einem anderen AWS-Konto , dem Sie](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_aws-accounts.html) gehören.*
+ Informationen dazu, wie Sie Dritten Zugriff auf Ihre Ressourcen gewähren können AWS-Konten, finden Sie [AWS-Konten im *IAM-Benutzerhandbuch* unter Gewähren des Zugriffs für Dritte](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_third-party.html).
+ Informationen dazu, wie Sie über einen Identitätsverbund Zugriff gewähren, finden Sie unter [Gewähren von Zugriff für extern authentifizierte Benutzer (Identitätsverbund)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_common-scenarios_federated-users.html) im *IAM-Benutzerhandbuch*.
+ Informationen zum Unterschied zwischen der Verwendung von Rollen und ressourcenbasierten Richtlinien für den kontoübergreifenden Zugriff finden Sie unter [Kontoübergreifender Ressourcenzugriff in IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies-cross-account-resource-access.html) im *IAM-Benutzerhandbuch*.

# IAM-Richtlinie zum Verhindern des Erwerbs von reservierter DynamoDB-Kapazität
<a name="iam-policy-prevent-purchase-reserved-capacity"></a>

Mit Amazon DynamoDBs reservierter Kapazität bezahlen Sie im Vorfeld eine einmalige Gebühr und verpflichten sich zur Zahlung für eine Mindestnutzung während eines bestimmten Zeitraums mit erheblichen Einsparungen. Sie können die verwenden, um reservierte AWS-Managementkonsole Kapazität einzusehen und zu erwerben. Möglicherweise möchten Sie jedoch nicht, dass alle Benutzer in Ihrer Organisation reservierte Kapazität erwerben können. Weitere Informationen über reservierte Kapazität finden Sie unter [Amazon DynamoDB](https://aws.amazon.com/dynamodb/pricing).

DynamoDB bietet die folgenden API-Operationen für die Steuerung des Zugriffs auf das reservierte Kapazitätsmanagement:
+ `dynamodb:DescribeReservedCapacity` – gibt die Käufe der reservierten Kapazität zurück, die momentan bestehen
+ `dynamodb:DescribeReservedCapacityOfferings` – gibt Details über die Pläne der reservierten Kapazität zurück, die momentan von AWS angeboten werden.
+ `dynamodb:PurchaseReservedCapacityOfferings` – führt einen tatsächlichen Kauf von reservierter Kapazität durch

Der AWS-Managementkonsole verwendet diese API-Aktionen, um Informationen zur reservierten Kapazität anzuzeigen und Käufe zu tätigen. Sie können diese Operationen nicht von einem Anwendungsprogramm abrufen, da sie nur über die Konsole aufgerufen werden können. Sie können jedoch den Zugriff auf diese Operationen in einer IAM-Berechtigungsrichtlinie zulassen oder verweigern.

Die folgende Richtlinie ermöglicht es Benutzern, Käufe und Angebote für reservierte Kapazität mithilfe von AWS-Managementkonsole einzusehen. Neue Käufe werden jedoch verweigert.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowReservedCapacityDescriptions",
            "Effect": "Allow",
            "Action": [
                "dynamodb:DescribeReservedCapacity",
                "dynamodb:DescribeReservedCapacityOfferings"
            ],
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:*"
        },
        {
            "Sid": "DenyReservedCapacityPurchases",
            "Effect": "Deny",
            "Action": "dynamodb:PurchaseReservedCapacityOfferings",
            "Resource": "arn:aws:dynamodb:us-west-2:123456789012:*"
        }
    ]
}
```

------

Beachten Sie, dass diese Richtlinie das Platzhalterzeichen (\$1) verwendet, um Beschreibungsberechtigungen für alle, zu ermöglichen und den Kauf von reservierter DynamoDB-Kapazität für alle zu verweigern.

# Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle
<a name="specifying-conditions"></a>

Wenn Sie in DynamoDB Berechtigungen gewähren, können Sie Bedingungen angeben, die bestimmen, wie eine Berechtigungsrichtlinie wirksam wird. 

## -Übersicht
<a name="FGAC_DDB.Overview"></a>

In DynamoDB haben Sie die Möglichkeit, beim Erteilen von Berechtigungen mithilfe einer IAM-Richtlinie Bedingungen anzugeben (siehe [Identity and Access Management für Amazon DynamoDB](security-iam.md)). Beispielsweise ist Folgendes möglich:
+ Erteilen von Berechtigungen, damit den Benutzern schreibgeschützter Zugriff auf bestimmte Elemente und Attribute in einer Tabelle oder einem sekundären Index gewährt wird.
+ Erteilen von Berechtigungen, damit den Benutzern lesegeschützter Zugriff auf bestimmte Attribute in einer Tabelle, basierend auf der Identität dieses Benutzers, gewährt wird.

In DynamoDB können Sie Bedingungen in einer IAM-Richtlinie mit Bedingungsschlüsseln angeben, wie im Anwendungsfall in folgendem Abschnitt dargestellt.

### Anwendungsfall für Berechtigungen
<a name="FGAC_DDB.OverviewUseCase"></a>

Zusätzlich zur Kontrolle des Zugriffs auf DynamoDB-API-Aktionen können Sie auch den Zugriff auf einzelne Datenelemente und Attribute kontrollieren. Sie können z. B. Folgendes tun:
+ Erteilen von Berechtigungen für eine Tabelle, aber Einschränken des Zugriffs auf bestimmte Elemente in dieser Tabelle basierend auf bestimmten Primärschlüsselwerten. Ein Beispiel wäre eine Social-Network-Anwendung für Spiele, in der alle gespeicherten Spieldaten eines Benutzers in einer einzelnen Tabelle gespeichert werden, der Benutzer aber keinen Zugriff auf die Datenelemente hat, die er nicht besitzt. Dies wird in der folgenden Darstellung gezeigt:  
![\[Ein Anwendungsfall, der einem Benutzer Zugriff auf Tabellenebene gewährt, aber den Zugriff auf bestimmte Datenelemente einschränkt\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/info-hiding-horizontal.png)
+ Ausblenden von Informationen, so dass nur eine Teilmenge der Attribute für den Benutzer sichtbar ist. Ein Beispiel dafür ist eine Anwendung, die Flugdaten für nahegelegene Flughäfen, basierend auf dem Standort des Benutzers, anzeigt. Namen von Airlines, Ankunfts- und Abflugzeiten und Flugnummer werden alle angezeigt. Jedoch werden Attribute, wie z. B. Pilotennamen oder die Anzahl der Passagiere ausgeblendet, wie in der folgenden Abbildung dargestellt:   
![\[Ein Anwendungsfall, bei dem Benutzern nur eine Teilmenge der Daten angezeigt wird, bestimmte Datenattribute jedoch ausgeblendet werden\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/info-hiding-vertical.png)

Zur Implementierung dieser Art von differenzierter Zugriffskontrolle, schreiben Sie eine IAM-Berechtigungsrichtlinie, die Bedingungen für den Zugriff auf Sicherheitsanmeldeinformationen und den dazugehörigen Berechtigungen angibt. Anschließend wenden Sie die Richtlinie für die -Benutzer, -Gruppen oder -Rollen an, die Sie mithilfe der IAM-Konsole erstellen. Ihre IAM-Richtlinie kann den Zugriff auf einzelne Elemente in einer Tabelle oder auf die Attribute dieser Elemente oder auf beides gleichzeitig beschränken.

Sie können wahlweise den Web-Identitätsverbund verwenden, um den Zugriff von Benutzern zu kontrollieren, die durch Login with Amazon, Facebook oder Google authentifiziert werden. Weitere Informationen finden Sie unter [Verwenden des Web-Identitätsverbunds](WIF.md).

Sie verwenden das IAM-`Condition`-Element, um eine differenzierte Zugriffskontrollrichtlinie zu implementieren. Indem ein `Condition`-Element einer Berechtigungsrichtlinie hinzugefügt wird, können Sie den Zugriff auf Elemente und Attribute in DynamoDB-Tabellen und -Indizes, basierend auf Ihren besonderen Geschäftsanforderungen, gewähren oder verweigern. 

Im folgenden Video wird die differenzierte Zugriffskontrolle in DynamoDB unter Verwendung von IAM-Richtlinienbedingungen erläutert.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/LbEmo_yulb0?si=VTSlNHVocAEYwhJi/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/LbEmo_yulb0?si=VTSlNHVocAEYwhJi)


## Grundlegendes zur detaillierten Zugriffskontrolle in DynamoDB
<a name="FGAC_DDB.UnderstandingFineGrainedAccess"></a>

Die detaillierte Zugriffskontrolle in DynamoDB ermöglicht es Ihnen, präzise Berechtigungsgrenzen auf mehreren Ebenen festzulegen:

1. **Zugriffskontrolle auf Elementebene:** Beschränken Sie Benutzer darauf, nur auf Elemente zuzugreifen, die bestimmte Schlüsselwerte enthalten, die in der Regel ihrer Identität oder ihrem Berechtigungsbereich entsprechen.

1. **Zugriffskontrolle auf Attributebene:** Beschränken Sie, welche Attribute (Spalten) Benutzer anzeigen oder ändern können, sodass Sie vertrauliche Informationen schützen und gleichzeitig Zugriff auf nicht vertrauliche Daten innerhalb derselben Elemente gewähren können.

1. **Vorgangsspezifische Kontrollen:** Wenden Sie je nach Art des ausgeführten Vorgangs unterschiedliche Berechtigungsregeln an.

Diese Kontrollen werden durch IAM-Richtlinien unter Verwendung von DynamoDB-spezifischen Bedingungsschlüsseln implementiert.

## Festlegung von Bedingungen: Verwenden von Bedingungsschlüsseln
<a name="FGAC_DDB.ConditionKeys"></a>

AWS stellt eine Reihe vordefinierter Bedingungsschlüssel (AWS allgemeine Bedingungsschlüssel) für alle AWS Dienste bereit, die IAM für die Zugriffskontrolle unterstützen. Sie können beispielsweise den `aws:SourceIp`-Bedingungsschlüssel verwenden, um die IP-Adresse des Anforderers zu prüfen, bevor eine Aktion durchgeführt werden darf. Weitere Informationen und eine Liste der AWS-weiten Schlüssel finden Sie unter [Verfügbare Schlüssel für Bedingungen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) im IAM-Benutzerhandbuch.

Im Folgenden sind die dienstspezifischen DynamoDB-Bedingungsschlüssel aufgeführt, die für DynamoDB gelten.

**`dynamodb:LeadingKeys`**  
Repräsentiert das erste Schlüsselattribut der Tabelle – mit anderen Worten, der Partitionsschlüssel. Der Schlüsselname `LeadingKeys` ist im Plural, sogar wenn der Schlüssel mit Einzelelementaktionen verwendet wird. Zudem müssen Sie den Modifikator `ForAllValues` verwenden, wenn `LeadingKeys` in einer Bedingung genutzt wird.

**`dynamodb:Select`**  
Repräsentiert den Parameter `Select` einer Anforderung. `Select` kann jeden der folgenden Werte annehmen:  
+ `ALL_ATTRIBUTES`
+ `ALL_PROJECTED_ATTRIBUTES`
+ `SPECIFIC_ATTRIBUTES`
+ `COUNT`
Dieser Bedingungsschlüssel wird zwar häufig mit Abfrage- und Scanvorgängen in Verbindung gebracht, gilt aber für alle DynamoDB-Operationen, die Artikelattribute zurückgeben, und ist für die Steuerung des Attributzugriffs über alle API-Aktionen hinweg unerlässlich. Durch die Verwendung StringEqualsIfExists oder ähnlicher Beschränkungen für diesen Bedingungsschlüssel werden Einschränkungen auf Operationen angewendet, für die dieser Bedingungsschlüssel gilt, während er bei Vorgängen, bei denen er nicht zutrifft, ignoriert wird.

**`dynamodb:Attributes`**  
Stellt eine Liste der Attribute der *obersten Ebene* dar, auf die durch eine Anfrage zugegriffen wird. Auf ein Attribut der obersten Ebene wird durch eine Anfrage zugegriffen, wenn es oder ein darin enthaltenes verschachteltes Attribut in den Anforderungsparametern angegeben ist. Bei einer `GetItem` Anfrage, die einen Wert `ProjectionExpression` von angibt`"Name, Address.City"`, würde die `dynamodb:Attributes` Liste beispielsweise „Name“ und „Adresse“ enthalten. Wenn der `Attributes` Parameter in einer detaillierten Zugriffskontrollrichtlinie aufgeführt ist, sollten Sie auch Einschränkungen `ReturnValues` und `Select` Parameter in Betracht ziehen, um den eingeschränkten Zugriff auf bestimmte Attribute für mehrere API-Aktionen wie`GetItem`, und sicherzustellen. `Query` `Scan`   
Diese Bedingung wird nur für die in der Anfrage angegebenen Attribute (z. B. in a ProjectionExpression) ausgewertet, nicht für Attribute in der Antwort. Wenn in der Anfrage kein Wert angegeben ProjectionExpression wird, werden alle Attribute unabhängig von etwaigen Attributbeschränkungen in der Richtlinie zurückgegeben. Einzelheiten zur ordnungsgemäßen Sicherung des Attributzugriffs finden Sie weiter unten im Abschnitt „Sicherstellen, dass attributbasierte Einschränkungen durchgesetzt werden“.

**`dynamodb:ReturnValues`**  
Stellt den `ReturnValues` Parameter einer Anfrage dar. Abhängig von der API-Aktion `ReturnValues` kann dies einer der folgenden Werte sein:   
+ `ALL_OLD`
+ `UPDATED_OLD`
+ `ALL_NEW`
+ `UPDATED_NEW`
+ `NONE`

**`dynamodb:ReturnConsumedCapacity`**  
Repräsentiert den Parameter `ReturnConsumedCapacity` einer Anforderung. `ReturnConsumedCapacity` kann einen der folgenden Werte annehmen:  
+ `TOTAL`
+ `NONE`

**`dynamodb:FirstPartitionKeyValues`**  
Stellt das erste Schlüsselattribut einer Tabelle dar, mit anderen Worten, den ersten Partitionsschlüssel. Der Schlüsselname `FirstPartitionKeyValues` ist im Plural, sogar wenn der Schlüssel mit Einzelelementaktionen verwendet wird. Darüber hinaus müssen Sie den `ForAllValues` Modifikator verwenden, wenn Sie ihn `FirstPartitionKeyValues` in einer Bedingung verwenden. `FirstPartitionKeyValues`und `LeadingKeys` kann austauschbar verwendet werden.

**`dynamodb:SecondPartitionKeyValues`**  
Ähnlich `dynamodb:FirstPartitionKeyValues`. Stellt den zweiten Partitionsschlüssel der Ressourcen dar. Der Schlüsselname `SecondPartitionKeyValues` ist im Plural, sogar wenn der Schlüssel mit Einzelelementaktionen verwendet wird.

**`dynamodb:ThirdPartitionKeyValues`**  
Ähnlich `dynamodb:FirstPartitionKeyValues`. Stellt den dritten Partitionsschlüssel der Ressourcen dar. Der Schlüsselname `ThirdPartitionKeyValues` ist im Plural, sogar wenn der Schlüssel mit Einzelelementaktionen verwendet wird.

**`dynamodb:FourthPartitionKeyValues`**  
Ähnlich `dynamodb:FirstPartitionKeyValues`. Stellt den vierten Partitionsschlüssel der Ressourcen dar. Der Schlüsselname `FourthPartitionKeyValues` ist im Plural, sogar wenn der Schlüssel mit Einzelelementaktionen verwendet wird.

### Stellt sicher, dass attributbasierte Einschränkungen durchgesetzt werden
<a name="FGAC_DDB.EnsuringAttributeRestrictions"></a>

Bei der Verwendung von attributbasierten Bedingungen zur Beschränkung des Zugriffs auf bestimmte Attribute ist es wichtig zu verstehen, wie diese Bedingungen bewertet werden:
+ **Attributbedingungen werden nur für Attribute ausgewertet, die in der Anfrage angegeben** sind, nicht für Attribute in der Antwort.
+ **Bei Lesevorgängen ohne ProjectionExpression** (GetItem, Query, Scan usw.) werden alle Attribute zurückgegeben, unabhängig von den Attributbeschränkungen in Ihrer Richtlinie. Um diese potenzielle Offenlegung vertraulicher Daten zu verhindern, implementieren Sie sowohl Attributbedingungen (`dynamodb:Attributes`) als auch eine Bedingung, die vorschreibt, dass bestimmte Attribute angefordert werden müssen (`dynamodb:Select`).
+ **Bei Schreibvorgängen** (PutItem, UpdateItem, DeleteItem) kann der ReturnValues Parameter vollständige Elemente zurückgeben, wodurch möglicherweise eingeschränkte Attribute verfügbar gemacht werden, selbst wenn der Schreibvorgang selbst Ihrer Richtlinie entspricht. Um diese Offenlegung zu verhindern, implementieren Sie in Ihrer Richtlinie sowohl Attributbedingungen (`dynamodb:Attributes`) als auch Einschränkungen für ReturnValues (`dynamodb:ReturnValues`).

### Begrenzen des Benutzerzugriffs
<a name="FGAC_DDB.LimitingAccess"></a>

Viele IAM-Berechtigungsrichtlinien erlauben Benutzern, nur auf die Elemente in einer Tabelle zuzugreifen, in denen der Partitions-Schlüsselwert der Benutzer-ID entspricht. Beispielsweise begrenzen die zuvor genannten Grenzwerte der Spielanwendung den Zugriff so, dass Benutzer nur auf Spieldaten Zugriff haben, die mit ihrer Benutzer-ID verknüpft sind. Die IAM-Ersetzungsvariablen `${www.amazon.com:user_id}`, `${graph.facebook.com:id}` und `${accounts.google.com:sub}` enthalten Benutzer-IDs für Login with Amazon, Facebook und Google. Um zu erfahren, wie eine Anwendung sich bei einem dieser Identitätsanbieter anmeldet und diese IDs erhält, klicken Sie auf [Verwenden des Web-Identitätsverbunds](WIF.md).

**Wichtig**  
Eine differenzierte Zugriffskontrolle wird nicht unterstützt, um die Replikation globaler Tabellen einzuschränken. Die Anwendung von Richtlinienbedingungen für eine differenzierte Zugriffskontrolle auf [Service-Prinzipale oder serviceverknüpfte Rollen](globaltables-security.md) von DynamoDB, die für die Replikation globaler Tabellen verwendet werden, kann die Replikation innerhalb einer globalen Tabelle unterbrechen. 

**Anmerkung**  
Jedes der Beispiele im folgenden Abschnitt legt die `Effect`-Klausel auf `Allow` fest und gibt nur die Aktionen, Ressourcen und Parameter an, die erlaubt sind. Zugriff hat lediglich das, was in der IAM-Richtlinie aufgeführt ist.  
In einigen Fällen ist es möglich, diese Richtlinien umzuschreiben, damit sie auf Verweigerung basieren (dies bedeutet, die `Effect`-Klausel auf `Deny` festzulegen und die gesamte Logik in der Richtlinie umzukehren). Allerdings empfehlen wir, die Nutzung von Richtlinien, die auf einer Verweigerung basieren, mit DynamoDB zu vermeiden, weil es verglichen mit Richtlinien, die auf einer Berechtigung basieren, schwierig ist, sie korrekt zu schreiben. Darüber hinaus können zukünftige Änderungen an der DynamoDB-API (oder Änderungen an den vorhandenen API-Eingaben) eine Richtlinie, die auf Verweigerung basiert, wirkungslos machen.

### Beispielrichtlinien: Verwenden von Bedingungen für die differenzierte Zugriffskontrolle
<a name="FGAC_DDB.Examples"></a>

In diesem Abschnitt werden einige Richtlinien für die Implementierung einer differenzierten Zugriffskontrolle auf DynamoDB-Tabellen und Indizes dargestellt.

**Anmerkung**  
Alle Beispiele verwenden die Region us-west-2 und enthalten ein fiktives Konto. IDs

#### Beispiel 1. Grundlegende Zugriffskontrolle auf Basis von Partitionsschlüsseln mit Attributeinschränkungen
<a name="FGAC_DDB.Examples.BasicPartitionKeyAccess"></a>

Nehmen wir beispielsweise eine mobile Spielanwendung, mit der Spieler aus einer Auswahl verschiedener Spiele wählen und diese auch spielen können. Die App verwendet eine DynamoDB-Tabelle mit dem Namen`GameScores`, um Highscores und andere Benutzerdaten zu verfolgen. Jedes Element in der Tabelle wird durch eine Benutzer-ID und den Namen des Spiels, das der Benutzer gespielt hat, eindeutig identifiziert. Die `GameScores`-Tabelle verfügt über einen Primärschlüssel, der aus einem Partitionsschlüssel (`UserId`) und einem Sortierschlüssel (`GameTitle`) besteht. Benutzer haben nur Zugriff auf Spieldaten, die mit ihrer Benutzer-ID verknüpft sind. Ein Benutzer, der ein Spiel spielen möchte, muss zu einer IAM-Rolle mit dem Namen `GameRole` gehören, der eine Sicherheitsrichtlinie zugewiesen ist.

Um Benutzerberechtigungen in dieser Anwendung zu verwalten, können Sie eine Berechtigungsrichtlinie wie die folgende schreiben:

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowAccessToOnlyItemsMatchingUserID",
         "Effect":"Allow",
         "Action":[
            "dynamodb:GetItem",
            "dynamodb:BatchGetItem",
            "dynamodb:Query",
            "dynamodb:PutItem",
            "dynamodb:UpdateItem",
            "dynamodb:DeleteItem",
            "dynamodb:BatchWriteItem"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores"
         ],
         "Condition":{
            "ForAllValues:StringEquals":{
               "dynamodb:LeadingKeys":[
                  "${www.amazon.com:user_id}"
               ],
               "dynamodb:Attributes":[
                  "UserId",
                  "GameTitle",
                  "Wins",
                  "Losses",
                  "TopScore",
                  "TopScoreDateTime"
               ]
            },
            "StringEqualsIfExists":{
               "dynamodb:Select":"SPECIFIC_ATTRIBUTES"
            }
         }
      }
   ]
}
```

------

Zusätzlich zum Gewähren von Berechtigungen für bestimmte `Action`-Aktionen (Element `GameScores`) in der Tabelle `Resource` (Element ) verwendet das Element `Condition` folgende DynamoDB-spezifische Bedingungsschlüssel, die die Berechtigungen wie folgt begrenzen:
+ `dynamodb:LeadingKeys` – Dieser Bedingungsschlüssel gewährt Benutzern ausschließlich den Zugriff auf die Elemente, in denen der Partitions-Schlüsselwert ihrer Benutzer-ID entspricht. Diese `${www.amazon.com:user_id}`-ID ist eine Ersetzungsvariable. Weitere Informationen zu Ersetzungsvariablen finden Sie unter [Verwenden des Web-Identitätsverbunds](WIF.md).
+ `dynamodb:Attributes` – Dieser Bedingungsschlüssel begrenzt den Zugriff auf angegebene Attribute, sodass nur die Aktionen, die in der Berechtigungsrichtlinie aufgeführt sind, die Werte für diese Attribute zurückgeben können. Zusätzlich stellt die `StringEqualsIfExists`-Klausel sicher, dass die Anwendung immer eine Liste der spezifischen Attribute bereitstellen muss, nach denen gehandelt wird, und dass die Anwendung nicht alle Attribute anfordern kann.

Wenn eine IAM-Richtlinie evaluiert wird, wird das Ergebnis immer entweder True (Zugriff erlaubt) oder False (Zugriff verweigert) sein. Wenn irgendein Teil des `Condition`-Elements False ist, dann wird die gesamte Richtlinie als False gewertet und der Zugriff wird verweigert.

**Wichtig**  
Wenn Sie `dynamodb:Attributes` verwenden, müssen Sie die Namen aller Primärschlüssel und Indexschlüsselattribute für die Tabelle und alle sekundären Indizes, die in der Richtlinie aufgeführt sind, angeben. Andernfalls kann DynamoDB diese Schlüsselattribute nicht verwenden, um die angeforderte Aktion durchzuführen.

IAM-Richtliniendokumente können nur die folgenden Unicode-Zeichen enthalten: horizontale Tabulatorschritt (U\$10009), Zeilenvorschub (U\$1000A), Wagenrücklauf (U\$1000D) und Zeichen im Bereich von U\$10020 bis U\$100FF.

#### Beispiel 2: Erteilen Sie Berechtigungen, die den Zugriff auf Elemente mit einem bestimmten Partitionsschlüsselwert einschränken
<a name="FGAC_DDB.Examples.PartitionKeyValue"></a>

Die folgende Berechtigungsrichtlinie erteilt Berechtigungen, die eine Reihe von DynamoDB-Aktionen in der `GamesScore` Tabelle erlauben. Sie verwendet den `dynamodb:LeadingKeys`-Bedingungsschlüssel, um Benutzeraktionen nur für diejenigen Elemente einzuschränken, deren `UserID`-Partitions-Schlüsselwert der eindeutigen Benutzer-ID von „Login with Amazon“ für diese Anwendung entspricht.

**Wichtig**  
Die Liste von Aktionen schließt Berechtigungen für `Scan` nicht mit ein, weil `Scan` alle Elemente zurückgibt, unabhängig von den Hauptschlüsseln.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	                    
   "Statement":[
      {
         "Sid":"FullAccessToUserItems",
         "Effect":"Allow",
         "Action":[
            "dynamodb:GetItem",
            "dynamodb:BatchGetItem",
            "dynamodb:Query",
            "dynamodb:PutItem",
            "dynamodb:UpdateItem",
            "dynamodb:DeleteItem",
            "dynamodb:BatchWriteItem"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores"
         ],
         "Condition":{
            "ForAllValues:StringEquals":{
               "dynamodb:LeadingKeys":[
                  "${www.amazon.com:user_id}"
               ]
            }
         }
      }
   ]
}
```

------

**Anmerkung**  
Wenn Sie Richtlinienvariablen verwenden, müssen Sie Version 2012-10-17 in der Richtlinie explizit angeben. Die Standardversion der Zugriffsrichtliniensprache, 2008-10-17, unterstützt keine Richtlinienvariablen.

Um schreibgeschützten Zugriff zu implementieren, können Sie alle Aktionen entfernen, die die Daten ändern können. In der folgenden Richtlinie werden nur die Aktionen in die Bedingung integriert, die schreibgeschützten Zugriff erteilen.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	                    
   "Statement":[
      {
         "Sid":"ReadOnlyAccessToUserItems",
         "Effect":"Allow",
         "Action":[
            "dynamodb:GetItem",
            "dynamodb:BatchGetItem",
            "dynamodb:Query"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores"
         ],
         "Condition":{
            "ForAllValues:StringEquals":{
               "dynamodb:LeadingKeys":[
                  "${www.amazon.com:user_id}"
               ]
            }
         }
      }
   ]
}
```

------

**Wichtig**  
Wenn Sie `dynamodb:Attributes` verwenden, müssen Sie die Namen aller Primärschlüssel und Indexschlüsselattribute für die Tabelle und alle sekundären Indizes, die in der Richtlinie aufgeführt sind, angeben. Andernfalls kann DynamoDB diese Schlüsselattribute nicht verwenden, um die angeforderte Aktion durchzuführen.

#### Beispiel 3: Erteilen Sie Berechtigungen, die den Zugriff auf bestimmte Attribute in einer Tabelle einschränken
<a name="FGAC_DDB.Examples.SpecificAttributes"></a>

Die folgende Berechtigungsrichtlinie erlaubt den Zugriff auf nur zwei bestimmte Attribute in einer Tabelle, indem sie den `dynamodb:Attributes`-Bedingungsschlüssel hinzufügt. Diese Attribute können in einem bedingten Schreib- oder Scan-Filter gelesen, geschrieben oder evaluiert werden.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	                    
   "Statement":[
      {
         "Sid":"LimitAccessToSpecificAttributes",
         "Effect":"Allow",
         "Action":[
            "dynamodb:UpdateItem",
            "dynamodb:GetItem",
            "dynamodb:Query",
            "dynamodb:BatchGetItem",
            "dynamodb:Scan"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores"
         ],
         "Condition":{
            "ForAllValues:StringEquals":{
               "dynamodb:Attributes":[
                  "UserId",
                  "TopScore"
               ]
            },
            "StringEqualsIfExists":{
               "dynamodb:Select":"SPECIFIC_ATTRIBUTES",
               "dynamodb:ReturnValues":[
                  "NONE",
                  "UPDATED_OLD",
                  "UPDATED_NEW"
               ]
            }
         }
      }
   ]
}
```

------

**Anmerkung**  
Die Richtlinie verfolgt einen Listen-Ansatz, der den Zugriff auf eine benannte Gruppe von Attributen erteilt. Sie können eine äquivalente Richtlinie schreiben, die stattdessen den Zugriff auf andere Attribute verweigert. Wir empfehlen diesen Ansatz einer Ablehnungsliste nicht. Benutzer können die Namen dieser verweigerten Attribute bestimmen, indem sie dem Prinzip der geringsten Rechte folgen, wie es in Wikipedia unter http://en.wikipedia erklärt wird. org/wiki/Principle\$1of\$1least\$1privilege und verwenden einen Ansatz mit einer Zulassungsliste, um alle zulässigen Werte aufzuzählen, anstatt die verweigerten Attribute anzugeben.

Diese Richtlinie erlaubt `PutItem`, `DeleteItem` und `BatchWriteItem` nicht. Diese Aktionen ersetzen immer das gesamte vorherige Element. Dies würde Benutzern ermöglichen, die vorherigen Werte für Attribute, auf die sie nicht zugriffsberechtigt sind, zu löschen.

Die `StringEqualsIfExists`-Klausel in der Berechtigungsrichtlinie gewährleistet Folgendes:
+ Wenn der Benutzer den Parameter `Select` angibt, dann muss sein Wert `SPECIFIC_ATTRIBUTES` sein. Diese Anforderung verhindert, dass die API-Aktion jegliche Attribute, die nicht zulässig sind, zurückgibt, z. B. von einer Indexprojektion.
+ Wenn der Benutzer den Parameter `ReturnValues` angibt, dann muss sein Wert `NONE`, `UPDATED_OLD` oder `UPDATED_NEW` sein. Dies ist erforderlich, weil die `UpdateItem`-Aktion ebenfalls implizite Lesevorgänge durchführt, um zu überprüfen, ob ein zu ersetzendes Element existiert, und damit vorherige Attributwerte, wenn angefordert, zurückgegeben werden können. Eine solche Einschränkung von `ReturnValues` stellt sicher, dass Benutzer nur die zulässigen Attribute lesen oder schreiben können.
+ Die `StringEqualsIfExists`-Klausel gewährleistet, dass nur einer dieser Parameter – `Select` oder `ReturnValues` – pro Anforderung im Kontext der zulässigen Aktionen genutzt werden kann.

Es folgen einige Variationen dieser Richtlinie:
+ Um nur Leseaktionen zu erlauben, können Sie `UpdateItem` aus der Liste der zulässigen Aktionen entfernen. Da keine der verbleibenden Aktionen `ReturnValues` akzeptiert, können Sie `ReturnValues` aus der Bedingung entfernen. Sie können auch `StringEqualsIfExists` zu `StringEquals` ändern, weil der Parameter `Select` immer einen Wert hat (`ALL_ATTRIBUTES`, sofern nicht anders angegeben).
+ Um nur Leseaktionen zu erlauben, können Sie alles außer `UpdateItem` aus der Liste der zulässigen Aktionen entfernen. Da `UpdateItem` den Parameter `Select` nicht verwendet, können Sie `Select` aus der Bedingung entfernen. Sie müssen auch `StringEqualsIfExists` zu `StringEquals` ändern, weil der Parameter `ReturnValues` immer einen Wert hat (`NONE` sofern nicht anders angegeben).
+ Um alle Attribute zu erlauben, deren Name einem Muster entspricht, verwenden Sie `StringLike` anstatt `StringEquals` und verwenden Sie Platzhalter (\$1) für mehrere Zeichen.

#### Beispiel 4: Erteilen Sie Berechtigungen, um Aktualisierungen bestimmter Attribute zu verhindern
<a name="FGAC_DDB.Examples.PreventUpdates"></a>

Die folgende Berechtigungsrichtlinie beschränkt den Benutzerzugriff, so dass nur die Aktualisierung bestimmter Attribute zulässig ist, die von dem `dynamodb:Attributes`-Bedingungsschlüssel identifiziert wurden. Die `StringNotLike`-Bedingung hindert eine Anwendung daran, die Attribute zu aktualisieren, die mithilfe des `dynamodb:Attributes`-Bedingungsschlüssels angegeben wurden.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	                    
   "Statement":[
      {
         "Sid":"PreventUpdatesOnCertainAttributes",
         "Effect":"Allow",
         "Action":[
            "dynamodb:UpdateItem"
         ],
         "Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/GameScores",
         "Condition":{
            "ForAllValues:StringNotLike":{
               "dynamodb:Attributes":[
                  "FreeGamesAvailable",
                  "BossLevelUnlocked"
               ]
            },
            "StringEqualsIfExists":{
               "dynamodb:Select":"SPECIFIC_ATTRIBUTES",
               "dynamodb:ReturnValues":[
                  "NONE",
                  "UPDATED_OLD",
                  "UPDATED_NEW"
               ]
            }
         }
      }
   ]
}
```

------

Beachten Sie Folgendes:
+ Die `UpdateItem`-Aktion benötigt, wie andere Schreibaktionen, Lesezugriff auf die Elemente, damit sie Werte vor und nach dem Aktualisieren zurückgeben kann. In der Richtlinie beschränken Sie die Aktionen, so dass nur auf Attribute zugegriffen werden kann, die für eine Aktualisierung zulässig sind, indem der `dynamodb:ReturnValues`-Bedingungsschlüssel angegeben wird. Der Bedingungsschlüssel beschränkt `ReturnValues` in der Anforderung auf das Angeben von `NONE`, `UPDATED_OLD` oder `UPDATED_NEW` und schließt `ALL_OLD` oder `ALL_NEW` nicht mit ein.
+ Der `StringEqualsIfExists` Operator stellt sicher, dass, falls `dynamodb:Select` oder in der Anfrage vorhanden `dynamodb:ReturnValues` ist, diese den angegebenen Werten entsprechen muss. Dadurch wird verhindert, dass Operationen vollständige Elemente zurückgeben.
+ Wenn Sie die Aktualisierung von Attributen einschränken, sollten Sie auch kontrollieren, welche Daten zurückgegeben werden können, um die Offenlegung von Informationen über geschützte Attribute zu verhindern.
+ Die `PutItem`- und `DeleteItem`-Aktionen ersetzen ein gesamtes Element und erlauben daher Anwendungen, beliebige Attribute zu ändern. Wenn Sie also eine Anwendung darauf beschränken, nur bestimmte Attribute zu aktualisieren, sollten Sie für diese APIs keine Genehmigung erteilen.

#### Beispiel 5: Erteilen Sie Berechtigungen, um nur projizierte Attribute in einem Index abzufragen
<a name="FGAC_DDB.Examples.QueryProjectedAttributes"></a>

Die folgende Berechtigungsrichtlinie erlaubt Abfragen über einen sekundären Index (`TopScoreDateTimeIndex`), indem der `dynamodb:Attributes`-Bedingungsschlüssel verwendet wird. Die Richtlinie beschränkt auch Abfragen auf das Anfordern nur bestimmter Attribute, die in den Index projiziert wurden.

Um eine Anwendung aufzufordern, eine Liste von Attributen in der Abfrage anzugeben, gibt die Richtlinie auch den Bedingungsschlüssel `dynamodb:Select` an, um sicherzustellen, dass der Parameter `Select` der `Query`-DynamoDB-Aktion `SPECIFIC_ATTRIBUTES` lautet. Die Liste von Attributen ist auf eine spezifische Liste beschränkt, die mithilfe des `dynamodb:Attributes`-Bedingungsschlüssels bereitgestellt wird.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	                    
   "Statement":[
      {
         "Sid":"QueryOnlyProjectedIndexAttributes",
         "Effect":"Allow",
         "Action":[
            "dynamodb:Query"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/TopScoreDateTimeIndex"
         ],
         "Condition":{
            "ForAllValues:StringEquals":{
               "dynamodb:Attributes":[
                  "TopScoreDateTime",
                  "GameTitle",
                  "Wins",
                  "Losses",
                  "Attempts"
               ]
            },
            "StringEquals":{
               "dynamodb:Select":"SPECIFIC_ATTRIBUTES"
            }
         }
      }
   ]
}
```

------

Die folgende Berechtigungsrichtlinie ist ähnlich, aber die Abfrage muss alle Attribute anfordern, die in den Index projiziert wurden.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	                    
   "Statement":[
      {
         "Sid":"QueryAllIndexAttributes",
         "Effect":"Allow",
         "Action":[
            "dynamodb:Query"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/TopScoreDateTimeIndex"
         ],
         "Condition":{
            "StringEquals":{
               "dynamodb:Select":"ALL_PROJECTED_ATTRIBUTES"
            }
         }
      }
   ]
}
```

------

#### Beispiel 6: Erteilen Sie Berechtigungen, um den Zugriff auf bestimmte Attribute und Partitionsschlüsselwerte einzuschränken
<a name="FGAC_DDB.Examples.AttributesAndKeyValues"></a>

Die folgende Berechtigungsrichtlinie erlaubt bestimmte DynamoDB-Aktionen in einer Tabelle (angegeben im Element `Action`) und einem Tabellenindex (angegeben im Element `Resource`). Die Richtlinie verwendet den `dynamodb:LeadingKeys` Bedingungsschlüssel, um Berechtigungen nur auf die Elemente zu beschränken, deren Partitionsschlüsselwert mit der Facebook-ID des Benutzers übereinstimmt.

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	                    
   "Statement":[
      {
         "Sid":"LimitAccessToCertainAttributesAndKeyValues",
         "Effect":"Allow",
         "Action":[
            "dynamodb:UpdateItem",
            "dynamodb:GetItem",
            "dynamodb:Query",
            "dynamodb:BatchGetItem"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores",
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores/index/TopScoreDateTimeIndex"
         ],
         "Condition":{
            "ForAllValues:StringEquals":{
               "dynamodb:LeadingKeys":[
                  "${graph.facebook.com:id}"
               ],
               "dynamodb:Attributes":[
                  "attribute-A",
                  "attribute-B"
               ]
            },
            "StringEqualsIfExists":{
               "dynamodb:Select":"SPECIFIC_ATTRIBUTES",
               "dynamodb:ReturnValues":[
                  "NONE",
                  "UPDATED_OLD",
                  "UPDATED_NEW"
               ]
            }
         }
      }
   ]
}
```

------

Beachten Sie Folgendes:
+ Durch die Richtlinie (`UpdateItem`) zulässige Schreibaktionen können nur Attribut-A oder Attribut-B geändert werden.
+ Da die Richtlinie `UpdateItem` zulässt, kann eine Anwendung neue Elemente einfügen und die ausgeblendeten Attribute sind in den neuen Elementen dann Null. Wenn diese Attribute in `TopScoreDateTimeIndex` projiziert werden, bietet die Richtlinie den zusätzlichen Vorteil, dass Abfragen verhindert werden, die Abrufe aus der Tabelle verursachen.
+ Anwendungen können nur die in `dynamodb:Attributes` aufgeführten Attribute lesen. Mit dieser vorhandenen Richtlinie muss eine Anwendung den Parameter `Select` auf `SPECIFIC_ATTRIBUTES` in Leseanforderungen festlegen und es können nur Listenattribute angefordert werden. Die Anwendung kann bei Schreibanforderungen `ReturnValues` nicht auf `ALL_OLD` oder `ALL_NEW` festlegen und sie kann keine bedingten Schreibvorgänge basierend auf beliebigen anderen Attributen durchführen.

#### Beispiel 7: Verweigern Sie Berechtigungen, um den Zugriff auf bestimmte Attribute in einer Tabelle zu beschränken
<a name="FGAC_DDB.Examples.DenySpecificAttributes"></a>

Die folgende Richtlinie verweigert den Zugriff auf vertrauliche Attribute und stellt sicher, dass diese Einschränkung nicht durch das Auslassen eines Projektionsausdrucks umgangen werden kann. Sie ermöglicht den allgemeinen Zugriff auf die `CustomerData` Tabelle und verweigert gleichzeitig ausdrücklich den Zugriff auf Attribute. `SSN` `CreditCardNumber`

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Effect":"Allow",
         "Action":[
            "dynamodb:GetItem",
            "dynamodb:Query",
            "dynamodb:Scan"
         ],
         "Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/CustomerData"
      },
      {
         "Effect":"Deny",
         "Action":[
            "dynamodb:GetItem",
            "dynamodb:Query",
            "dynamodb:Scan"
         ],
         "Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/CustomerData",
         "Condition":{
            "ForAnyValue:StringEquals":{
               "dynamodb:Attributes":[
                  "SSN",
                  "CreditCardNumber"
               ]
            }
         }
      },
      {
         "Effect":"Deny",
         "Action":[
            "dynamodb:GetItem",
            "dynamodb:Query",
            "dynamodb:Scan"
         ],
         "Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/CustomerData",
         "Condition":{
            "StringNotEqualsIfExists":{
               "dynamodb:Select":"SPECIFIC_ATTRIBUTES"
            }
         }
      }
   ]
}
```

------

## Verwandte Themen
<a name="w2aac39c21c15c11"></a>
+  [Identity and Access Management für Amazon DynamoDB](security-iam.md) 
+ [DynamoDB-API-Berechtigungen: Referenzliste für Aktionen, Ressourcen und Bedingungen](api-permissions-reference.md)

# Verwenden des Web-Identitätsverbunds
<a name="WIF"></a>

Wenn Sie eine Anwendung schreiben, die für eine große Anzahl von Benutzern bestimmt ist, können Sie optional den *Web-Identitätsverbund* für die Authentifizierung und Autorisierung verwenden. Mit dem Web-Identitätsverbund ist es nicht mehr erforderlich, einzelne -Benutzer zu erstellen. Stattdessen können sich Benutzer bei einem Identitätsanbieter anmelden und dann temporäre Sicherheitsanmeldedaten von AWS -Security-Token-Service (AWS STS) abrufen. Die App kann diese Anmeldeinformationen dann verwenden, um auf AWS Dienste zuzugreifen.

Ein Web-Identitätsverbund unterstützt die folgenden Identitätsanbieter:
+ Login with Amazon
+ Facebook
+ Google

## Weitere Ressourcen für den Web-Identitätsverbund
<a name="WIF.AdditionalResources"></a>

Die folgenden Ressourcen können Ihnen dabei helfen, mehr über den Web-Identitätsverbund zu erfahren:
+ Der Post [Web Identity Federation verwendet AWS SDK für .NET](https://aws.amazon.com/blogs/developer/web-identity-federation-using-the-aws-sdk-for-net) im AWS Entwicklerblog um zu erläutern, wie der Web-Identitätsverbund mit Facebook verwendet wird. Sie enthält Codefragmente in C\$1, die zeigen, wie eine IAM-Rolle mit Webidentität übernommen wird und wie temporäre Sicherheitsanmeldedaten für den Zugriff auf eine Ressource verwendet werden. AWS 
+ Die [AWS Mobile SDK for iOS](https://aws.amazon.com/sdkforios/) und die [AWS Mobile SDK für Android](https://aws.amazon.com/sdkforandroid/) enthalten Beispiel-Apps. Sie enthalten Code, der zeigt, wie die Identitätsanbieter aufgerufen werden und wie dann die Informationen von diesen Anbietern verwendet werden, um temporäre Sicherheitsanmeldeinformationen zu beziehen und zu nutzen.
+ Der Artikel [Web Identity Federation with Mobile Applications](https://aws.amazon.com/articles/4617974389850313) behandelt den Web-Identitätsverbund und zeigt ein Beispiel dafür, wie der Web-Identitätsverbund für den Zugriff auf eine Ressource verwendet werden kann. AWS 

## Beispielrichtlinie für einen Web-Identitätsverbund
<a name="WIF.Example"></a>

Um zu zeigen, wie Sie den Web-Identitätsverbund mit DynamoDB verwenden können, schauen Sie sich noch einmal die *GameScores*Tabelle an, die in eingeführt wurde. [Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle](specifying-conditions.md) Hier ist der Primärschlüssel für. *GameScores*


****  

| Tabellenname | Primärschlüsseltyp | Partitions-Schlüsselname und -Typ | Sortierschlüsselname und -Typ | 
| --- | --- | --- | --- | 
| GameScores (UserId, GameTitle, ...) | Zusammengesetzt | Name des Attributs: UserId Typ: Zeichenfolge | Name des Attributs: GameTitle Typ: Zeichenfolge | 

Angenommen, dass eine mobile Spielanwendung diese Tabelle verwendet und diese Anwendung Tausenden oder sogar Millionen von Benutzern unterstützen muss. Bei dieser Größenordnung wird es sehr schwierig, einzelne App-Benutzer zu verwalten und sicherzustellen, dass jeder Benutzer nur auf seine eigenen Daten in der *GameScores*Tabelle zugreifen kann. Glücklicherweise verfügen viele Benutzer bereits über Konten bei einem externen Identitätsanbieter wie Facebook, Google oder Login with Amazon. So ist es durchaus sinnvoll, einen dieser Anbieter für die Authentifizierungsaufgaben zu nutzen.

Um dies mit dem Web-Identitätsverbund durchzuführen, muss der Anwendungsentwickler die Anwendung bei einem Identitätsanbieter (wie Login with Amazon) registrieren und eine eindeutige Anwendungs-ID erhalten. Als nächstes muss der Entwickler eine IAM-Rolle erstellen. (In diesem Beispiel ist diese Rolle benannt *GameRole*.) An die Rolle muss ein IAM-Richtliniendokument angehängt sein, in dem die Bedingungen angegeben sind, unter denen die App auf die *GameScores*Tabelle zugreifen kann.

Wenn ein Benutzer ein Spiel spielen möchte, meldet er sich mit seinem „Login with Amazon“-Konto bei der Spielanwendung an. Die App ruft dann AWS -Security-Token-Service (AWS STS) auf, gibt das Login mit der Amazon-App-ID an und fordert die Mitgliedschaft bei an *GameRole*. AWS STS gibt temporäre AWS Anmeldeinformationen an die App zurück und ermöglicht ihr, vorbehaltlich des *GameRole*Richtliniendokuments, den Zugriff auf die *GameScores*Tabelle.

Das folgende Diagramm zeigt, wie diese einzelnen Komponenten zusammenpassen.

![\[Workflow einer Gaming-App. Die App verwendet Amazon ID und AWS STS um temporäre Anmeldeinformationen für den Zugriff auf eine DynamoDB-Tabelle zu erhalten.\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/wif-overview.png)


**Übersicht eines Web-Identitätsverbunds**

1. Die Anwendung ruft einen externen Identitätsanbieter auf, um den Benutzer und die Anwendung zu authentifizieren. Der Identitätsanbieter gibt ein Web-Identitäts-Token an die Anwendung zurück.

1. Die App ruft das Web-Identity-Token auf AWS STS und übergibt es als Eingabe. AWS STS autorisiert die App und gibt ihr temporäre AWS Zugangsdaten. Die App darf gemäß der Sicherheitsrichtlinie der Rolle eine IAM-Rolle (*GameRole*) annehmen und auf AWS Ressourcen zugreifen.

1. Die App ruft DynamoDB auf, um auf die *GameScores*Tabelle zuzugreifen. Da sie das übernommen hat *GameRole*, unterliegt die App den Sicherheitsrichtlinien, die mit dieser Rolle verknüpft sind. Das Richtliniendokument verhindert, dass die Anwendung auf Daten zugreift, die dem Benutzer nicht gehören.

Hier ist noch einmal die Sicherheitsrichtlinie dafür *GameRole*, die gezeigt wurde in[Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle](specifying-conditions.md):

------
#### [ JSON ]

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowAccessToOnlyItemsMatchingUserID",
         "Effect":"Allow",
         "Action":[
            "dynamodb:GetItem",
            "dynamodb:BatchGetItem",
            "dynamodb:Query",
            "dynamodb:PutItem",
            "dynamodb:UpdateItem",
            "dynamodb:DeleteItem",
            "dynamodb:BatchWriteItem"
         ],
         "Resource":[
            "arn:aws:dynamodb:us-west-2:123456789012:table/GameScores"
         ],
         "Condition":{
            "ForAllValues:StringEquals":{
               "dynamodb:LeadingKeys":[
                  "${www.amazon.com:user_id}"
               ],
               "dynamodb:Attributes":[
                  "UserId",
                  "GameTitle",
                  "Wins",
                  "Losses",
                  "TopScore",
                  "TopScoreDateTime"
               ]
            },
            "StringEqualsIfExists":{
               "dynamodb:Select":"SPECIFIC_ATTRIBUTES"
            }
         }
      }
   ]
}
```

------

Die `Condition` Klausel bestimmt, welche Elemente in der App sichtbar *GameScores*sind. Dies geschieht durch das Vergleichen von Login with Amazon mit den `UserId`-Partitions-Schlüsselwerten in `GameScores`. Nur die Elemente des aktuellen Benutzers können verarbeitet werden, indem Sie eine der DynamoDB-Aktionen verwenden, die in dieser Richtlinie aufgeführt sind. Auf andere Elemente in der Tabelle kann nicht zugegriffen werden. Außerdem kann nur auf die spezifischen Attribute, die in der Richtlinie aufgeführt sind, zugegriffen werden.

# Vorbereiten der Nutzung des Web-Identitätsverbunds
<a name="WIF.PreparingForUse"></a>

Wenn Sie ein Anwendungsentwickler sind und den Web-Identitätsverbund für Ihre Anwendung verwenden möchten, führen Sie die folgenden Schritte aus:

1. **Anmelden als Entwickler bei einem externen Identitätsanbieter.** Die folgenden externen Links stellen Informationen zur Anmeldung mit unterstützten Identitätsanbietern bereit:
   + [Login with Amazon-Entwicklerzentrum](http://login.amazon.com/)
   + [Registrierung](https://business.facebook.com/business/loginpage) auf der Facebook-Seite
   + [Verwenden von OAuth 2.0 für den Zugriff APIs auf Google](https://developers.google.com/accounts/docs/OAuth2) auf der Google-Website

1. **Registrieren der Anwendung bei dem Identitätsanbieter.** Wenn Sie dies tun, stellt der Anbieter Ihnen eine ID zur Verfügung, die in Ihrer Anwendung eindeutig ist. Wenn Sie möchten, dass Ihre Anwendung mit mehreren Identitätsanbietern arbeitet, müssen Sie eine Anwendungs-ID von jedem einzelnen Anbieter abrufen.

1. **Erstellen Sie eine oder mehrere IAM-Rollen. **Sie benötigen eine Rolle für jeden Identitätsanbieter für jede Anwendung. Sie können beispielsweise eine Rolle erstellen, die von einer Anwendung übernommen werden kann, in der der Benutzer sich mit Login with Amazon angemeldet hat, eine zweite Rolle für die gleiche Anwendung, in der der Benutzer sich mit Facebook angemeldet hat und eine dritte Rolle für die Anwendung, in der sich der Benutzer mit Google angemeldet hat.

   Im Rahmen des Rollenerstellungsprozesses, müssen Sie eine IAM-Richtlinie der Rolle zuordnen. Ihr Richtliniendokument sollte die DynamoDB-Ressourcen, die für Ihre Anwendung erforderlich sind, und die Berechtigungen für den Zugriff auf diese Ressourcen definieren.

Weitere Informationen finden Sie unter [Informationen zum Web-Identitätsverbund](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html) im *IAM-Benutzerhandbuch*. 

**Anmerkung**  
Als Alternative können Sie Amazon Cognito verwenden. AWS -Security-Token-Service Amazon Cognito ist der bevorzugte Service für die Verwaltung von temporären Anmeldeinformationen für mobile Anwendungen. Weitere Informationen finden Sie unter [Abrufen von Anmeldeinformationen](https://docs.aws.amazon.com/cognito/latest/developerguide/getting-credentials.html) im *Entwicklerhandbuch zu Amazon Cognito*. 

## Generieren einer IAM-Richtlinie mit der DynamoDB-Konsole
<a name="WIF.PreparingForUse.DDBConsole"></a>

Die DynamoDB-Konsole kann Ihnen helfen, eine IAM-Richtlinie für die Verwendung mit dem Web-Identitätsverbund zu erstellen. Dazu wählen Sie eine DynamoDB-Tabelle aus und geben den Identitätsanbieter, Aktionen und Attribute an, die in der Richtlinie enthalten sein sollen. Die DynamoDB-Konsole erstellt dann eine Richtlinie, die Sie einer IAM-Rolle zuordnen können.

1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1.  Wählen Sie im Navigationsbereich **Tables** (Tabellen) aus. 

1.  Wählen Sie in der Liste der Tabellen die Tabelle aus, für die Sie die IAM-Richtlinie erstellen möchten. 

1.  Wählen Sie die Schaltfläche **Aktionen** und **Zugriffskontrollrichtlinie erstellen** aus. 

1.  Wählen Sie den Identitätsanbieter, Aktionen und Attribute für die Richtlinie aus. 

    Wenn Sie die gewünschten Einstellungen vorgenommen haben, wählen Sie **Richtlinie generieren** aus. Die erstellte Richtlinie wird angezeigt. 

1.  Wählen Sie auf **Dokumentation anzeigen** aus und befolgen Sie die erforderlichen Schritte, um die generierte Richtlinie einer IAM-Rolle zuzuordnen. 

# Schreiben Ihrer Anwendung, um den Web-Identitätsverbund zu nutzen
<a name="WIF.RunningYourApp"></a>

Um den Web-Identitätsverbund zu verwenden, muss die Anwendung die IAM-Rolle übernehmen, die Sie erstellt haben. Von diesem Punkt an berücksichtigt die Anwendung die Zugriffsrichtlinie, die mit der Rolle verknüpft ist.

Wenn Ihre Anwendung den Web-Identitätsverbund zur Laufzeit nutzt, muss sie die folgenden Schritte befolgen:

1. **Authentifizieren mit einem externen Identitätsanbieter.** Ihre Anwendung muss den Identitätsanbieter mithilfe der Schnittstelle, die er bereitstellt, aufrufen. Die genaue Art und Weise, wie Sie den Benutzer authentifizieren, hängt von dem Anbieter und der Plattform ab, auf der Sie die Anwendung ausführen. Wenn der Benutzer nicht bereits angemeldet ist, kümmert sich der Identitätsanbieter in der Regel um die Anzeige einer Anmeldeseite dieses Anbieters.

   Nachdem der Identitätsanbieter den Benutzer authentifiziert hat, gibt der Anbieter ein Web-Identitäts-Token an Ihre Anwendung zurück. Das Format dieses Tokens hängt von dem Anbieter ab, ist in der Regel aber eine sehr lange Zeichenfolge.

1. **Besorgen Sie sich temporäre AWS Sicherheitsanmeldeinformationen.** Zu diesem Zweck sendet die App eine `AssumeRoleWithWebIdentity`-Anforderung an AWS -Security-Token-Service (AWS STS). Diese Anforderung enthält Folgendes:
   + Das Web-Identitäts-Token aus dem vorherigen Schritt
   + Die Anwendungs-ID des Identitätsanbieters
   + Der Amazon-Ressourcenname (ARN) der IAM;-Rolle, die Sie für diesen Identitätsanbieter für diese Anwendung erstellt haben

   AWS STS gibt eine Reihe von AWS Sicherheitsanmeldeinformationen zurück, die nach einer bestimmten Zeit ablaufen (standardmäßig 3.600 Sekunden).

   Das Folgende ist eine Beispielanforderung und -antwort von einer `AssumeRoleWithWebIdentity`-Aktion in AWS STS. Das Web-Identitäts-Token wurde von dem „Login with Amazon“-Identitätsanbieter erhalten.

   ```
   GET / HTTP/1.1
   Host: sts.amazonaws.com
   Content-Type: application/json; charset=utf-8
   URL: https://sts.amazonaws.com/?ProviderId=www.amazon.com
   &DurationSeconds=900&Action=AssumeRoleWithWebIdentity
   &Version=2011-06-15&RoleSessionName=web-identity-federation
   &RoleArn=arn:aws:iam::123456789012:role/GameRole
   &WebIdentityToken=Atza|IQEBLjAsAhQluyKqyBiYZ8-kclvGTYM81e...(remaining characters omitted)
   ```

   

   ```
   <AssumeRoleWithWebIdentityResponse
     xmlns="https://sts.amazonaws.com/doc/2011-06-15/">
     <AssumeRoleWithWebIdentityResult>
       <SubjectFromWebIdentityToken>amzn1.account.AGJZDKHJKAUUSW6C44CHPEXAMPLE</SubjectFromWebIdentityToken>
       <Credentials>
         <SessionToken>AQoDYXdzEMf//////////wEa8AP6nNDwcSLnf+cHupC...(remaining characters omitted)</SessionToken>
         <SecretAccessKey>8Jhi60+EWUUbbUShTEsjTxqQtM8UKvsM6XAjdA==</SecretAccessKey>
         <Expiration>2013-10-01T22:14:35Z</Expiration>
         <AccessKeyId>06198791C436IEXAMPLE</AccessKeyId>
       </Credentials>
       <AssumedRoleUser>
         <Arn>arn:aws:sts::123456789012:assumed-role/GameRole/web-identity-federation</Arn>
         <AssumedRoleId>AROAJU4SA2VW5SZRF2YMG:web-identity-federation</AssumedRoleId>
       </AssumedRoleUser>
     </AssumeRoleWithWebIdentityResult>
     <ResponseMetadata>
       <RequestId>c265ac8e-2ae4-11e3-8775-6969323a932d</RequestId>
     </ResponseMetadata>
   </AssumeRoleWithWebIdentityResponse>
   ```

1. **Auf AWS Ressourcen zugreifen.** Die Antwort von AWS STS enthält Informationen, die die Anwendung benötigt, um auf DynamoDB-Ressourcen zuzugreifen:
   + Die Felder `AccessKeyID`-, `SecretAccessKey`- und `SessionToken` beinhalten Sicherheitsanmeldeinformationen, die nur für diesen Benutzer und diese Anwendung gültig sind. 
   + Das `Expiration`-Feld gibt die Frist für diese Anmeldeinformationen an, nach der sie nicht mehr gültig sind.
   + Das `AssumedRoleId`-Feld enthält den Namen einer sitzungsspezifischen IAM-Rolle, der von der Anwendung übernommen wurde. Die Anwendung berücksichtigt die Zugriffskontrollen im IAM–Richtliniendokument für die Dauer dieser Sitzung.
   + Das `SubjectFromWebIdentityToken`-Feld enthält die eindeutige ID, die in einer IAM-Richtlinienvariablen für diesen bestimmten Identitätsanbieter erscheint. Die Folgenden sind die IAM-Richtlinienvariablen für unterstützte Anbieter und einige Beispielwerte für diese:  
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/WIF.RunningYourApp.html)

Beispiele für IAM-Richtlinien, in denen diese Richtlinienvariablen verwendet werden, finden Sie unter [Beispielrichtlinien: Verwenden von Bedingungen für die differenzierte Zugriffskontrolle](specifying-conditions.md#FGAC_DDB.Examples).

Weitere Informationen zur AWS STS Generierung temporärer Zugangsdaten finden Sie unter [Temporäre Sicherheitsanmeldedaten anfordern](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html) im *IAM-Benutzerhandbuch*.

# DynamoDB-API-Berechtigungen: Referenzliste für Aktionen, Ressourcen und Bedingungen
<a name="api-permissions-reference"></a>

[Identity and Access Management für Amazon DynamoDB](security-iam.md)Wenn Sie eine Berechtigungsrichtlinie für eine IAM-Identität (identitätsbasierte Richtlinie) verfassen, können Sie die Liste von [Aktionen, Ressourcen und Bedingungsschlüssel für Amazon DynamoDB](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazondynamodb.html) im *IAM-Benutzerhandbuch*-Referenz verwenden. Auf der Seite werden alle DynamoDB-API-Operationen, die entsprechenden Aktionen, für die Sie Berechtigungen zur Ausführung der Aktion erteilen können, und die AWS Ressource, für die Sie die Berechtigungen erteilen können, aufgeführt. Die Aktionen geben Sie im Feld `Action` und den Wert für die Ressource im Feld `Resource` der Richtlinie an.

Sie können in Ihren DynamoDB-Richtlinien AWS-weite Bedingungsschlüssel verwenden, um Bedingungen auszudrücken. *Eine vollständige Liste der AWS-weiten Schlüssel finden Sie in der [Referenz zu den IAM-JSON-Richtlinienelementen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys) im IAM-Benutzerhandbuch.*

Zusätzlich zu den AWS-weiten Bedingungsschlüsseln verfügt DynamoDB über eigene spezifische Schlüssel, die Sie in Bedingungen verwenden können. Weitere Informationen finden Sie unter [Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle](specifying-conditions.md).

## Verwandte Themen
<a name="w2aac39c21c15c15b9"></a>
+  [Identity and Access Management für Amazon DynamoDB](security-iam.md)
+ [Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle](specifying-conditions.md)

# Compliance-Validierung nach Branche für DynamoDB
<a name="Compliance"></a>

Informationen darüber, ob AWS-Service ein [AWS-Services in den Geltungsbereich bestimmter Compliance-Programme fällt, finden Sie unter Umfang nach Compliance-Programm AWS-Services unter](https://aws.amazon.com/compliance/services-in-scope/) . Wählen Sie dort das Compliance-Programm aus, an dem Sie interessiert sind. Allgemeine Informationen finden Sie unter [AWS Compliance-Programme AWS](https://aws.amazon.com/compliance/programs/) .

Sie können Prüfberichte von Drittanbietern unter herunterladen AWS Artifact. Weitere Informationen finden Sie unter [Berichte herunterladen unter ](https://docs.aws.amazon.com/artifact/latest/ug/downloading-documents.html).

Ihre Verantwortung für die Einhaltung der Vorschriften bei der Nutzung AWS-Services hängt von der Vertraulichkeit Ihrer Daten, den Compliance-Zielen Ihres Unternehmens und den geltenden Gesetzen und Vorschriften ab. Weitere Informationen zu Ihrer Verantwortung für die Einhaltung der Vorschriften bei der Nutzung AWS-Services finden Sie in der [AWS Sicherheitsdokumentation](https://docs.aws.amazon.com/security/).

# Ausfallsicherheit und Notfallwiederherstellung in Amazon DynamoDB
<a name="disaster-recovery-resiliency"></a>

Die AWS globale Infrastruktur basiert auf AWS Regionen und Availability Zones. AWS Regionen bieten mehrere physisch getrennte und isolierte Availability Zones, die über Netzwerke mit niedriger Latenz, hohem Durchsatz und hoher Redundanz miteinander verbunden sind. Mithilfe von Availability Zones können Sie Anwendungen und Datenbanken erstellen und ausführen, die automatisch Failover zwischen Availability Zones ausführen, ohne dass es zu Unterbrechungen kommt. Availability Zones sind besser hoch verfügbar, fehlertoleranter und skalierbarer als herkömmliche Infrastrukturen mit einem oder mehreren Rechenzentren. 

Falls Sie Ihre Daten oder Anwendungen über größere geografische Distanzen hinweg replizieren müssen, verwenden Sie lokale AWS -Regionen. Eine AWS lokale Region ist ein einzelnes Rechenzentrum, das eine bestehende AWS Region ergänzen soll. Wie alle AWS Regionen sind AWS lokale Regionen vollständig von anderen AWS Regionen isoliert.

Weitere Informationen zu AWS Regionen und Availability Zones finden Sie unter [AWS Globale Infrastruktur](https://aws.amazon.com/about-aws/global-infrastructure/).

Amazon DynamoDB repliziert Ihre Daten automatisch in drei Availability Zones in einer Region und bietet so eine integrierte hohe Beständigkeit und ein SLA mit einer Verfügbarkeit von 99,99%. Darüber hinaus bietet DynamoDB mehrere Funktionen, mit denen Sie Ihre Anforderungen an Datenstabilität und Backup erfüllen können.

**On-Demand-Backup und Wiederherstellung**  
DynamoDB bietet On-Demand-Sicherungsfunktionen. Es ermöglicht Ihnen, vollständige Sicherungen Ihrer Tabellen für die langfristige Aufbewahrung und Archivierung zu erstellen. Weitere Informationen finden Sie unter [On-Demand-Backup und Wiederherstellung für DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Backup-and-Restore.html).

**Point-in-time Wiederherstellung**  
Point-in-time Recovery schützt Ihre DynamoDB-Tabellen vor versehentlichen Schreib- oder Löschvorgängen. Mit der zeitpunktbezogenen Wiederherstellung müssen Sie sich keine Gedanken über das Erstellen, Warten oder Planen von On-Demand-Backups machen. Weitere Informationen finden Sie unter [Point-in-time Recovery for DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Point-in-time-recovery.html).

**Globale Tabellen, die über  AWS -Regionen hinweg synchronisiert werden**  
DynamoDB verteilt die Daten und den Datenverkehr für Ihre Tabellen automatisch auf eine ausreichende Anzahl von Servern entsprechend Ihren Anforderungen an Durchsatz und Speicherung. Außerdem ist für eine konsistente und schnelle Leistung gesorgt. Alle Ihre Daten werden auf Solid-State-Festplatten (SSDs) gespeichert und automatisch über mehrere Availability Zones in einer AWS Region repliziert, wodurch eine integrierte Hochverfügbarkeit und Datenbeständigkeit gewährleistet wird. Sie können globale Tabellen verwenden, um DynamoDB-Tabellen regionsübergreifend AWS zu synchronisieren.

# Infrastruktursicherheit in Amazon DynamoDB
<a name="network-isolation"></a>

Als verwalteter Service ist Amazon DynamoDB durch die AWS globalen Netzwerksicherheitsverfahren geschützt, die unter [Infrastrukturschutz im AWS Well-Architected](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/infrastructure-protection.html) Framework beschrieben sind.

Sie verwenden AWS veröffentlichte API-Aufrufe, um über das Netzwerk auf DynamoDB zuzugreifen. Clients können TLS (Transport Layer Security) Version 1.2 oder 1.3 verwenden. Clients müssen außerdem Cipher Suites mit PFS (Perfect Forward Secrecy) wie DHE (Ephemeral Diffie-Hellman) oder ECDHE (Elliptic Curve Ephemeral Diffie-Hellman) unterstützen. Die meisten modernen Systeme wie Java 7 und höher unterstützen diese Modi. Außerdem müssen Anforderungen mit einer Zugriffsschlüssel-ID und einem geheimen Zugriffsschlüssel signiert sein, der einem IAM-Prinzipal zugeordnet ist. Alternativ können Sie mit [AWS -Security-Token-Service](https://docs.aws.amazon.com/STS/latest/APIReference/Welcome.html) (AWS STS) temporäre Sicherheitsanmeldeinformationen erstellen, um die Anforderungen zu signieren.

 Sie können auch einen VPC-Endpunkt (Virtual Private Cloud) für DynamoDB verwenden, um Amazon-EC2-Instances in Ihrer VPC die Verwendung privater IP-Adressen für den Zugriff auf DynamoDB zu ermöglichen, sodass sie nicht im öffentlichen Internet verfügbar sind. Weitere Informationen finden Sie unter [Verwenden von Amazon-VPC-Endpunkten für den Zugriff auf DynamoDB](#vpc-endpoints-dynamodb). 

## Verwenden von Amazon-VPC-Endpunkten für den Zugriff auf DynamoDB
<a name="vpc-endpoints-dynamodb"></a>

Aus Sicherheitsgründen führen viele AWS Kunden ihre Anwendungen in einer Amazon Virtual Private Cloud Cloud-Umgebung (Amazon VPC) aus. Mit Amazon VPC können Sie Amazon-EC2-Instances in einer Virtual Private Cloud starten, die von anderen Netzwerken logisch isoliert ist – einschließlich des öffentlichen Internets. Mit einer Amazon VPC können Sie den zugehörigen IP-Adressbereich, die Subnetze, Routing-Tabellen, Netzwerk-Gateways und Sicherheitseinstellungen steuern.

**Anmerkung**  
Wenn Sie Ihre AWS-Konto nach dem 4. Dezember 2013 erstellt haben, haben Sie in jeder AWS-Region bereits eine Standard-VPC. Eine Standard-VPC ist sofort einsatzbereit - Sie können Ihre Standard-VPC umgehend einsetzen, ohne weitere Konfigurationsschritte ausführen zu müssen.  
Weitere Informationen finden Sie unter [Standard-VPC und Standard-Subnetze](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html) im *Amazon-VPC-Benutzerhandbuch*.

Um auf das öffentliche Internet zuzugreifen, muss Ihre VPC über ein Internet-Gateway verfügen, einen virtuellen Router, der Ihr VPC mit dem Internet verbindet. Auf diese Weise können Anwendungen, die in Ihrem VPC in Amazon EC2 ausgeführt werden, auf Internetressourcen wie Amazon DynamoDB zugreifen.

Standardmäßig wird für die Kommunikation zu und von DynamoDB das HTTPS-Protokoll verwendet, das den Netzwerkverkehr durch Verschlüsselung SSL/TLS schützt. Das folgende Diagramm zeigt eine Amazon-EC2-Instance in einer VPC, die auf DynamoDB zugreift, indem DynamoDB ein Internet-Gateway anstelle von VPC-Endpunkten verwendet.

![\[Workflowdiagramm, das eine Amazon-EC2-Instance zeigt, die über einen Router, ein Internet-Gateway und das Internet auf DynamoDB zugreift\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/ddb-no-vpc-endpoint.png)


Viele Kunden haben legitime Bedenken hinsichtlich Datenschutz und Sicherheit, was das Senden und Empfangen von Daten über das öffentliche Internet angeht. Kunden können dieses Problem durch die Verwendung eines Virtual Private Network (VPN) lösen, um sämtlichen DynamoDB-Netzwerkdatenverkehr über die eigene Unternehmensnetzwerkinfrastruktur zu leiten. Dieser Ansatz kann jedoch zu Herausforderungen hinsichtlich Bandbreite und Verfügbarkeit führen.

VPC-Endpunkte für DynamoDB können diese Herausforderungen bewältigen helfen. Ein *VPC-Endpunkt* für DynamoDB ermöglicht den Amazon-EC2-Instances in Ihrer VPC die Verwendung privater IP-Adressen für den Zugriff auf DynamoDB, sodass sie nicht im öffentlichen Internet sichtbar sind. Ihre EC2-Instances benötigen keine öffentlichen IP-Adressen und Sie benötigen keinen Internet-Gateway, kein NAT-Gerät und kein virtuelles privates Gateway in Ihrer VPC. Sie steuern den Zugriff auf DynamoDB mittels Endpunktrichtlinien. Der Verkehr zwischen Ihrer VPC und dem AWS Service verlässt das Amazon-Netzwerk nicht.

**Anmerkung**  
 Selbst wenn Sie öffentliche IP-Adressen verwenden, wird die gesamte VPC-Kommunikation zwischen Instances und Diensten, in denen gehostet AWS wird, innerhalb des AWS Netzwerks privat gehalten. Pakete, die aus dem AWS Netzwerk mit einem Ziel im AWS Netzwerk stammen, verbleiben im AWS globalen Netzwerk, mit Ausnahme des Datenverkehrs in oder aus AWS China Regionen. 

Wenn Sie einen VPC-Endpunkt für DynamoDB erstellen, werden alle Anfragen für einen DynamoDB-Endpunkt in der Region (z. B. *dynamodb.us-west-2.amazonaws.com*) an einen privaten DynamoDB-Endpunkt innerhalb des Amazon-Netzwerks geleitet. Sie müssen Ihre Anwendungen, die auf EC2-Instances in Ihrer VPC ausgeführt werden, nicht ändern. Der Endpunktname bleibt gleich, aber die Route zu DynamoDB bleibt vollständig im Amazon-Netzwerk und greift nicht auf das öffentliche Internet zu. 

Das folgende Diagramm zeigt, wie eine EC2-Instance in einer VPC einen VPC-Endpunkt verwenden kann, um auf DynamoDB zuzugreifen.

![\[Workflowdiagramm, das eine EC2-Instance zeigt, die nur über einen Router und einen VPC Endpunkt auf DynamoDB zugreift.\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/ddb-yes-vpc-endpoint.png)


Weitere Informationen finden Sie unter [Tutorial: Verwendung eines VPC-Endpunkts für DynamoDB](#vpc-endpoints-dynamodb-tutorial).

### Freigabe von Amazon-VPC-Endpunkten und DynamoDB
<a name="vpc-endpoints-dynamodb-sharing"></a>

Um Zugriff auf DynamoDB über den Gateway-Endpunkt eines VPC-Subnetzes ermöglichen zu können, müssen Sie über Eigentümerkontoberechtigungen für dieses VPC-Subnetz verfügen.

 Sobald dem Gateway-Endpunkt des VPC-Subnetzes Zugriff auf DynamoDB gewährt wurde, kann jedes AWS -Konto, das über Zugriff auf dieses Subnetz verfügt, DynamoDB verwenden. Dies bedeutet, dass alle Kontonutzer innerhalb des VPC-Subnetzes alle DynamoDB-Tabellen verwenden können, auf die sie Zugriff haben. Dies umfasst DynamoDB-Tabellen, die einem anderen Konto als dem VPC-Subnetz zugeordnet sind. Der Eigentümer des VPC-Subnetzes kann bestimmte Benutzer innerhalb des Subnetzes weiterhin nach eigenem Ermessen daran hindern, DynamoDB über den Gateway-Endpunkt zu nutzen. 

### Tutorial: Verwendung eines VPC-Endpunkts für DynamoDB
<a name="vpc-endpoints-dynamodb-tutorial"></a>

In diesem Abschnitt werden Sie schrittweise durch die Einrichtung und Verwendung eines VPC-Endpunkts für DynamoDB geführt.

**Topics**
+ [Schritt 1: Starten einer Amazon-EC2-Instance](#vpc-endpoints-dynamodb-tutorial.launch-ec2-instance)
+ [Schritt 2: Konfigurieren Ihrer Amazon-EC2-Instance](#vpc-endpoints-dynamodb-tutorial.configure-ec2-instance)
+ [Schritt 3: Erstellen eines VPC-Endpunkts für DynamoDB](#vpc-endpoints-dynamodb-tutorial.create-endpoint)
+ [Schritt 4: (Optional): Bereinigen](#vpc-endpoints-dynamodb-tutorial.clean-up)

#### Schritt 1: Starten einer Amazon-EC2-Instance
<a name="vpc-endpoints-dynamodb-tutorial.launch-ec2-instance"></a>

In diesem Schritt starten Sie eine Amazon-EC2-Instance in Ihrer Standard-Amazon-VPC. Anschließend können Sie einen VPC Endpunkt für DynamoDB erstellen und verwenden.

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie **Launch Instance** aus und gehen Sie folgendermaßen vor:

   Schritt 1: Auswählen eines Amazon Machine Images (AMI)
   + Gehen Sie oben in der Liste von AMIs zu **Amazon Linux AMI** und wählen Sie **Select aus**.

   Schritt 2: Auswählen eines Instance-Typs
   + Wählen Sie oben in der Liste der Instance-Typen **t2.micro** aus.
   + Wählen Sie **Next: Configure Instance Details** aus.

   Schritt 3: Konfigurieren der Instance-Details
   + Navigieren Sie zu **Network** und wählen Sie Ihre Standard-VPC aus.

     Wählen Sie **Next: Add Storage** aus.

   Schritt 4: Hinzufügen von Speicher
   + Überspringen Sie diesen Schritt, indem Sie **Next: Tag Instance** auswählen.

   Schritt 5: Kennzeichnen der Instance
   + Überspringen Sie diesen Schritt, indem Sie **Next: Configure Security Group** auswählen.

   Schritt 6: Konfigurieren einer Sicherheitsgruppe
   + Wählen Sie **Bestehende Sicherheitsgruppe auswählen** aus.
   + Wählen Sie in der Liste der Sicherheitsgruppen **default** aus. Dies ist die Standard-Sicherheitsgruppe für Ihre VPC.
   + Wählen Sie **Next: Review and Launch** aus.

   Schritt 7: Prüfen eines Starts einer Instance
   + Wählen Sie **Launch** (Starten) aus.

1. Führen Sie im Fenster **Select an existing key pair or create a new key pair** einen der folgenden Schritte aus:
   + Wenn Sie nicht über ein Amazon-EC2-Schlüsselpaar verfügen, wählen Sie **Einen neuen Schlüsselpaar erstellen** aus und befolgen Sie die Anweisungen. Sie werden dazu aufgefordert eine private Schlüsseldatei herunterzuladen (*.pem*-Datei). Sie benötigen diese Datei später, wenn Sie sich bei Ihrer Amazon-EC2-Instance anmelden.
   + Wenn Sie bereits über ein bestehendes Amazon-EC2-Schlüsselpaar verfügen, navigieren Sie zu ** Schlüsselpaar wählen** und wählen Sie Ihr Schlüsselpaar aus der Liste aus. Beachten Sie, dass Sie bereits über die private Schlüsseldatei (*.pem*-Datei) verfügen müssen, um sich bei Ihrer Amazon-EC2-Instance anmelden zu können.

1. Wenn Sie Ihr Schlüsselpaar konfiguriert haben, wählen Sie **Launch Instances (Instances starten)** aus.

1. Kehren Sie zur Startseite der Amazon-EC2-Konsole zurück und wählen Sie die Instance, die Sie gestartet haben. Suchen Sie im unteren Bereich der Registerkarte **Beschreiben** die **Public DNS** für Ihre Instance. Beispiel: `ec2-00-00-00-00.us-east-1.compute.amazonaws.com`.

   Notieren Sie sich diesen öffentlichen DNS-Namen, da Sie ihn für den nächsten Schritt in diesem Tutorial benötigen ([Schritt 2: Konfigurieren Ihrer Amazon-EC2-Instance](#vpc-endpoints-dynamodb-tutorial.configure-ec2-instance)).

**Anmerkung**  
Es dauert einige Minuten, bis Ihre Amazon-EC2-Instance verfügbar wird. Überprüfen Sie, ob **Instance-Zustand** `running` wird und alle **Status-Kontrollen** bestanden hat, bevor Sie mit dem nächsten Schritt fortfahren.

#### Schritt 2: Konfigurieren Ihrer Amazon-EC2-Instance
<a name="vpc-endpoints-dynamodb-tutorial.configure-ec2-instance"></a>

Wenn Ihre Amazon-EC2-Instance verfügbar ist, können Sie sich bei ihr anmelden und auf die erstmalige Verwendung vorbereiten.

**Anmerkung**  
In den folgenden Schritten wird davon ausgegangen, dass Sie eine Verbindung mit Ihrer Amazon-EC2-Instance von einem Linux-Computer aus herstellen. Informationen über andere Möglichkeiten zum Herstellen einer Verbindung finden Sie unter [Herstellen einer Verbindung mit Ihrer Linux-Instance](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstances.html) im Amazon-EC2-Benutzerhandbuch.

1. Sie müssen eingehenden SSH-Datenverkehr für Ihre Amazon-EC2-Instance autorisieren. Dazu erstellen Sie eine neue EC2-Sicherheitsgruppe und weisen anschließend die Sicherheitsgruppe Ihrer EC2-Instance zu.

   1. Wählen Sie im Navigationsbereich **Sicherheitsgruppen** aus.

   1. Wählen Sie **Sicherheitsgruppen erstellen** aus. Führen Sie im Fenster **Sicherheitsgruppen erstellen** Folgendes aus:
      + **Sicherheitsgruppenname** – Geben Sie einen Namen für die Sicherheitsgruppe ein. Zum Beispiel: `my-ssh-access`
      + **Description** – Geben Sie eine kurze Beschreibung für die Sicherheitsgruppe ein.
      + **VPC** – Wählen Sie Ihre Standard-VPC aus.
      + Wählen Sie im Abschnitt **Sicherheitsgruppen-Regeln** die Option **Regel hinzufügen** aus und führen Sie Folgendes aus:
        + **Type** – Wählen Sie „SSH“ aus.
        + **Source** – Wählen Sie „My IP“ aus.

      Wenn Sie die gewünschten Einstellungen vorgenommen haben, wählen Sie **Erstellen**.

   1. Wählen Sie im Navigationsbereich **Instances** aus.

   1. Wählen Sie die Amazon-EC2-Instance aus, die Sie in [Schritt 1: Starten einer Amazon-EC2-Instance](#vpc-endpoints-dynamodb-tutorial.launch-ec2-instance) gestartet haben.

   1. Wählen Sie **Aktionen** --> **Netzwerk** --> **Sicherheitsgruppen ändern** aus.

   1. Wählen Sie in **Sicherheitsgruppen ändern** die Sicherheitsgruppe aus, die Sie früher in diesem Verfahren erstellt haben (z. B. `my-ssh-access`). Die vorhandene `default`-Sicherheitsgruppe sollte ebenfalls ausgewählt werden. Wenn Sie die gewünschten Einstellungen vorgenommen haben, wählen Sie **Zuweisen von Sicherheitsgruppen** aus.

1. Verwenden Sie den Befehl `ssh`, wie im folgenden Beispiel gezeigt, um sich bei der Amazon-EC2-Instance anzumelden.

   ```
   ssh -i my-keypair.pem ec2-user@public-dns-name
   ```

   Sie werden Ihre private Schlüsseldatei (*.pem*-Datei) und den öffentlichen DNS-Namen Ihrer Instance angeben müssen. (Siehe [Schritt 1: Starten einer Amazon-EC2-Instance](#vpc-endpoints-dynamodb-tutorial.launch-ec2-instance)). 

   Die Anmelde-ID lautet `ec2-user`. Es ist kein Passwort erforderlich.

1. Konfigurieren Sie Ihre AWS Anmeldeinformationen wie im folgenden Beispiel gezeigt. Geben Sie bei Aufforderung Ihre AWS -Zugriffsschlüssel-ID, den geheimen Schlüssel und den Namen der Standardregion ein.

   ```
   aws configure
   ```

   ```
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: us-east-1
   Default output format [None]:
   ```

Sie können nun einen VPC-Endpunkt für DynamoDB erstellen.

#### Schritt 3: Erstellen eines VPC-Endpunkts für DynamoDB
<a name="vpc-endpoints-dynamodb-tutorial.create-endpoint"></a>

In diesem Schritt erstellen Sie einen VPC-Endpunkt für DynamoDB und testen diesen, um sicherzustellen, dass er funktioniert.

1. Überprüfen Sie, ob Sie unter Verwendung des folgenden öffentlichen Endpunkts mit DynamoDB kommunizieren können, bevor Sie beginnen.

   ```
   aws dynamodb list-tables
   ```

   Die Ausgabe zeigt eine Liste der DynamoDB-Tabellen, die Sie zurzeit besitzen. (Wenn Sie keine Tabellen besitzen, ist die Liste leer.)

1. Stellen Sie sicher, dass DynamoDB ein verfügbarer Dienst für die Erstellung von VPC-Endpoints in der aktuellen Region ist. AWS (Der Befehl wird in Fettschrift angezeigt, gefolgt von einer Beispielausgabe.)

   ```
   aws ec2 describe-vpc-endpoint-services
   ```

   ```
   {
       "ServiceNames": [
           "com.amazonaws.us-east-1.s3",
           "com.amazonaws.us-east-1.dynamodb"
       ]
   }
   ```

   In der Beispielausgabe ist DynamoDB als Service verfügbar. Sie können daher einen VPC-Endpunkt für diesen Service erstellen.

1. Ermitteln Sie den VPC-Bezeichner.

   ```
   aws ec2 describe-vpcs
   ```

   ```
   {
       "Vpcs": [
           {
               "VpcId": "vpc-0bbc736e", 
               "InstanceTenancy": "default", 
               "State": "available", 
               "DhcpOptionsId": "dopt-8454b7e1", 
               "CidrBlock": "172.31.0.0/16", 
               "IsDefault": true
           }
       ]
   }
   ```

   In der Beispielausgabe ist die VPC-ID `vpc-0bbc736e`.

1. Erstellen des VPC-Endpunkts Geben Sie für den Parameter `--vpc-id` die VPC-ID aus dem vorherigen Schritt an. Verwenden Sie den `--route-table-ids`-Parameter, um den Endpunkt mit den Routentabellen zu verknüpfen.

   ```
   aws ec2 create-vpc-endpoint --vpc-id vpc-0bbc736e --service-name com.amazonaws.us-east-1.dynamodb --route-table-ids rtb-11aa22bb
   ```

   ```
   {
       "VpcEndpoint": {
           "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}", 
           "VpcId": "vpc-0bbc736e", 
           "State": "available", 
           "ServiceName": "com.amazonaws.us-east-1.dynamodb", 
           "RouteTableIds": [
               "rtb-11aa22bb"
           ],
           "VpcEndpointId": "vpce-9b15e2f2", 
           "CreationTimestamp": "2017-07-26T22:00:14Z"
       }
   }
   ```

1. Überprüfen Sie, ob Sie über den VPC-Endpunkt auf DynamoDB zugreifen können:

   ```
   aws dynamodb list-tables
   ```

   Wenn Sie möchten, können Sie einige andere AWS CLI Befehle für DynamoDB ausprobieren. Weitere Informationen finden Sie in der [AWS CLI -Befehlsreferenz](https://docs.aws.amazon.com/cli/latest/reference/).

#### Schritt 4: (Optional): Bereinigen
<a name="vpc-endpoints-dynamodb-tutorial.clean-up"></a>

Wenn Sie die Ressourcen löschen möchten, die Sie in diesem Tutorial erstellt haben, führen Sie die folgenden Schritte aus:

**So entfernen Sie Ihren VPC-Endpunkt für DynamoDB**

1. Melden Sie sich bei Ihrer Amazon-EC2-Instance an.

1. Ermitteln Sie die VPC-Endpunkt-ID.

   ```
   aws ec2 describe-vpc-endpoints
   ```

   ```
   {
       "VpcEndpoint": {
           "PolicyDocument": "{\"Version\":\"2008-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":\"*\",\"Action\":\"*\",\"Resource\":\"*\"}]}", 
           "VpcId": "vpc-0bbc736e", 
           "State": "available", 
           "ServiceName": "com.amazonaws.us-east-1.dynamodb", 
           "RouteTableIds": [], 
           "VpcEndpointId": "vpce-9b15e2f2", 
           "CreationTimestamp": "2017-07-26T22:00:14Z"
       }
   }
   ```

   In der Beispielausgabe ist die ID des VPC-Endpunkts `vpce-9b15e2f2`.

1. Löschen Sie den VPC-Endpunkt.

   ```
   aws ec2 delete-vpc-endpoints --vpc-endpoint-ids vpce-9b15e2f2
   ```

   ```
   {
       "Unsuccessful": []
   }
   ```

   Das leere Array `[]` zeigt den Erfolg an (keine fehlgeschlagenen Anforderungen).

**So beenden Sie Ihre Amazon-EC2-Instance**

1. Öffnen Sie die Amazon-EC2-Konsole unter [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Wählen Sie im Navigationsbereich **Instances** aus.

1. Wählen Sie Ihre Amazon EC2-Instance aus.

1. Wählen Sie **Actions**, **Instance State** und **Terminate** aus.

1. Wählen Sie im Bestätigungsfenster **Yes, Terminate** aus.

# AWS PrivateLink für DynamoDB
<a name="privatelink-interface-endpoints"></a>

Mit AWS PrivateLink for DynamoDB können Sie *Amazon VPC-Schnittstellenendpunkte (Schnittstellenendpunkte) in Ihrer Virtual Private Cloud (Amazon VPC*) bereitstellen. Auf diese Endpunkte kann direkt von Anwendungen aus zugegriffen werden, die sich vor Ort befinden Direct Connect, über VPN und/oder auf andere Weise AWS-Region über [Amazon VPC-Peering](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html). Mit AWS PrivateLink und Schnittstellenendpunkten können Sie die private Netzwerkkonnektivität zwischen Ihren Anwendungen und DynamoDB vereinfachen.

Anwendungen in Ihrer VPC benötigen keine öffentlichen IP-Adressen, um mit DynamoDB über VPC-Schnittstellenendpunkte für DynamoDB-Operationen zu kommunizieren. Schnittstellenendpunkte werden durch eine oder mehrere elastische Netzwerkschnittstellen (ENIs) repräsentiert, denen private IP-Adressen aus Subnetzen in Ihrer Amazon VPC zugewiesen wurden. Anforderungen an DynamoDB über Schnittstellenendpunkte bleiben im Amazon-Netzwerk. Sie können auch von lokalen Anwendungen aus über AWS Direct Connect oder AWS Virtual Private Network () auf Schnittstellenendpunkte in Ihrer Amazon VPC zugreifen.Site-to-Site VPN Weitere Informationen darüber, wie Sie Ihre Amazon VPC mit Ihrem On-Premises-Netzwerk verbinden, finden Sie im [Direct Connect -Benutzerhandbuch](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html) und im [AWS Site-to-Site VPN -Benutzerhandbuch](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html).

*Allgemeine Informationen zu Schnittstellenendpunkten finden Sie unter [Interface Amazon VPC endpoints (AWS PrivateLink) im Handbuch](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html).AWS PrivateLink * AWS PrivateLink wird auch für Amazon DynamoDB Streams-Endpunkte unterstützt. Weitere Informationen finden Sie unter [AWS PrivateLink für DynamoDB Streams](privatelink-streams.md).

**Topics**
+ [Arten von Amazon-VPC-Endpunkten für Amazon DynamoDB](#types-of-vpc-endpoints-for-ddb)
+ [Überlegungen bei der Verwendung AWS PrivateLink für Amazon DynamoDB](#privatelink-considerations)
+ [Erstellen eines Amazon VPC-Endpunkts](#ddb-creating-vpc)
+ [Zugreifen auf Schnittstellenendpunkte in Amazon DynamoDB](#accessing-ddb-interface-endpoints)
+ [Zugreifen auf DynamoDB-Tabellen und -Control-API-Operationen über DynamoDB-Schnittstellenendpunkte](#accessing-tables-apis-from-interface-endpoints)
+ [Aktualisieren einer lokalen DNS-Konfiguration](#updating-on-premises-dns-config)
+ [Erstellen einer Amazon-VPC-Endpunktrichtlinie für DynamoDB](#creating-vpc-endpoint-policy)
+ [Verwenden von DynamoDB-Endpunkten mit privatem Zugriff AWS-Managementkonsole](#ddb-endpoints-private-access)
+ [AWS PrivateLink für DynamoDB Streams](privatelink-streams.md)
+ [AWS PrivateLink Für DynamoDB Accelerator (DAX) verwenden](dax-private-link.md)

## Arten von Amazon-VPC-Endpunkten für Amazon DynamoDB
<a name="types-of-vpc-endpoints-for-ddb"></a>

Sie können zwei Arten von Amazon VPC-Endpunkten für den Zugriff auf Amazon DynamoDB verwenden: *Gateway-Endpunkte und *Schnittstellenendpunkte** (durch Verwenden). AWS PrivateLink Ein *Gateway-Endpunkt* ist ein Gateway, das Sie in Ihrer Routing-Tabelle angeben, um von Ihrer Amazon VPC aus über das Netzwerk auf DynamoDB zuzugreifen. AWS *Schnittstellenendpunkte* erweitern die Funktionalität von Gateway-Endpunkten, indem sie private IP-Adressen verwenden, um Anfragen von Ihrer Amazon VPC, vor Ort oder von einer Amazon VPC in einer anderen AWS-Region mithilfe von Amazon VPC Peering an DynamoDB weiterzuleiten oder. AWS Transit Gateway Weitere Informationen finden Sie unter [Was ist Amazon-VPC Peering?](https://docs.aws.amazon.com/vpc/latest/peering/what-is-vpc-peering.html) und [Vergleich zwischen Transit-Gateway und Amazon-VPC-Peering](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/transit-gateway-vs-vpc-peering.html).

Schnittstellenendpunkte sind mit Gateway-Endpunkten kompatibel. Wenn Sie einen vorhandenen Gateway-Endpunkt in der Amazon VPC haben, können Sie beide Arten von Endpunkten in derselben Amazon VPC verwenden.


|  Gateway-Endpunkte für DynamoDB  |  Schnittstellenendpunkte für DynamoDB  | 
| --- | --- | 
|  In beiden Fällen verbleibt Ihr Netzwerkverkehr im Netzwerk. AWS   | 
|  Verwenden von öffentlichen IP-Adressen in Amazon DynamoDB  |  Verwenden von privaten IP-Adressen aus Ihrer Amazon VPC für den Zugriff auf Amazon DynamoDB  | 
|  Erlauben keinen On-Premises-Zugriff  |  Erlaubt On-Premises-Zugriff  | 
|  Erlauben Sie keinen Zugriff von einem anderen AWS-Region  |  Erlauben Sie den Zugriff von einem Amazon VPC-Endpunkt auf einem anderen mithilfe AWS-Region von Amazon VPC-Peering oder AWS Transit Gateway  | 
|  Nicht berechnet  |  Berechnet  | 

Weitere Informationen zu Gateway-Endpunkten finden Sie unter [Gateway-Endpunkte in der Amazon VPC](https://docs.aws.amazon.com//vpc/latest/privatelink/vpce-gateway.html) im *AWS PrivateLink -Handbuch*.

## Überlegungen bei der Verwendung AWS PrivateLink für Amazon DynamoDB
<a name="privatelink-considerations"></a>

Überlegungen zu Amazon VPC gelten AWS PrivateLink für Amazon DynamoDB. Weitere Informationen finden Sie unter [Überlegungen zu Schnittstellenendpunkten](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-interface.html#vpce-interface-limitations) und [AWS PrivateLink -Kontingente](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html) im *Handbuch zu AWS PrivateLink *. Darüber hinaus gelten die folgenden Einschränkungen.

AWS PrivateLink für Amazon DynamoDB unterstützt Folgendes nicht:
+ Transport Layer Security (TLS) 1.1
+ Private und Hybrid Domain Name System (DNS)-Services

**Wichtig**  
Erstellen Sie keine privaten gehosteten Zonen, um DynamoDB-Endpunkt-DNS-Namen (wie `dynamodb.region.amazonaws.com` oder`*.region.amazonaws.com`) zu überschreiben, um den Datenverkehr an Ihre Schnittstellenendpunkte weiterzuleiten. DynamoDB-DNS-Konfigurationen können sich im Laufe der Zeit ändern.   
 Benutzerdefinierte DNS-Overrides sind mit diesen Änderungen nicht kompatibel und können dazu führen, dass Anfragen unerwartet über öffentliche IP-Adressen statt über Ihre Schnittstellenendpunkte weitergeleitet werden.   
 Um über auf DynamoDB zuzugreifen AWS PrivateLink, konfigurieren Sie Ihre Clients so, dass sie die Amazon VPC-Endpunkt-URL direkt verwenden (z. B.). `https://vpce-1a2b3c4d-5e6f.dynamodb.region.vpce.amazonaws.com`

Sie können für jeden von Ihnen aktivierten AWS PrivateLink Endpunkt bis zu 50.000 Anfragen pro Sekunde einreichen.

**Anmerkung**  
Timeouts der Netzwerkkonnektivität zu AWS PrivateLink Endpunkten fallen nicht in den Geltungsbereich der DynamoDB-Fehlerantworten und müssen von Ihren Anwendungen, die eine Verbindung zu den Endpunkten herstellen, angemessen behandelt werden. PrivateLink 

## Erstellen eines Amazon VPC-Endpunkts
<a name="ddb-creating-vpc"></a>

Informationen zum Erstellen eines Amazon-VPC-Schnittstellenendpunkts finden Sie unter [Erstellen eines Amazon-VPC-Endpunkts](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) im *AWS PrivateLink -Handbuch*.

## Zugreifen auf Schnittstellenendpunkte in Amazon DynamoDB
<a name="accessing-ddb-interface-endpoints"></a>

Wenn Sie einen Schnittstellenendpunkt erstellen, generiert Amazon DynamoDB zwei Arten von endpunktspezifischen DynamoDB-DNS-Namen: *regional* und *zonengebunden*. 
+ Ein *regionaler* DNS-Name enthält eine eindeutige Amazon VPC-Endpunkt-ID, eine Service-ID AWS-Region, das und `vpce.amazonaws.com` in seinem Namen. Beispielsweise könnte der generierte DNS-Name für die Amazon-VPC-Endpunkt-ID `vpce-1a2b3c4d` mit `vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com` vergleichbar sein.
+ Ein *zonengebundener* DNS-Name enthält die Availability Zone, z. B. `vpce-1a2b3c4d-5e6f-us-east-1a.dynamodb.us-east-1.vpce.amazonaws.com`. Sie können diese Option verwenden, wenn Ihre Architektur Availability Zones isoliert. Sie könnten sie beispielsweise zur Fehlereingrenzung oder zur Senkung der regionalen Datenübertragungskosten verwenden.

**Anmerkung**  
Um eine optimale Zuverlässigkeit zu erreichen, empfehlen wir, Ihren Service in mindestens drei Availability Zones bereitzustellen.

## Zugreifen auf DynamoDB-Tabellen und -Control-API-Operationen über DynamoDB-Schnittstellenendpunkte
<a name="accessing-tables-apis-from-interface-endpoints"></a>

Sie können das AWS CLI oder verwenden AWS SDKs , um auf DynamoDB-Tabellen zuzugreifen und API-Operationen über DynamoDB-Schnittstellenendpunkte zu steuern.

### AWS CLI Beispiele
<a name="privatelink-ddb-aws-cli-examples"></a>

Verwenden Sie die Parameter und, um über DynamoDB-Schnittstellenendpunkte in Befehlen auf DynamoDB-Tabellen oder DynamoDB-Steuerungs-API-Operationen zuzugreifen. AWS CLI `--region` `--endpoint-url`

**Beispiel: Erstellen eines VPC-Endpunkts**

```
aws ec2 create-vpc-endpoint \
--region us-east-1 \
--service-name com.amazonaws.us-east-1.dynamodb \
--vpc-id client-vpc-id \
--subnet-ids client-subnet-id \
--vpc-endpoint-type Interface \
--security-group-ids client-sg-id
```

**Beispiel: Ändern eines VPC-Endpunkts**

```
aws ec2 modify-vpc-endpoint \
--region us-east-1 \
--vpc-endpoint-id client-vpc-endpoint-id \
--policy-document policy-document \ #example optional parameter
--add-security-group-ids security-group-ids \ #example optional parameter 
# any additional parameters needed, see Privatelink documentation for more details
```

**Beispiel: Auflisten von Tabellen mit einer Endpunkt-URL**

Ersetzen Sie im folgenden Beispiel die Region `us-east-1` und den DNS-Namen der VPC-Endpunkt-ID `vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com` durch Ihre eigenen Angaben.

```
aws dynamodb --region us-east-1 --endpoint https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com list-tables
```

### AWS SDK-Beispiele
<a name="privatelink-ddb-aws-sdk-examples"></a>

Um auf DynamoDB-Tabellen oder DynamoDB-Steuerungs-API-Operationen über DynamoDB-Schnittstellenendpunkte zuzugreifen, wenn Sie die verwenden AWS SDKs, aktualisieren Sie Ihre Version auf die neueste Version. SDKs Konfigurieren Sie Ihre Clients anschließend so, dass sie eine Endpunkt-URL verwenden, um über DynamoDB-Schnittstellenendpunkte auf eine Tabelle oder Control-API-Operation in DynamoDB zuzugreifen.

------
#### [ SDK for Python (Boto3) ]

**Beispiel: Verwenden einer Endpunkt-URL für den Zugriff auf eine DynamoDB-Tabelle**  
Ersetzen Sie im folgenden Beispiel die Region `us-east-1` und die VPC-Endpunkt-ID `https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com` durch Ihre eigenen Informationen.

```
ddb_client = session.client(
service_name='dynamodb',
region_name='us-east-1',
endpoint_url='https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com'
)
```

------
#### [ SDK for Java 1.x ]

**Beispiel: Verwenden einer Endpunkt-URL für den Zugriff auf eine DynamoDB-Tabelle**  
Ersetzen Sie im folgenden Beispiel die Region `us-east-1` und die VPC-Endpunkt-ID `https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com` durch Ihre eigenen Informationen.

```
//client build with endpoint config  
final AmazonDynamoDB dynamodb = AmazonDynamoDBClientBuilder.standard().withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration(
                "https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com",
                Regions.DEFAULT_REGION.getName()
        )
).build();
```

------
#### [ SDK for Java 2.x ]

**Beispiel: Verwenden einer Endpunkt-URL für den Zugriff auf eine DynamoDB-Tabelle**  
Ersetzen Sie im folgenden Beispiel die Region us-east-1 und die VPC-Endpunkt-ID https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com durch Ihre eigenen Informationen.

```
Region region = Region.US_EAST_1;
dynamoDbClient = DynamoDbClient.builder().region(region)
.endpointOverride(URI.create("https://vpce-1a2b3c4d-5e6f.dynamodb.us-east-1.vpce.amazonaws.com"))
.build()
```

------

## Aktualisieren einer lokalen DNS-Konfiguration
<a name="updating-on-premises-dns-config"></a>

 Wenn Sie endpunktspezifische DNS-Namen für den Zugriff auf die Schnittstellenendpunkte für DynamoDB verwenden, müssen Sie Ihren lokalen DNS-Resolver nicht aktualisieren. Sie können den endpunktspezifischen DNS-Namen mit der privaten IP-Adresse des Schnittstellenendpunkts aus der öffentlichen DynamoDB-DNS-Domain auflösen. 

### Verwenden von Schnittstellenendpunkten für den Zugriff auf DynamoDB ohne Gateway-Endpunkt oder Internet-Gateway in der Amazon VPC
<a name="using-interface-endpoints"></a>

Schnittstellenendpunkte in Ihrer Amazon VPC können sowohl Anwendungen in der Amazon VPC als auch On-Premises-Anwendungen über das Amazon-Netzwerk an DynamoDB weiterleiten, wie im folgenden Diagramm dargestellt.

![\[Das Datenflussdiagramm zeigt den Zugriff von On-Premises- und in der Amazon VPC bereitgestellten Apps auf DynamoDB über einen Schnittstellenendpunkt und AWS PrivateLink.\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/PrivateLink-interfaceEndpoints.png)


Das Diagramm veranschaulicht folgende Vorgänge: 
+ Ihr lokales Netzwerk verwendet Direct Connect oder, um eine Verbindung Site-to-Site VPN zu Amazon VPC A herzustellen.
+ Ihre On-Premises-Anwendungen und die Anwendungen in Amazon VPC A verwenden endpunktspezifische DNS-Namen, um über den DynamoDB-Schnittstellenendpunkt auf DynamoDB zuzugreifen.
+ Lokale Anwendungen senden Daten über Direct Connect (oder Site-to-Site VPN) an den Schnittstellenendpunkt in der Amazon VPC. AWS PrivateLink verschiebt die Daten vom Schnittstellenendpunkt über das Netzwerk zu DynamoDB. AWS 
+ VPC-Anwendungen innerhalb von Amazon senden auch Traffic an den Schnittstellenendpunkt. AWS PrivateLink verschiebt die Daten vom Schnittstellenendpunkt über das Netzwerk zu DynamoDB. AWS 

### Gemeinsames Verwenden von Gateway-Endpunkten und Schnittstellenendpunkten in derselben Amazon VPC für den Zugriff auf DynamoDB
<a name="using-gateway-and-interface-endpoints"></a>

Sie können Schnittstellenendpunkte erstellen und den vorhandenen Gateway-Endpunkt in derselben Amazon VPC beibehalten, wie das folgende Diagramm zeigt. Mit diesem Ansatz erlauben Sie Anwendungen in der Amazon VPC, weiterhin über den Gateway-Endpunkt auf DynamoDB zuzugreifen, was nicht in Rechnung gestellt wird. Dann würden nur Ihre On-Premises-Anwendungen Schnittstellenendpunkte für den Zugriff auf DynamoDB verwenden. Um auf diese Weise auf DynamoDB zuzugreifen, müssen Sie Ihre On-Premises-Anwendungen aktualisieren, damit endpunktspezifische DNS-Namen für DynamoDB verwendet werden.

![\[Das Datenflussdiagramm zeigt den Zugriff auf DynamoDB über Gateway-Endpunkte und Schnittstellenendpunkte.\]](http://docs.aws.amazon.com/de_de/amazondynamodb/latest/developerguide/images/PL-Image2-InterfaceAndGatewayEP.png)


Das Diagramm veranschaulicht folgende Vorgänge: 
+ Lokale Anwendungen verwenden endpunktspezifische DNS-Namen, um Daten über Direct Connect (oder) an den Schnittstellenendpunkt innerhalb der Amazon VPC zu senden. Site-to-Site VPN AWS PrivateLink verschiebt die Daten vom Schnittstellenendpunkt über das Netzwerk zu DynamoDB. AWS 
+ Mithilfe von standardmäßigen regionalen DynamoDB-Namen senden VPC-Anwendungen in Amazon Daten an den Gateway-Endpunkt, der über das Netzwerk eine Verbindung zu DynamoDB herstellt. AWS 

Weitere Informationen zu Gateway-Endpunkten finden Sie unter [Gateway-Endpunkte in der Amazon VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpce-gateway.html) im *Amazon-VPC-Benutzerhandbuch*. 

## Erstellen einer Amazon-VPC-Endpunktrichtlinie für DynamoDB
<a name="creating-vpc-endpoint-policy"></a>

Sie können eine Endpunktrichtlinie an Ihren Amazon-VPC-Endpunkt anhängen, der den Zugriff auf DynamoDB kontrolliert. Die Richtlinie gibt die folgenden Informationen an: 
+ Der AWS Identity and Access Management (IAM-) Principal, der Aktionen ausführen kann 
+ Aktionen, die ausgeführt werden können 
+ Ressourcen, für die Aktionen ausgeführt werden können 

**Topics**
+ [Beispiel: Beschränken des Zugriffs auf eine bestimmte Tabelle von einem Amazon-VPC-Endpunkt aus](#privatelink-example-restrict-access-to-bucket)

### Beispiel: Beschränken des Zugriffs auf eine bestimmte Tabelle von einem Amazon-VPC-Endpunkt aus
<a name="privatelink-example-restrict-access-to-bucket"></a>

Sie können eine Endpunktrichtlinie erstellen, die den Zugriff auf spezifische DynamoDB-Tabellen einschränkt. Diese Art von Richtlinie ist nützlich, wenn Sie andere AWS-Services in Ihrer Amazon VPC haben, die Tabellen verwenden. Die folgende Tabellenrichtlinie schränkt den Zugriff ausschließlich auf `DOC-EXAMPLE-TABLE` ein. Um diese Endpunktrichtlinie zu verwenden, ersetzen Sie `DOC-EXAMPLE-TABLE` durch den Namen Ihrer Tabelle.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
  "Id": "Policy1216114807515",
  "Statement": [
    { "Sid": "Access-to-specific-table-only",
      "Principal": "*",
      "Action": [
        "dynamodb:GetItem",
        "dynamodb:PutItem"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:dynamodb:us-east-1:111122223333:table/DOC-EXAMPLE-TABLE",
                   "arn:aws:dynamodb:us-east-1:111122223333:table/DOC-EXAMPLE-TABLE/*"]
    }
  ]
}
```

------

## Verwenden von DynamoDB-Endpunkten mit privatem Zugriff AWS-Managementkonsole
<a name="ddb-endpoints-private-access"></a>

Sie müssen die DNS-Konfiguration für DynamoDB und DynamoDB Streams einrichten, wenn Sie VPC-Endpunkte mit der [DynamoDB-Konsole](https://console.aws.amazon.com/dynamodb) in [AWS-Managementkonsole Private Access](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/console-private-access.html) verwenden.

Um DynamoDB für den Zugriff in AWS-Managementkonsole Private Access zu konfigurieren, müssen Sie die folgenden zwei VPC-Endpoints erstellen:
+ `com.amazonaws.<region>.dynamodb`
+ `com.amazonaws.<region>.dynamodb-streams`

Wenn Sie die VPC-Endpunkte erstellen, navigieren Sie zur Route53-Konsole und erstellen Sie mithilfe des regionalen Endpunkts `dynamodb.us-east-1.amazonaws.com` eine privat gehostete Zone für DynamoDB.

Erstellen Sie die folgenden zwei Aliasdatensätze in der privat gehosteten Zone:
+ `dynamodb.<region>.amazonaws.com` für die Weiterleitung des Datenverkehrs an den VPC-Endpunkt `com.amazonaws.<region>.dynamodb`.
+ `streams.dynamodb.<region>.amazonaws.com` für die Weiterleitung des Datenverkehrs an den VPC-Endpunkt `com.amazonaws.<region>.dynamodb-streams`.

# AWS PrivateLink für DynamoDB Streams
<a name="privatelink-streams"></a>

Mit AWS PrivateLink for Amazon DynamoDB Streams können Sie Amazon VPC-Schnittstellenendpunkte (Schnittstellenendpunkte) in Ihrer virtuellen privaten Cloud (Amazon VPC) bereitstellen. Auf diese Endpunkte kann direkt von Anwendungen aus zugegriffen werden, die sich vor Ort befinden Direct Connect, über VPN und/oder auf andere Weise AWS-Region über Amazon VPC-Peering. Mithilfe von Endpunkten AWS PrivateLink und Schnittstellen können Sie die private Netzwerkkonnektivität von Ihren Anwendungen zu DynamoDB Streams vereinfachen.

Anwendungen in Ihrer in einer Amazon VPC benötigen keine öffentlichen IP-Adressen, um mit DynamoDB Streams über Amazon-VPC-Schnittstellenendpunkte für Operationen in DynamoDB Streams zu kommunizieren. Schnittstellenendpunkte werden durch eine oder mehrere elastische Netzwerkschnittstellen (ENIs) repräsentiert, denen private IP-Adressen aus Subnetzen in Ihrer Amazon VPC zugewiesen wurden. Anforderungen an DynamoDB Streams über Schnittstellenendpunkte bleiben im Amazon-Netzwerk. Sie können auch von lokalen Anwendungen aus über Direct Connect oder AWS Virtual Private Network (AWS VPN) auf Schnittstellenendpunkte in Ihrer Amazon VPC zugreifen. [https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) 

Allgemeine Informationen zu Schnittstellenendpunkten finden Sie unter [Amazon-VPC-Schnittstellenendpunkte](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) (AWS PrivateLink).

**Anmerkung**  
Für DynamoDB Streams werden nur Schnittstellenendpunkte unterstützt. Gateway-Endpunkte werden nicht unterstützt.

**Topics**
+ [Überlegungen bei der Verwendung AWS PrivateLink für Amazon DynamoDB DynamoDB-Streams](#privatelink-streams-considerations)
+ [Erstellen eines Amazon VPC-Endpunkts](#privatelink-streams-vpc-endpoint)
+ [Zugreifen auf Schnittstellenendpunkte in Amazon DynamoDB Streams](#privatelink-streams-accessing-ddb-interface-endpoints)
+ [Zugreifen auf API-Operationen in DynamoDB Streams über DynamoDB-Streams-Schnittstellenendpunkte](#privatelink-streams-accessing-api-operations-from-interface-endpoints)
+ [AWS SDK-Beispiele](#privatelink-streams-aws-sdk-examples)
+ [Erstellen einer Amazon-VPC-Endpunktrichtlinie für DynamoDB Streams](#privatelink-streams-creating-vpc-endpoint-policy)
+ [Verwenden von DynamoDB-Endpunkten mit privatem Zugriff AWS-Managementkonsole](#ddb-streams-endpoints-private-access)

## Überlegungen bei der Verwendung AWS PrivateLink für Amazon DynamoDB DynamoDB-Streams
<a name="privatelink-streams-considerations"></a>

Überlegungen zu Amazon VPC gelten AWS PrivateLink für Amazon DynamoDB DynamoDB-Streams. Weitere Informationen finden Sie unter [Überlegungen zu Schnittstellenendpunkten](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html) und [AWS PrivateLink -Kontingente](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-limits-endpoints.html). Beachten Sie dabei die folgenden Einschränkungen.

AWS PrivateLink für Amazon DynamoDB Streams unterstützt Folgendes nicht: 
+ Transport Layer Security (TLS) 1.1
+ Private und Hybrid Domain Name System (DNS)-Services

**Wichtig**  
Erstellen Sie keine privaten gehosteten Zonen, um die DNS-Namen von DynamoDB-Streams-Endpunkten zu überschreiben und den Datenverkehr an Ihre Schnittstellenendpunkte weiterzuleiten. DynamoDB-DNS-Konfigurationen können sich im Laufe der Zeit ändern, und benutzerdefinierte DNS-Overrides können dazu führen, dass Anfragen unerwartet über öffentliche IP-Adressen statt über Ihre Schnittstellenendpunkte weitergeleitet werden.   
 Um auf DynamoDB Streams zuzugreifen AWS PrivateLink, konfigurieren Sie Ihre Clients so, dass sie die Amazon VPC-Endpunkt-URL direkt verwenden (z. B.). `https://vpce-1a2b3c4d-5e6f.streams.dynamodb.region.vpce.amazonaws.com`

**Anmerkung**  
Timeouts der Netzwerkkonnektivität zu AWS PrivateLink Endpunkten fallen nicht in den Geltungsbereich der DynamoDB Streams Streams-Fehlerantworten und müssen von Ihren Anwendungen, die eine Verbindung zu den Endpunkten herstellen, angemessen behandelt werden. AWS PrivateLink 

## Erstellen eines Amazon VPC-Endpunkts
<a name="privatelink-streams-vpc-endpoint"></a>

Informationen zum Erstellen eines Amazon-VPC-Schnittstellenendpunkts finden Sie unter [Erstellen eines Amazon-VPC-Endpunkts](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) im *AWS PrivateLink -Handbuch*.

## Zugreifen auf Schnittstellenendpunkte in Amazon DynamoDB Streams
<a name="privatelink-streams-accessing-ddb-interface-endpoints"></a>

Wenn Sie einen Schnittstellenendpunkt erstellen, generiert DynamoDB zwei Arten von endpunktspezifischen DNS-Namen für DynamoDB Streams: *regional* und *zonengebunden*. 
+ Ein *regionaler* DNS-Name enthält eine eindeutige Amazon VPC-Endpunkt-ID, eine Service-ID AWS-Region, das und `vpce.amazonaws.com` in seinem Namen. Beispielsweise könnte der generierte DNS-Name für die Amazon-VPC-Endpunkt-ID `vpce-1a2b3c4d` mit `vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com` vergleichbar sein.
+ Ein *zonengebundener* DNS-Name enthält die Availability Zone, z. B. `vpce-1a2b3c4d-5e6f-us-east-1a.streams.dynamodb.us-east-1.vpce.amazonaws.com`. Sie können diese Option verwenden, wenn Ihre Architektur Availability Zones isoliert. Sie könnten sie beispielsweise zur Fehlereingrenzung oder zur Senkung der regionalen Datenübertragungskosten verwenden.

## Zugreifen auf API-Operationen in DynamoDB Streams über DynamoDB-Streams-Schnittstellenendpunkte
<a name="privatelink-streams-accessing-api-operations-from-interface-endpoints"></a>

Sie können das AWS CLI oder verwenden AWS SDKs , um über Endpunkte der DynamoDB Streams Streams-Schnittstelle auf DynamoDB Streams Streams-API-Operationen zuzugreifen.

### AWS CLI Beispiele
<a name="privatelink-streams-aws-cli-examples"></a>

Verwenden Sie die Parameter und, um über die Endpunkte der DynamoDB-Streams-Schnittstelle in AWS CLI Befehlen auf DynamoDB Streams oder API-Operationen zuzugreifen. `--region` `--endpoint-url`

**Beispiel: Erstellen eines VPC-Endpunkts**

```
aws ec2 create-vpc-endpoint \
--region us-east-1 \
--service-name com.amazonaws.us-east-1.dynamodb-streams \
--vpc-id client-vpc-id \
--subnet-ids client-subnet-id \
--vpc-endpoint-type Interface \
--security-group-ids client-sg-id
```

**Beispiel: Ändern eines VPC-Endpunkts**

```
aws ec2 modify-vpc-endpoint \
--region us-east-1 \
--vpc-endpoint-id client-vpc-endpoint-id \
--policy-document policy-document \ #example optional parameter
--add-security-group-ids security-group-ids \ #example optional parameter 
# any additional parameters needed, see Privatelink documentation for more details
```

**Beispiel: Auflisten von Streams mit einer Endpunkt-URL**

Ersetzen Sie im folgenden Beispiel die Region `us-east-1` und den DNS-Namen der VPC-Endpunkt-ID `vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com` durch Ihre eigenen Angaben.

```
aws dynamodbstreams --region us-east-1 —endpoint https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com list-streams
```

## AWS SDK-Beispiele
<a name="privatelink-streams-aws-sdk-examples"></a>

Um auf Amazon DynamoDB Streams API-Operationen über die DynamoDB Streams Streams-Schnittstellenendpunkte zuzugreifen, wenn Sie die verwenden AWS SDKs, aktualisieren Sie Ihre SDKs Version auf die neueste Version. Konfigurieren Sie Ihre Clients anschließend so, dass sie eine Endpunkt-URL für die API-Operation von DynamoDB Streams über DynamoDB-Streams-Schnittstellenendpunkte verwenden.

------
#### [ SDK for Python (Boto3) ]

**Beispiel: Verwenden einer Endpunkt-URL für den Zugriff auf einen DynamoDB-Stream**  
Ersetzen Sie im folgenden Beispiel die Region `us-east-1` und die VPC-Endpunkt-ID `https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com` durch Ihre eigenen Informationen.

```
ddb_streams_client = session.client(
service_name='dynamodbstreams',
region_name='us-east-1',
endpoint_url='https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com'
)
```

------
#### [ SDK for Java 1.x ]

**Beispiel: Verwenden einer Endpunkt-URL für den Zugriff auf einen DynamoDB-Stream**  
Ersetzen Sie im folgenden Beispiel die Region `us-east-1` und die VPC-Endpunkt-ID `https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com` durch Ihre eigenen Informationen.

```
//client build with endpoint config  
final AmazonDynamoDBStreams dynamodbstreams = AmazonDynamoDBStreamsClientBuilder.standard().withEndpointConfiguration(
        new AwsClientBuilder.EndpointConfiguration(
                "https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com",
                Regions.DEFAULT_REGION.getName()
        )
).build();
```

------
#### [ SDK for Java 2.x ]

**Beispiel: Verwenden einer Endpunkt-URL für den Zugriff auf einen DynamoDB-Stream**  
Ersetzen Sie im folgenden Beispiel die Region `us-east-1` und die VPC-Endpunkt-ID `https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com` durch Ihre eigenen Informationen.

```
Region region = Region.US_EAST_1;
dynamoDbStreamsClient = DynamoDbStreamsClient.builder().region(region)
.endpointOverride(URI.create("https://vpce-1a2b3c4d-5e6f.streams.dynamodb.us-east-1.vpce.amazonaws.com"))
.build()
```

------

## Erstellen einer Amazon-VPC-Endpunktrichtlinie für DynamoDB Streams
<a name="privatelink-streams-creating-vpc-endpoint-policy"></a>

Sie können eine Endpunktrichtlinie an Ihren Amazon-VPC-Endpunkt anhängen, der den Zugriff auf DynamoDB Streams kontrolliert. Die Richtlinie gibt die folgenden Informationen an: 
+ Der AWS Identity and Access Management (IAM-) Principal, der Aktionen ausführen kann 
+ Aktionen, die ausgeführt werden können 
+ Ressourcen, für die Aktionen ausgeführt werden können 

**Topics**
+ [Beispiel: Beschränken des Zugriffs auf einen bestimmten Streams von einem Amazon-VPC-Endpunkt aus](#privatelink-streams-example-restrict-access-to-bucket)

### Beispiel: Beschränken des Zugriffs auf einen bestimmten Streams von einem Amazon-VPC-Endpunkt aus
<a name="privatelink-streams-example-restrict-access-to-bucket"></a>

Sie können eine Endpunktrichtlinie erstellen, die den Zugriff auf spezifische DynamoDB Streams einschränkt. Diese Art von Richtlinie ist nützlich, wenn Sie andere AWS-Services in Ihrer Amazon VPC haben, die DynamoDB Streams verwenden. Die folgende Stream-Richtlinie schränkt den Zugriff nur auf den Stream `2025-02-20T11:22:33.444` ein, der `DOC-EXAMPLE-TABLE` angehängt ist. Um diese Endpunktrichtlinie zu verwenden, ersetzen Sie `DOC-EXAMPLE-TABLE` durch den Namen Ihrer Tabelle und `2025-02-20T11:22:33.444` durch die Stream-Bezeichnung.

------
#### [ JSON ]

****  

```
{
"Version":"2012-10-17",		 	 	 
  "Id": "Policy1216114807515",
  "Statement": [
    { "Sid": "Access-to-specific-stream-only",
      "Principal": "*",
      "Action": [
        "dynamodb:DescribeStream",
        "dynamodb:GetRecords"
      ],
      "Effect": "Allow",
      "Resource": ["arn:aws:dynamodb:us-east-1:111122223333:table/table-name/stream/2025-02-20T11:22:33.444"]
    }
  ]
}
```

------

**Anmerkung**  
Gateway-Endpunkte werden in DynamoDB Streams nicht unterstützt.

## Verwenden von DynamoDB-Endpunkten mit privatem Zugriff AWS-Managementkonsole
<a name="ddb-streams-endpoints-private-access"></a>

Sie müssen die DNS-Konfiguration für DynamoDB und DynamoDB Streams einrichten, wenn Sie VPC-Endpunkte mit der [DynamoDB-Konsole](https://console.aws.amazon.com/dynamodb) in [AWS-Managementkonsole Private Access](https://docs.aws.amazon.com/awsconsolehelpdocs/latest/gsg/console-private-access.html) verwenden.

Um DynamoDB für den Zugriff in AWS-Managementkonsole Private Access zu konfigurieren, müssen Sie die folgenden zwei VPC-Endpoints erstellen:
+ `com.amazonaws.<region>.dynamodb`
+ `com.amazonaws.<region>.dynamodb-streams`

Wenn Sie die VPC-Endpunkte erstellen, navigieren Sie zur Route53-Konsole und erstellen Sie mithilfe des regionalen Endpunkts `dynamodb.us-east-1.amazonaws.com` eine privat gehostete Zone für DynamoDB.

Erstellen Sie die folgenden zwei Aliasdatensätze in der privat gehosteten Zone:
+ `dynamodb.<region>.amazonaws.com` für die Weiterleitung des Datenverkehrs an den VPC-Endpunkt `com.amazonaws.<region>.dynamodb`.
+ `streams.dynamodb.<region>.amazonaws.com` für die Weiterleitung des Datenverkehrs an den VPC-Endpunkt `com.amazonaws.<region>.dynamodb-streams`.

# AWS PrivateLink Für DynamoDB Accelerator (DAX) verwenden
<a name="dax-private-link"></a>

AWS PrivateLink für DynamoDB Accelerator (DAX) können Sie sicher auf DAX-Management APIs wie `CreateCluster``DescribeClusters`, und `DeleteCluster` über private IP-Adressen innerhalb Ihrer Virtual Private Cloud (VPC) zugreifen. Mit dieser Funktion können Sie privat von Ihren Anwendungen aus auf DAX-Dienste zugreifen, ohne dass der Datenverkehr dem öffentlichen Internet ausgesetzt wird.

DAX PrivateLink unterstützt Dual-Stack-Endpunkte (`dax.{region}.api.aws`) und ermöglicht so sowohl IPv4 Konnektivität als auch Konnektivität. IPv6 Mit AWS PrivateLink for DAX können Kunden über private DNS-Namen auf den Service zugreifen. Die Unterstützung von Dual-Stack-Endpunkten gewährleistet transparente Konnektivität und gewährleistet gleichzeitig den Datenschutz im Netzwerk. Auf diese Weise können Sie sowohl über das öffentliche Internet als auch über VPC-Endpunkte auf DAX zugreifen, ohne Änderungen an Ihrer SDK-Konfiguration vornehmen zu müssen.

## Überlegungen bei der Verwendung von AWS PrivateLink DynamoDB Accelerator (DAX)
<a name="dax-privatelink-considerations"></a>

Bei der Implementierung AWS PrivateLink für DynamoDB Accelerator (DAX) müssen mehrere wichtige Überlegungen berücksichtigt werden.

Bevor Sie einen Schnittstellenendpunkt für DAX einrichten, sollten Sie Folgendes berücksichtigen:
+ Endpunkte der DAX-Schnittstelle unterstützen nur den Zugriff auf das DAX-Management APIs innerhalb derselben AWS-Region Schnittstelle. Sie können keinen Schnittstellenendpunkt verwenden, um auf das DAX-Management APIs in anderen Regionen zuzugreifen.
+ Um AWS-Managementkonsole privat auf das DAX-Management zuzugreifen, müssen Sie möglicherweise zusätzliche VPC-Endpunkte für Dienste wie `com.amazonaws.region.console` und verwandte Dienste erstellen.
+ Die Erstellung und Nutzung eines Schnittstellenendpunkts zu DAX wird Ihnen in Rechnung gestellt. Preisinformationen finden Sie unter [AWS PrivateLink Preise](https://aws.amazon.com/vpc/pricing/).

## Wie AWS PrivateLink funktioniert mit DAX
<a name="dax-privatelink-how-it-works"></a>

Wenn Sie einen Schnittstellenendpunkt für DAX erstellen:

1. AWS erstellt in jedem Subnetz, das Sie für den Schnittstellenendpunkt aktivieren, eine Endpunkt-Netzwerkschnittstelle.

1. Dabei handelt es sich um vom Anforderer verwaltete Netzwerkschnittstellen, die als Einstiegspunkte für den für DAX bestimmten Datenverkehr dienen.

1. Sie können dann über private IP-Adressen innerhalb Ihrer VPC auf DAX zugreifen.

1. Diese Architektur ermöglicht es Ihnen, VPC-Sicherheitsgruppen zu verwenden, um den Zugriff auf die Endpoints zu verwalten.

1. Anwendungen können über ihre jeweiligen Schnittstellenendpunkte innerhalb einer VPC sowohl auf DynamoDB als auch auf DAX zugreifen und gleichzeitig lokalen Anwendungen die Verbindung über Direct Connect oder VPN ermöglichen.

1. Dies bietet ein konsistentes Konnektivitätsmodell für beide Dienste, vereinfacht die Architektur und verbessert die Sicherheit, da der Datenverkehr im Netzwerk gehalten wird. AWS 

## Schnittstellen-Endpunkte für DAX erstellen
<a name="dax-privatelink-creating-endpoints"></a>

Sie können einen Schnittstellenendpunkt erstellen, um mithilfe des AWS SDK oder der AWS-Managementkonsole AWS API eine Verbindung zu DAX herzustellen. CloudFormation

**Um mithilfe der Konsole einen Schnittstellenendpunkt für DAX zu erstellen**

1. Navigieren Sie zur Amazon VPC-Konsole unter [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/).

1. Wählen Sie im Navigationsbereich **Endpunkte** aus.

1. Klicken Sie auf **Endpunkt erstellen**.

1. Wählen Sie als **Servicekategorie **AWS-Services****und als **Servicename** suchen Sie nach und wählen Sie aus`com.amazonaws.region.dax`.

1. Wählen Sie für **VPC** die VPC aus, von der aus Sie auf DAX zugreifen möchten, und wählen Sie für **Subnetze die Subnetze** aus, in denen die Endpunkt-Netzwerkschnittstellen erstellt AWS werden sollen.

1. Wählen oder erstellen Sie für **Sicherheitsgruppen Sicherheitsgruppen**, die den Endpunkt-Netzwerkschnittstellen zugeordnet werden sollen.

1. Behalten Sie für **Policy** die Standardeinstellung „**Vollzugriff**“ bei oder passen Sie sie nach Bedarf an.

1. Wählen Sie **DNS-Name aktivieren** aus, um privates DNS für den Endpunkt zu aktivieren. Lassen Sie den privaten DNS-Namen aktiviert, um Änderungen an der SDK-Konfiguration zu verhindern. Wenn diese Option aktiviert ist, können Ihre Anwendungen weiterhin den Standard-DNS-Namen des Dienstes verwenden (Beispiel:`dax.region.amazonaws.com`). AWS erstellt eine private gehostete Zone in Ihrer VPC, die diesen Namen in die private IP-Adresse Ihres Endpunkts auflöst.
**Anmerkung**  
Verwenden Sie bei Bedarf regionale DNS-Namen. Die Verwendung zonaler DNS-Namen wird nicht empfohlen. Wählen Sie außerdem Subnetze aus 3 oder mehr aus AZs , um eine maximale Verfügbarkeit zu gewährleisten. PrivateLink

1. Wählen Sie **Endpunkt erstellen** aus.

**Um einen Schnittstellenendpunkt für DAX mit dem zu erstellen AWS CLI**  
Verwenden Sie den `create-vpc-endpoint` Befehl mit dem `vpc-endpoint-type` Parametersatz auf `Interface` und dem `service-name` Parametersatz auf`com.amazonaws.region.dax`.

```
aws ec2 create-vpc-endpoint \
    --vpc-id vpc-ec43eb89 \
    --vpc-endpoint-type Interface \
    --service-name com.amazonaws.us-east-1.dax \
    --subnet-ids subnet-abcd1234 subnet-1a2b3c4d \
    --security-group-ids sg-1a2b3c4d \
    --private-dns-enabled
```

## Weitere Ressourcen
<a name="dax-privatelink-resources"></a>

Weitere Informationen zu AWS PrivateLink VPC-Endpunkten finden Sie in den folgenden Ressourcen:
+ [AWS PrivateLink für DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/privatelink-interface-endpoints.html)
+ [AWS PrivateLink für DynamoDB Streams](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/privatelink-streams.html)
+ [Connect Sie Ihre VPC mit Diensten über AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html)
+ [Vereinfachen Sie die private Konnektivität zu DynamoDB mit AWS PrivateLink](https://aws.amazon.com/blogs//database/simplify-private-connectivity-to-amazon-dynamodb-with-aws-privatelink)
+ [AWS PrivateLink Whitepaper](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-privatelink.html)

# Konfigurations- und Schwachstellenanalyse in Amazon DynamoDB
<a name="configuration-vulnerability"></a>

AWS kümmert sich um grundlegende Sicherheitsaufgaben wie das Patchen von Gastbetriebssystemen (OS) und Datenbanken, die Firewall-Konfiguration und die Notfallwiederherstellung. Diese Verfahren wurden von qualifizierten Dritten überprüft und zertifiziert. Weitere Informationen finden Sie in den folgenden Ressourcen:
+ [Compliance-Validierung für Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Compliance.html)
+ [Modell der geteilten Verantwortung](https://aws.amazon.com/compliance/shared-responsibility-model/)
+ [Amazon Web Services: Übersicht über Sicherheitsverfahren](https://d0.awsstatic.com/whitepapers/Security/AWS_Security_Whitepaper.pdf) (Whitepaper)

Die folgenden bewährten Sicherheitsmethoden beinhalten auch die Adresskonfiguration und Schwachstellenanalyse in Amazon DynamoDB:
+ [Überwachen Sie die DynamoDB-Konformität mit AWS-Config-Regeln](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices-security-detective.html#rules)
+ [Überwachen Sie die DynamoDB-Konfiguration mit AWS Config](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/best-practices-security-detective.html#config)

# Bewährte Methoden für die Sicherheit für Amazon DynamoDB
<a name="best-practices-security"></a>

Amazon DynamoDB enthält eine Reihe von Sicherheitsfunktionen, die Sie bei der Entwicklung und Implementierung Ihrer eigenen Sicherheitsrichtlinien berücksichtigen sollten. Die folgenden bewährten Methoden sind allgemeine Richtlinien und keine vollständige Sicherheitslösung. Da diese bewährten Methoden für Ihre Umgebung möglicherweise nicht angemessen oder ausreichend sind, sollten Sie sie als hilfreiche Überlegungen und nicht als bindend ansehen.

**Topics**
+ [Bewährte Methoden für vorbeugende DynamoDB-Sicherheitsmaßnahmen](best-practices-security-preventative.md)
+ [DynamoDB Bewährte Methoden für Sicherheitsmaßnahmen entdecken](best-practices-security-detective.md)

# Bewährte Methoden für vorbeugende DynamoDB-Sicherheitsmaßnahmen
<a name="best-practices-security-preventative"></a>

Die folgenden bewährten Methoden können Ihnen helfen, Sicherheitsvorfälle in Amazon DynamoDB zu antizipieren und zu verhindern.

**Verschlüsselung im Ruhezustand**  
DynamoDB verschlüsselt im Ruhezustand alle Benutzerdaten, die in Tabellen, Indexen, Streams und Backups gespeichert sind, mithilfe von Verschlüsselungsschlüsseln, die in [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/) gespeichert sind. Dies bietet eine zusätzliche Datenschutzebene, indem Ihre Daten vor unbefugtem Zugriff auf den zugrunde liegenden Speicher geschützt werden.  
Sie können angeben, ob DynamoDB einen AWS-eigener Schlüssel (Standardverschlüsselungstyp), einen oder einen Von AWS verwalteter Schlüssel vom Kunden verwalteten Schlüssel zum Verschlüsseln von Benutzerdaten verwenden soll. Weitere Informationen finden Sie unter [Amazon DynamoDB-Verschlüsselung im Ruhezustand](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/EncryptionAtRest.html).

**Verwenden von IAM-Rollen zum Authentifizieren des Zugriffs auf DynamoDB**  
Damit Benutzer, Anwendungen und andere AWS Dienste auf DynamoDB zugreifen können, müssen sie gültige AWS Anmeldeinformationen in ihren AWS API-Anfragen angeben. Sie sollten AWS Anmeldeinformationen nicht direkt in der Anwendung oder EC2-Instance speichern. Dies sind langfristige Anmeldeinformationen, die nicht automatisch rotiert werden und daher erhebliche geschäftliche Auswirkungen haben können, wenn sie kompromittiert werden. Mit einer IAM-Rolle können Sie temporäre Zugriffsschlüssel abrufen, die für den Zugriff auf AWS Dienste und Ressourcen verwendet werden können.  
Weitere Informationen finden Sie unter [Identity and Access Management für Amazon DynamoDB](security-iam.md).

**Verwenden von IAM-Richtlinien für die DynamoDB-Basisautorisierung**  
Bei der Erteilung von Berechtigungen entscheiden Sie, wer sie erhält, für welche DynamoDB APIs sie Berechtigungen erhalten und welche spezifischen Aktionen Sie für diese Ressourcen zulassen möchten. Die Implementierung der geringsten Rechte ist der Schlüssel zur Verringerung des Sicherheitsrisikos und der Auswirkungen, die sich aus Fehlern oder böswilligen Absichten ergeben können.  
Weisen Sie IAM-Identitäten (d. h. Benutzern, Gruppen und Rollen) Berechtigungsrichtlinien zu und erteilen Sie somit Berechtigungen zum Ausführen von Operationen für DynamoDB-Ressourcen.  
Sie können dies wie folgt tun:  
+ [AWS Verwaltete (vordefinierte) Richtlinien](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/using-identity-based-policies.html#access-policy-examples-aws-managed)
+ [Kundenverwaltete Richtlinien](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/using-identity-based-policies.html#access-policy-examples-for-sdk-cli)

**Verwenden von IAM-Richtlinienbedingungen für eine differenzierte Zugriffssteuerung**  
Wenn Sie in DynamoDB Berechtigungen gewähren, können Sie Bedingungen angeben, die bestimmen, wie eine Berechtigungsrichtlinie wirksam wird. Die Implementierung der geringsten Rechte ist der Schlüssel zur Verringerung des Sicherheitsrisikos und der Auswirkungen, die sich aus Fehlern oder böswilligen Absichten ergeben können.  
Sie können Bedingungen angeben, wenn Sie Berechtigungen mithilfe einer IAM-Richtlinie erteilen. Sie können z. B. Folgendes tun:  
+ Erteilen Sie Berechtigungen, um Benutzern schreibgeschützten Zugriff auf bestimmte Elemente und Attribute in einer Tabelle oder einem sekundären Index zu gewähren.
+ Erteilen von Berechtigungen, damit den Benutzern lesegeschützter Zugriff auf bestimmte Attribute in einer Tabelle, basierend auf der Identität dieses Benutzers, gewährt wird.
 Weitere Informationen finden Sie unter [Verwenden von IAM-Richtlinienbedingungen für die differenzierte Zugriffskontrolle](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/specifying-conditions.html).

**Verwenden eines VPC-Endpunkts und Richtlinien für den Zugriff auf DynamoDB**  
Wenn Sie nur innerhalb einer Virtual Private Cloud (VPC) Zugriff auf DynamoDB benötigen, sollten Sie einen VPC-Endpunkt verwenden, um den Zugriff nur von der erforderlichen VPC aus zu beschränken. Dadurch wird verhindert, dass Datenverkehr durch das offene Internet gelangt und dieser Umgebung unterliegt.  
Wenn Sie einen VPC Endpunkt für DynamoDB verwenden, können Sie den Zugriff mithilfe der folgenden Optionen steuern und einschränken:  
+ VPC Endpunktrichtlinien — Diese Richtlinien werden auf den DynamoDB-VPC-Endpunkt angewendet. Mit ihnen können Sie den API-Zugriff auf die DynamoDB-Tabelle steuern und einschränken.
+ IAM-Richtlinien – Mit der `aws:sourceVpce`-Bedingung für Richtlinien, die Benutzer, Gruppen oder Rollen zugeordnet sind, können Sie erzwingen, dass der gesamte Zugriff auf die DynamoDB-Tabelle über den angegebenen VPC-Endpunkt erfolgt.
 Weitere Informationen finden Sie unter [Endpunkte für Amazon DynamoDB](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-ddb.html).

**Clientseitige Verschlüsselung in Betracht ziehen**  
Wir empfehlen Ihnen, Ihre Verschlüsselungsstrategie zu planen, bevor Sie Ihre Tabelle in DynamoDB implementieren. Wenn Sie sensible oder vertrauliche Daten in DynamoDB speichern, sollten Sie erwägen, eine clientseitige Verschlüsselung in Ihren Plan aufzunehmen. Auf diese Weise können Sie Daten so nah wie möglich an ihrem Ursprung verschlüsseln und den Schutz der Daten während ihres gesamten Lebenszyklus gewährleisten. Die Verschlüsselung Ihrer sensiblen Daten während der Übertragung und im Ruhezustand stellt sicher, dass Ihre Klartextdaten nicht für Dritte verfügbar sind.   
 Das [AWS  Database Encryption SDK for DynamoDB](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/what-is-ddb-encrypt.html) ist eine Software-Bibliothek, die Ihnen dabei hilft, Ihre Tabellendaten zu schützen, bevor Sie sie an DynamoDB senden. Es verschlüsselt, signiert, verifiziert und entschlüsselt Ihre DynamoDB-Tabellenelemente. Sie steuern, welche Attribute verschlüsselt und signiert werden.

**Überlegungen zum Primärschlüssel**  
Verwenden Sie in Ihrem [Primärschlüssel](HowItWorks.Partitions.md) für Ihre Tabelle und globale sekundäre Indizes keine vertraulichen Namen oder sensiblen Klartextdaten. Schlüsselnamen werden in Ihrer Tabellendefinition angezeigt. Die Namen der Primärschlüssel sind beispielsweise für jeden zugänglich, der über Anrufberechtigungen verfügt [DescribeTable](WorkingWithTables.Basics.md#WorkingWithTables.Basics.DescribeTable). Schlüsselwerte können in Ihren [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html)und anderen Protokollen auftauchen. Darüber hinaus verwendet DynamoDB die Schlüsselwerte, um Daten zu verteilen und Anfragen weiterzuleiten, und AWS Administratoren können die Werte beachten, um die Integrität des Dienstes aufrechtzuerhalten.  
Wenn Sie vertrauliche Daten in Ihrer Tabelle oder Ihren GSI-Schlüsselwerten verwenden müssen, empfehlen wir die Verwendung von end-to-end Client-Verschlüsselung. Auf diese Weise können Sie Schlüssel-Wert-Verweise für Ihre Daten durchführen und gleichzeitig sicherstellen, dass sie in Ihren DynamoDB-bezogenen Protokollen niemals unverschlüsselt angezeigt werden. Eine Möglichkeit, dies zu erreichen, ist die Verwendung des [AWS -Datenverschlüsselungs-SDK für DynamoDB](https://docs.aws.amazon.com/database-encryption-sdk/latest/devguide/client-server-side.html), das aber nicht erforderlich ist. Wenn Sie Ihre eigene Lösung verwenden, sollte immer einen ausreichend sicherer Verschlüsselungsalgorithmus verwendet werden. Sie sollten keine nicht-kryptografische Option wie einen Hash verwenden, da dieser in den meisten Situationen als nicht ausreichend sicher betrachtet wird.  
Wenn die Schlüsselnamen Ihrer Primärschlüssel sensibel sind, empfehlen wir, stattdessen ``pk`` und ``sk`` zu verwenden. Das ist eine allgemeine bewährte Methode, die für ein flexibles Design Ihres Partitionsschlüssels sorgt.   
Wenden Sie sich immer an Ihre Sicherheitsexperten oder Ihr AWS Kundenbetreuungsteam, wenn Sie sich nicht sicher sind, was die richtige Wahl wäre. 

# DynamoDB Bewährte Methoden für Sicherheitsmaßnahmen entdecken
<a name="best-practices-security-detective"></a>

Die folgenden bewährten Methoden für Amazon DynamoDB können dabei helfen, potenzielle Sicherheitsschwächen und Vorfälle zu erkennen.

**Wird verwendet AWS CloudTrail , um die Verwendung von AWS verwalteten KMS-Schlüsseln zu überwachen**  
Wenn Sie einen [Von AWS verwalteter Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)für die Verschlüsselung im Ruhezustand verwenden, wird die Verwendung dieses Schlüssels angemeldet AWS CloudTrail. CloudTrail bietet Einblick in die Benutzeraktivitäten, indem es die auf Ihrem Konto ausgeführten Aktionen aufzeichnet. CloudTrail zeichnet wichtige Informationen zu jeder Aktion auf, einschließlich der Person, die die Anfrage gestellt hat, die verwendeten Dienste, die durchgeführten Aktionen, die Parameter für die Aktionen und die vom AWS Dienst zurückgegebenen Antwortelemente. Diese Informationen helfen Ihnen dabei, Änderungen an Ihren AWS Ressourcen nachzuverfolgen und betriebliche Probleme zu beheben. CloudTrail macht es einfacher, die Einhaltung interner Richtlinien und regulatorischer Standards sicherzustellen.  
Sie können es verwenden CloudTrail , um die Verwendung von Schlüsseln zu überprüfen. CloudTrail erstellt Protokolldateien, die einen Verlauf der AWS API-Aufrufe und verwandter Ereignisse für Ihr Konto enthalten. Diese Protokolldateien enthalten alle AWS KMS API-Anfragen AWS-Managementkonsole, die mit den Befehlszeilentools AWS SDKs, und gestellt wurden, sowie alle API-Anfragen, die über integrierte AWS Dienste gestellt wurden. Sie können diese Protokolldateien verwenden, um Informationen über den Zeitpunkt der Verwendung des KMS-Schlüssels zu erhalten, sowie Informationen über die angeforderte Operation, die Identität des Auftraggebers und die IP-Adresse, von der aus die Anforderung gesendet wurde. Weitere Informationen finden Sie unter [Protokollierung von AWS KMS -API-Aufrufen mit AWS CloudTrail](https://docs.aws.amazon.com/kms/latest/developerguide/logging-using-cloudtrail.html) im [AWS CloudTrail -Benutzerhandbuch](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

**Überwachen Sie DynamoDB-Operationen mit CloudTrail**  
CloudTrail kann sowohl Ereignisse auf der Steuerungsebene als auch Ereignisse auf der Datenebene überwachen. Mit Operationen auf Steuerebene können Sie DynamoDB-Tabellen erstellen und verwalten. Außerdem ermöglichen sie die Arbeit mit Indexen, Streams und anderen Objekten, die von Tabellen abhängen. Mit Operationen auf Datenebene können Sie Aktionen zum Erstellen, Lesen, Aktualisieren und Löschen (auch als *CRUD* bezeichnet) für Daten in einer Tabelle ausführen. Einige Operationen auf Datenebene ermöglichen außerdem das Lesen von Daten aus einem Sekundär-Index. Um die Protokollierung von Ereignissen auf der Datenebene zu aktivieren CloudTrail, müssen Sie die Protokollierung der API-Aktivitäten auf der Datenebene in aktivieren CloudTrail. Weitere Informationen finden Sie unter [Protokollieren von Datenereignissen für Trails](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/logging-data-events-with-cloudtrail.html).  
Wenn eine Aktivität in DynamoDB auftritt, wird diese Aktivität zusammen mit anderen AWS Dienstereignissen in der CloudTrail Ereignishistorie in einem Ereignis aufgezeichnet. Weitere Informationen finden Sie unter [Protokollieren von DynamoDB-Vorgängen mithilfe von AWS CloudTrail](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/logging-using-cloudtrail.html). Sie können aktuelle Ereignisse in Ihrem AWS Konto anzeigen, suchen und herunterladen. Weitere Informationen finden Sie im *AWS CloudTrail Benutzerhandbuch* unter [Ereignisse mit CloudTrail Ereignisverlauf anzeigen](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/view-cloudtrail-events.html).  
[Für eine fortlaufende Aufzeichnung von Ereignissen in Ihrem AWS Konto, einschließlich Ereignissen für DynamoDB, erstellen Sie einen Trail.](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-create-and-update-a-trail.html) Ein Trail ermöglicht CloudTrail die Übermittlung von Protokolldateien an einen Amazon Simple Storage Service (Amazon S3) -Bucket. Wenn Sie einen Trail auf der Konsole erstellen, gilt der Trail standardmäßig für alle AWS Regionen. Der Trail protokolliert Ereignisse aus allen Regionen in der AWS -Partition und stellt die Protokolldateien für den von Ihnen angegebenen S3 Bucket bereit. Darüber hinaus können Sie andere AWS Dienste konfigurieren, um die in den CloudTrail Protokollen gesammelten Ereignisdaten weiter zu analysieren und darauf zu reagieren.

**Verwenden von DynamoDB Streams zum Überwachen von Operationen auf Datenebene**  
DynamoDB ist integriert, AWS Lambda sodass Sie Trigger erstellen können — Codeteile, die automatisch auf Ereignisse in DynamoDB Streams reagieren. Mit Auslösern können Sie Anwendungen erstellen, die auf Datenänderungen in DynamoDB-Tabellen reagieren.  
Wenn Sie DynamoDB Streams in einer Tabelle aktivieren, können Sie den Amazon-Ressourcennamen (ARN) des Streams einer Lambda-Funktion zuordnen, die Sie schreiben. Unmittelbar nach der Änderung eines Elements in der Tabelle erscheint ein neuer Datensatz im Stream der Tabelle. AWS Lambda fragt den Stream ab und ruft Ihre Lambda-Funktion synchron auf, wenn sie neue Stream-Datensätze erkennt. Die Lambda-Funktion kann jede, von Ihnen festgelegte Aktion durchführen, z. B. Senden einer Benachrichtigung oder Initiieren eines Workflows.  
Ein Beispiel finden Sie unter [Tutorial: Verwenden AWS Lambda mit Amazon DynamoDB Streams](https://docs.aws.amazon.com/lambda/latest/dg/with-ddb-example.html). Dieses Beispiel empfängt eine DynamoDB-Ereigniseingabe, verarbeitet die darin enthaltenen Nachrichten und schreibt einige der eingehenden Ereignisdaten in Amazon CloudWatch Logs.

**Überwachen Sie die DynamoDB-Konfiguration mit AWS Config**  
Mit [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/WhatIsConfig.html) können Sie Konfigurationsänderungen Ihrer AWS -Ressourcen kontinuierlich überwachen und aufzeichnen. Sie können es auch AWS Config zur Inventarisierung Ihrer AWS Ressourcen verwenden. Wenn eine Änderung eines früheren Status erkannt wird, kann eine Amazon-Simple-Notification-Service (Amazon SNS)-Benachrichtigung gesendet werden, mit der Sie überprüfen und Maßnahmen ergreifen können. Folgen Sie den Anweisungen unter [Einrichtung AWS Config mit der Konsole](https://docs.aws.amazon.com/config/latest/developerguide/gs-console.html) und stellen Sie sicher, dass DynamoDB-Ressourcentypen enthalten sind.  
Sie können konfigurieren AWS Config , dass Konfigurationsänderungen und Benachrichtigungen zu einem Amazon SNS SNS-Thema gestreamt werden. Wenn zum Beispiel eine Ressource aktualisiert wird, können Sie eine Benachrichtigung an Ihre E-Mail-Adresse erhalten, damit Sie die Änderungen sehen können. Sie können auch benachrichtigt werden, wenn Ihre benutzerdefinierten oder verwalteten Regeln anhand Ihrer Ressourcen AWS Config bewertet werden.  
Ein Beispiel finden Sie im [Thema Benachrichtigungen, die AWS Config an Amazon SNS gesendet](https://docs.aws.amazon.com/config/latest/developerguide/notifications-for-AWS-Config.html) werden im *AWS Config Entwicklerhandbuch*.

**Überwachen Sie die Einhaltung der Regeln durch DynamoDB AWS Config **  
AWS Config verfolgt kontinuierlich die Konfigurationsänderungen, die an Ihren Ressourcen vorgenommen werden. Es prüft, ob diese Änderungen gegen eine Bedingung Ihrer Regeln verstoßen. Wenn eine Ressource gegen eine Regel verstößt, werden die AWS Config Ressource und die Regel als nicht konform gekennzeichnet.  
Anhand der AWS Config Auswertung Ihrer Ressourcenkonfigurationen können Sie beurteilen, wie gut Ihre Ressourcenkonfigurationen internen Praktiken, Branchenrichtlinien und Vorschriften entsprechen. AWS Config stellt [AWS verwaltete Regeln](https://docs.aws.amazon.com/config/latest/developerguide/managed-rules-by-aws-config.html) bereit. Dabei handelt es sich um vordefinierte, anpassbare Regeln, AWS Config anhand derer bewertet wird, ob Ihre AWS Ressourcen den gängigen bewährten Methoden entsprechen.

**Markieren Sie Ihre DynamoDB-Ressourcen zur Identifizierung und Automatisierung**  
Sie können Ihren AWS Ressourcen Metadaten in Form von Tags zuweisen. Jedes Tag ist eine einfache Bezeichnung, die aus einem benutzerdefinierten Schlüssel und einem optionalen Wert besteht, der das Verwalten, Suchen und Filtern von Ressourcen erleichtern kann.   
Tagging ermöglicht die Implementierung gruppierter Steuerelemente. Obwohl es keine inhärenten Typen von Tags gibt, können Sie Ressourcen nach Zweck, Besitzer, Umgebung oder anderen Kriterien kategorisieren. Im Folgenden sind einige Beispiele aufgeführt:  
+ Sicherheit – Wird verwendet, um Anforderungen wie Verschlüsselung zu bestimmen.
+ Vertraulichkeit – Eine Kennung für die spezifische Datenvertraulichkeitsebene, die eine Ressource unterstützt
+ Umgebung – Wird verwendet, um zwischen Entwicklungs-, Test- und Produktionsinfrastruktur zu unterscheiden.
Weitere Informationen finden Sie unter [AWS Markierungsstrategien](https://aws.amazon.com/answers/account-management/aws-tagging-strategies/) und [Markierung für DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tagging.html).

**Überwachen Sie Ihre Nutzung von Amazon DynamoDB in Bezug auf bewährte Sicherheitsmethoden mithilfe von. AWS Security Hub CSPM**  
Security Hub CSPM verwendet Sicherheitskontrollen, um Ressourcenkonfigurationen und Sicherheitsstandards zu bewerten und Sie bei der Einhaltung verschiedener Compliance-Frameworks zu unterstützen.  
*Weitere Informationen zur Verwendung von Security Hub CSPM zur Evaluierung von DynamoDB-Ressourcen finden Sie unter [Amazon DynamoDB-Steuerelemente](https://docs.aws.amazon.com/securityhub/latest/userguide/dynamodb-controls.html) im Benutzerhandbuch.AWS Security Hub CSPM *