View a markdown version of this page

Beispiel 3: Verweigern Sie den Stream-Zugriff, es sei denn, ein bestimmtes Tag ist vorhanden - 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.

Beispiel 3: Verweigern Sie den Stream-Zugriff, es sei denn, ein bestimmtes Tag ist vorhanden

Mithilfe des aws:TagKeys Bedingungsschlüssels können Sie das Taggen eines Streams verweigern, es sei denn, ein erforderlicher Tag-Schlüssel ist in der Anfrage enthalten.

Verwendung der AWS CLI

  1. Fügen Sie einer Rolle, die DynamoDB-Zugriff hat, eine vom Kunden verwaltete Richtlinie hinzu, wie im folgenden Beispiel gezeigt.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "dynamodb:TagResource" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "Null": { "aws:TagKeys": "false" }, "ForAllValues:StringNotEquals": { "aws:TagKeys": "CostCenter" } } } ] }
  2. Nehmen Sie die Rolle an und versuchen Sie, einen Stream mit einem Tag-Schlüssel zu kennzeichnen, der es nicht ist. CostCenter

    aws dynamodb tag-resource \ --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/myMusicTable/stream/2024-01-01T00:00:00.000 \ --tags Key=Department,Value=Engineering

Verhalten mit und ohne Streams ABAC

Ohne Streams ABAC

Wenn Streams ABAC für Sie nicht aktiviert ist AWS-Konto, sendet DynamoDB die Tag-Schlüssel in der Anfrage nicht an IAM. Die Null Bedingung stellt sicher, dass die Bedingung als falsch ausgewertet wird, wenn die Anforderung keine Tag-Schlüssel enthält. Da die Deny-Richtlinie nicht übereinstimmt, wird der tag-resource Befehl erfolgreich abgeschlossen.

Mit Streams ABAC

Wenn Streams ABAC für Sie aktiviert ist AWS-Konto, wird der Tag-Schlüssel mit dem bedingungsbasierten Tag-Schlüssel verglichen, der in der CostCenter Deny-Richtlinie enthalten Department ist. Der Tag-Schlüssel stimmt aufgrund des Operators Department nicht mit dem in der Deny-Richtlinie enthaltenen Tag-Schlüssel überein. StringNotEquals Daher schlägt die TagResource Aktion fehl und gibt einen zurückAccessDeniedException.