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.
Verwendung von IAM Richtlinienbedingungen für eine differenzierte Zugriffskontrolle
Wenn Sie in DynamoDB Berechtigungen gewähren, können Sie Bedingungen angeben, die bestimmen, wie eine Berechtigungsrichtlinie wirksam wird.
Übersicht
In DynamoDB haben Sie die Möglichkeit, Bedingungen für die Erteilung von Berechtigungen mithilfe einer IAM Richtlinie anzugeben (sieheIdentity and Access Management für Amazon DynamoDB). 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 mithilfe von Bedingungsschlüsseln angeben, wie im Anwendungsfall im folgenden Abschnitt dargestellt.
Anmerkung
Einige AWS Dienste unterstützen auch Tag-basierte Bedingungen, DynamoDB jedoch nicht.
Anwendungsfall für Berechtigungen
Neben der Steuerung des Zugriffs auf API DynamoDB-Aktionen können Sie auch den Zugriff auf einzelne Datenelemente und Attribute steuern. 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:
-
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:
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 auf Benutzer, Gruppen oder Rollen an, die Sie mit 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.
Sie verwenden das IAM Condition
Element, um eine detaillierte 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.
Nehmen wir beispielsweise eine mobile Spielanwendung, mit der Spieler aus einer Auswahl verschiedener Spiele wählen und diese auch spielen können. Die Anwendung nutzt 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:
{ "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. -
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 dieStringEqualsIfExists
-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 ausgewertet wird, ist das Ergebnis immer entweder wahr (Zugriff ist erlaubt) oder falsch (Zugriff verweigert). 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.
IAMRichtliniendokumente dürfen nur die folgenden Unicode-Zeichen enthalten: horizontales Tabulatorzeichen (U+0009), Zeilenvorschub (U+000A), Zeilenwechsel (U+000D) und Zeichen im Bereich U+0020 bis U+00FF.
Festlegung von Bedingungen: Verwenden von Bedingungsschlüsseln
AWS stellt eine Reihe vordefinierter Bedingungsschlüssel (AWS-weite Bedingungsschlüssel) für alle Dienste bereit, die die Zugriffskontrolle unterstützen. AWS IAM 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 im IAM Benutzerhandbuch unter Verfügbare Schlüssel für Bedingungen.
Die folgende Tabelle zeigt die DynamoDB-Service-spezifischen Bedingungsschlüssel, die für DynamoDB gültig sind.
DynamoDB-Bedingungsschlüssel | Beschreibung |
---|---|
dynamodb:LeadingKeys |
Repräsentiert das erste Schlüsselattribut der Tabelle – mit anderen Worten, der Partitionsschlüssel. Der Schlüsselname |
dynamodb:Select |
Repräsentiert den Parameter
|
dynamodb:Attributes |
Stellt eine Liste der Attributnamen in einer Anforderung oder der Attribute dar, die von einer Anforderung zurückgegeben werden.
|
dynamodb:ReturnValues |
Repräsentiert den Parameter
|
dynamodb:ReturnConsumedCapacity |
Repräsentiert den Parameter
|
Begrenzen des Benutzerzugriffs
Viele IAM Berechtigungsrichtlinien ermöglichen es Benutzern, nur auf die Elemente in einer Tabelle zuzugreifen, bei denen der Wert des Partitionsschlüssels mit der Benutzer-ID übereinstimmt. 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 die Anmeldung bei 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.
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, dass Sie die Nutzung von Richtlinien, die auf Verweigerung basieren, mit DynamoDB vermeiden, weil es verglichen mit Richtlinien, die auf Berechtigung basieren, schwierig ist, sie korrekt zu schreiben. Darüber hinaus können future Änderungen an der DynamoDB API (oder Änderungen an vorhandenen API Eingaben) dazu führen, dass eine auf Ablehnung basierende Richtlinie unwirksam wird.
Beispielrichtlinien: Verwenden von Bedingungen für die differenzierte Zugriffskontrolle
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
Das folgende Video erklärt die detaillierte Zugriffskontrolle in DynamoDB anhand von Richtlinienbedingungen. IAM
1: Berechtigungen erteilen, die den Zugriff auf Elemente mit einem bestimmten Partitions-Schlüsselwert beschränken
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.
{ "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
Bei der Verwendung von Richtlinienvariablen müssen Sie explizit die Version 2012-10-17
in der Richtlinie 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.
{ "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.
2: Berechtigungen erteilen, die den Zugriff auf bestimmte Attribute in einer Tabelle beschränken
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.
{ "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 anhand des Prinzips der geringsten Rechte bestimmen, wie es in Wikipedia unter http://en.wikipedia erklärt wird. org/wiki/Principle_of_least_privilege
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 WertSPECIFIC_ATTRIBUTES
sein. Diese Anforderung verhindert, dass die API Aktion unzulässige Attribute zurückgibt, z. B. aus einer Indexprojektion. -
Wenn der Benutzer den Parameter
ReturnValues
angibt, dann muss sein WertNONE
,UPDATED_OLD
oderUPDATED_NEW
sein. Dies ist erforderlich, weil dieUpdateItem
-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 vonReturnValues
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
oderReturnValues
– 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 AktionenReturnValues
akzeptiert, können SieReturnValues
aus der Bedingung entfernen. Sie können auchStringEqualsIfExists
zuStringEquals
ändern, weil der ParameterSelect
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. DaUpdateItem
den ParameterSelect
nicht verwendet, können SieSelect
aus der Bedingung entfernen. Sie müssen auchStringEqualsIfExists
zuStringEquals
ändern, weil der ParameterReturnValues
immer einen Wert hat (NONE
sofern nicht anders angegeben). -
Um alle Attribute zu erlauben, deren Name einem Muster entspricht, verwenden Sie
StringLike
anstattStringEquals
und verwenden Sie Platzhalter (*) für mehrere Zeichen.
3: Erteilen von Berechtigungen zum Verhindern von Aktualisierungen auf bestimmte Attribute
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.
{ "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" ] }, "StringEquals":{ "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 derdynamodb:ReturnValues
-Bedingungsschlüssel angegeben wird. Der Bedingungsschlüssel beschränktReturnValues
in der Anforderung auf das Angeben vonNONE
,UPDATED_OLD
oderUPDATED_NEW
und schließtALL_OLD
oderALL_NEW
nicht mit ein. -
Die
PutItem
- undDeleteItem
-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 keine Genehmigung erteilenAPIs.
4: Erteilen von Berechtigungen, um nur projizierte Attribute in einem Index abzufragen
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.
{ "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.
{ "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" } } } ] }
5: Erteilen von Berechtigungen für das Beschränken des Zugriffs auf bestimmte Attribute und Partitions-Schlüsselwerte
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 Partitions-Schlüsselwert der Facebook-ID des Benutzers entspricht.
{ "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:
-
Schreibaktionen, die von der Richtlinie (
UpdateItem
) zugelassen werden, können nurattribute-A
oderattribute-B
ändern. -
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 inTopScoreDateTimeIndex
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 ParameterSelect
aufSPECIFIC_ATTRIBUTES
in Leseanforderungen festlegen und es können nur Listenattribute angefordert werden. Die Anwendung kann bei SchreibanforderungenReturnValues
nicht aufALL_OLD
oderALL_NEW
festlegen und sie kann keine bedingten Schreibvorgänge basierend auf beliebigen anderen Attributen durchführen.