Verwenden der attributbasierten Zugriffskontrolle mit DynamoDB - Amazon DynamoDB

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.

Verwenden der attributbasierten Zugriffskontrolle mit DynamoDB

Die attributebasierte Zugriffskontrolle (ABAC) ist eine Autorisierungsstrategie, die Zugriffsberechtigungen auf der Grundlage von Tag-Bedingungen 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 and Markierungseinschränkungen in DynamoDB.

Weitere Informationen zur Verwendung von Tags zur Steuerung des Zugriffs auf AWS Ressourcen finden Sie in den folgenden Themen im IAM-Benutzerhandbuch:

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 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: 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 später mithilfe von AWS API AWS-Managementkonsole, AWS Command Line Interface (AWS CLI), AWS SDK oder angeben. AWS CloudFormation

Im folgenden Beispiel ist die UpdateItemAktion 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" } } } ] }

Weshalb sollte ich ABAC verwenden?

  • 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. 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

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: 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: 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 CreateTableund. TagResource

  • aws: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 CreateTableTagResource, undUntagResource.

Überlegungen zur Verwendung von ABAC mit DynamoDB

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.

  • 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.