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 1: Stream-Lesezugriff mit aws zulassen: ResourceTag
Mithilfe des aws:ResourceTag/tag-key Bedingungsschlüssels können Sie das in einer IAM-Richtlinie angegebene Tag-Schlüssel-Wert-Paar mit dem Schlüssel-Wert-Paar vergleichen, das an einen DynamoDB-Stream angehängt ist. Sie können beispielsweise GetRecords Stream-Operationen zulassen, wenn die Tag-Bedingungen übereinstimmen.
Verwendung der AWS CLI
-
Erstellen Sie eine Tabelle mit aktiviertem Stream und fügen Sie ein Tag hinzu.
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 \ --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \ --region us-east-1 -
Fügen Sie dem Stream ein Tag hinzu. Rufen Sie zunächst den Stream-ARN aus der Tabellenbeschreibung ab.
STREAM_ARN=$(aws dynamodb describe-table \ --table-name myMusicTable \ --query "Table.LatestStreamArn" \ --output text \ --region us-east-1) aws dynamodb tag-resource \ --resource-arn $STREAM_ARN \ --tags Key=Team,Value=Analytics \ --region us-east-1 -
Erstellen Sie eine Inline-Richtlinie und fügen Sie sie einer Rolle hinzu, wie im folgenden Beispiel gezeigt.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "StringEquals": { "aws:ResourceTag/Team": "Analytics" } } } ] }Diese Richtlinie ermöglicht die
GetRecordsOperationenDescribeStreamund, wenn das Tag des Streams mit dem in der Richtlinie angegebenen Schlüssel „Team“ und dem Wert „Analytics“ übereinstimmt. -
Nehmen Sie die Rolle mit der in Schritt 3 beschriebenen Richtlinie an.
-
Verwenden Sie den
describe-streamAWS CLI-Befehl im Stream.aws dynamodb describe-stream \ --stream-arn $STREAM_ARN \ --region us-east-1
Verhalten mit und ohne Streams (ABAC)
- Ohne Streams ABAC
-
Wenn Streams ABAC für Sie nicht aktiviert ist AWS-Konto, stimmen die Tag-Bedingungen in der IAM-Richtlinie und im DynamoDB-Stream nicht überein. Die
DescribeStreamAktion gibt ein zurückAccessDeniedException, weil keine Richtlinie die Aktion ohne übereinstimmende Tag-Bedingungen zulässt. - Mit Streams ABAC
-
Wenn Streams ABAC für Sie aktiviert ist AWS-Konto, wird die
DescribeStreamAktion erfolgreich abgeschlossen. Das liegt daran, dass die Inline-Richtlinie die Aktion zulässt, wenn die Tag-Bedingungen in der IAM-Richtlinie und im Stream übereinstimmen.