

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.

# Kontenübergreifenden Zugriff auf Amazon DynamoDB konfigurieren
<a name="configure-cross-account-access-to-amazon-dynamodb"></a>

*Shashi Dalmia, Imhoertha Ojior und Esteban Serna Parra, Amazon Web Services*

## Zusammenfassung
<a name="configure-cross-account-access-to-amazon-dynamodb-summary"></a>

In diesem Muster werden die Schritte zur Konfiguration des kontoübergreifenden Zugriffs auf Amazon DynamoDB mithilfe ressourcenbasierter Richtlinien erläutert. Für Workloads, die DynamoDB verwenden, wird es immer üblicher, [Strategien zur Workload-Isolierung](https://aws.amazon.com/solutions/guidance/workload-isolation-on-aws/?did=sl_card&trk=sl_card) zu verwenden, um Sicherheitsbedrohungen zu minimieren und Compliance-Anforderungen zu erfüllen. Die Implementierung von Strategien zur Workload-Isolierung erfordert häufig konto- und regionsübergreifenden Zugriff auf DynamoDB-Ressourcen mithilfe identitätsbasierter AWS Identity and Access Management (IAM-) Richtlinien. Dazu gehören das Festlegen von IAM-Berechtigungen und das Herstellen einer Vertrauensbeziehung zwischen den. AWS-Konten

[Ressourcenbasierte Richtlinien für DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html) vereinfachen die Sicherheitslage für kontenübergreifende Workloads erheblich. Dieses Muster enthält Schritte und Beispielcode, um zu demonstrieren, wie Sie AWS Lambda Funktionen in einem konfigurieren können AWS-Konto , um Daten in eine DynamoDB-Datenbanktabelle in einem anderen Konto zu schreiben.

## Voraussetzungen und Einschränkungen
<a name="configure-cross-account-access-to-amazon-dynamodb-prereqs"></a>

**Voraussetzungen**
+ Zwei aktiv. AWS-Konten Dieses Muster bezeichnet diese Konten als *Konto A* und *Konto B.*
+ AWS Command Line Interface (AWS CLI) für den Zugriff auf Konto A [installiert](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) und [konfiguriert](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html), um die DynamoDB-Tabelle zu erstellen. Die anderen Schritte in diesem Muster enthalten Anweisungen zur Verwendung der IAM-, DynamoDB- und Lambda-Konsolen. Wenn Sie es AWS CLI stattdessen verwenden möchten, konfigurieren Sie es so, dass es auf beide Konten zugreift.

**Einschränkungen**
+ Einige AWS-Services sind nicht in allen verfügbar AWS-Regionen. Informationen zur Verfügbarkeit in den einzelnen Regionen finden Sie [AWS-Services unter Nach Regionen](https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/). Informationen zu bestimmten Endpunkten finden Sie auf der Seite [Dienstendpunkte und Kontingente](https://docs.aws.amazon.com/general/latest/gr/aws-service-information.html). Wählen Sie dort den Link für den Dienst aus.

## Architektur
<a name="configure-cross-account-access-to-amazon-dynamodb-architecture"></a>

Das folgende Diagramm zeigt eine Architektur mit einem einzigen Konto. AWS Lambda, Amazon Elastic Compute Cloud (Amazon EC2) und DynamoDB befinden sich alle in demselben Konto. In diesem Szenario können Lambda-Funktionen und EC2 Amazon-Instances auf DynamoDB zugreifen. Um Zugriff auf die DynamoDB-Tabelle zu gewähren, können Sie eine identitätsbasierte Richtlinie in IAM oder eine ressourcenbasierte Richtlinie in DynamoDB erstellen.

![\[Verwenden von IAM-Berechtigungen für den Zugriff auf eine DynamoDB-Tabelle im selben Konto.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/bfc32fe8-5db0-4cac-a30f-b870a1a82875/images/cbb009eb-422d-4833-a1bc-0c571d83c21f.png)


Das folgende Diagramm zeigt eine Architektur mit mehreren Konten. Wenn Ressourcen in einem AWS-Konto Konto Zugriff auf eine DynamoDB-Tabelle in einem anderen Konto benötigen, müssen Sie in DynamoDB eine ressourcenbasierte Richtlinie einrichten, um den erforderlichen Zugriff zu gewähren. Im folgenden Diagramm wird beispielsweise einer Lambda-Funktion in Konto B mithilfe einer ressourcenbasierten Richtlinie Zugriff auf die DynamoDB-Tabelle in Konto A gewährt.

![\[Verwenden einer ressourcenbasierten Richtlinie für den Zugriff auf eine DynamoDB-Tabelle in einem anderen Konto.\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/images/pattern-img/bfc32fe8-5db0-4cac-a30f-b870a1a82875/images/9f9165a8-b767-4427-a2ae-31b5b8c83326.png)


Dieses Muster beschreibt den kontenübergreifenden Zugriff zwischen Lambda und DynamoDB. Sie können ähnliche Schritte für andere Konten verwenden, AWS-Services wenn die entsprechenden Berechtigungen für beide Konten konfiguriert sind. Wenn Sie beispielsweise einer Lambda-Funktion Zugriff auf einen Amazon Simple Storage Service (Amazon S3) -Bucket in Konto A gewähren möchten, können Sie eine [ressourcenbasierte Richtlinie](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html) in Amazon S3 erstellen und die Berechtigungen zur [Lambda-Ausführungsrolle](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) in Konto B hinzufügen.

## Tools
<a name="configure-cross-account-access-to-amazon-dynamodb-tools"></a>

**AWS-Services**
+ [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Introduction.html) ist ein vollständig verwalteter NoSQL-Datenbank-Service, der schnelle und planbare Leistung mit nahtloser Skalierbarkeit bereitstellt.
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) hilft Ihnen dabei, den Zugriff auf Ihre AWS-Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, sie zu verwenden.
+ [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/welcome.html) ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

**Code**

Dieses Muster enthält Beispielcode im Abschnitt [Zusätzliche Informationen](#configure-cross-account-access-to-amazon-dynamodb-additional), der zeigt, wie Sie eine Lambda-Funktion in Konto B so konfigurieren können, dass sie in die DynamoDB-Tabelle in Konto A schreibt. Der Code wird nur zur Veranschaulichung und zu Testzwecken bereitgestellt. Wenn Sie dieses Muster in einer Produktionsumgebung implementieren, verwenden Sie den Code als Referenz und passen Sie ihn an Ihre eigene Umgebung an.

## Best Practices
<a name="configure-cross-account-access-to-amazon-dynamodb-best-practices"></a>
+ Folgen Sie den [Best Practices für ressourcenbasierte Richtlinien](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-best-practices.html) in der DynamoDB-Dokumentation.
+ Folgen Sie dem Prinzip der geringsten Rechte und gewähren Sie die für die Ausführung einer Aufgabe erforderlichen Mindestberechtigungen. Weitere Informationen finden Sie in der IAM-Dokumentation unter [Gewährung der geringsten Rechte](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html#grant-least-priv) und [bewährte Methoden zur Sicherheit](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html).

## Epen
<a name="configure-cross-account-access-to-amazon-dynamodb-epics"></a>

### Erstellen Sie eine IAM-Richtlinie und -Rolle für die Lambda-Funktion in Konto B
<a name="create-an-iam-policy-and-role-for-the-lam-function-in-account-b"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Richtlinie in Konto B. | Diese IAM-Richtlinie ermöglicht die [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)Aktion für eine DynamoDB-Tabelle in Konto A.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html) | Allgemeines AWS | 
| Erstellen Sie eine Rolle in Konto B. | Die Lambda-Funktion in Konto B verwendet diese IAM-Rolle, um auf die DynamoDB-Tabelle in Konto A zuzugreifen.[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html)Weitere Informationen zum Erstellen von Rollen finden Sie in der [IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html). | Allgemeines AWS | 
| Beachten Sie die Rollen-ARN. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html) | Allgemeines AWS | 

### Erstellen Sie eine DynamoDB-Tabelle in Konto A
<a name="create-a-ddb-table-in-account-a"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine DynamoDB-Tabelle. | Verwenden Sie den folgenden AWS CLI Befehl, um eine DynamoDB-Tabelle zu erstellen.<pre> aws dynamodb create-table \<br />    --table-name Table-Account-A \<br />    --attribute-definitions \<br />      AttributeName=category,AttributeType=S \<br />      AttributeName=item,AttributeType=S \<br />    --key-schema \<br />      AttributeName=category,KeyType=HASH \<br />      AttributeName=item,KeyType=RANGE \<br />    --provisioned-throughput \<br />      ReadCapacityUnits=5,WriteCapacityUnits=5 \<br />    --resource-policy \<br />      '{         <br />          "Version": "2012-10-17",		 	 	 <br />          "Statement": [<br />            {                    <br />               "Sid": "Statement1",<br />               "Effect": "Allow",<br />               "Principal": {<br />                  "AWS": "arn:aws:iam::<Account-B-ID>:role/<Role-Name>"<br />               },<br />               "Action": "dynamodb:PutItem",<br />               "Resource": "arn:aws:dynamodb:<Region>:<Account-A-ID>:table/Table-Account-A"<br />            }            <br />         ]<br />      }'</pre>Ersetzen Sie in diesem Codebeispiel Folgendes:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html)Sie geben die ressourcenbasierte Richtlinienkonfiguration in der `create-table` Anweisung mithilfe des `--resource-policy` Flags an. Diese Richtlinie bezieht sich auf den ARN für die DynamoDB-Tabelle in Konto A.Weitere Informationen zum Erstellen von Tabellen finden Sie in der [DynamoDB-Dokumentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html). | Allgemeines AWS | 

### Erstellen Sie eine Lambda-Funktion in Konto B
<a name="create-a-lam-function-in-account-b"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Erstellen Sie eine Lambda-Funktion, um Daten in DynamoDB zu schreiben. | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html)Weitere Informationen zum Erstellen von Lambda-Funktionen finden Sie in der [Lambda-Dokumentation](https://docs.aws.amazon.com/lambda/latest/dg/getting-started-create-function.html). | Allgemeines AWS | 

### Bereinigen
<a name="clean-up"></a>


| Aufgabe | Description | Erforderliche Fähigkeiten | 
| --- | --- | --- | 
| Löschen Sie -Ressourcen. | Um zu vermeiden, dass im Zusammenhang mit den nach diesem Muster erstellten Ressourcen Kosten anfallen, gehen Sie wie folgt vor, um diese Ressourcen zu löschen:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/prescriptive-guidance/latest/patterns/configure-cross-account-access-to-amazon-dynamodb.html) | Allgemeines AWS | 

## Fehlerbehebung
<a name="configure-cross-account-access-to-amazon-dynamodb-troubleshooting"></a>


| Problem | Lösung | 
| --- | --- | 
| Beim Erstellen der Lambda-Funktion erhalten Sie eine `ResourceNotFoundException` Fehlermeldung. | Vergewissern Sie sich, dass Sie die ID AWS-Region und die ID von Konto A korrekt eingegeben haben. Diese sind Teil des ARN für die DynamoDB-Tabelle. | 

## Zugehörige Ressourcen
<a name="configure-cross-account-access-to-amazon-dynamodb-resources"></a>
+ [Erste Schritte mit DynamoDB (DynamoDB-Dokumentation](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html))
+ [Erste Schritte mit Lambda](https://docs.aws.amazon.com/lambda/latest/dg/getting-started.html) (Lambda-Dokumentation)
+ [Verwenden ressourcenbasierter Richtlinien für DynamoDB (DynamoDB-Dokumentation)](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html)
+ [IAM-Richtlinien erstellen](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html) (IAM-Dokumentation)
+ [Logik zur kontenübergreifenden Bewertung von Richtlinien (IAM-Dokumentation](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic-cross-account.html))
+ [Referenz zu den IAM-JSON-Richtlinienelementen](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) (IAM-Dokumentation)

## Zusätzliche Informationen
<a name="configure-cross-account-access-to-amazon-dynamodb-additional"></a>

*Beispielcode*

```
import boto3
from datetime import datetime

dynamodb_client = boto3.client('dynamodb')

def lambda_handler(event, context):
     now = datetime.now().isoformat()
     data = dynamodb_client.put_item(TableName='arn:aws:dynamodb:<Region>:<Account-A-ID>:table/Table-Account-A', Item={"category": {"S": "Fruit"},"item": {"S": "Apple"},"time": {"S": now}})
     return data
```

**Anmerkung**  
Wenn der DynamoDB-Client instanziiert wird, wird der ARN der DynamoDB-Tabelle anstelle des Tabellennamens bereitgestellt. Dies ist erforderlich, damit die Lambda-Funktion bei ihrer Ausführung eine Verbindung mit der richtigen DynamoDB-Tabelle herstellt.