View a markdown version of this page

Esempio 1: consenti l'accesso in lettura allo stream utilizzando aws: ResourceTag - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempio 1: consenti l'accesso in lettura allo stream utilizzando aws: ResourceTag

Utilizzando la chiave aws:ResourceTag/tag-key condizionale, puoi confrontare la coppia chiave-valore del tag specificata in una policy IAM con la coppia chiave-valore associata a uno stream DynamoDB. Ad esempio, puoi consentire le GetRecords operazioni di streaming se le condizioni del tag corrispondono.

Utilizzo di AWS CLI

  1. Crea una tabella con uno stream abilitato e aggiungi un tag.

    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
  2. Aggiungi un tag allo stream. Innanzitutto, ottieni l'ARN dello stream dalla descrizione della tabella.

    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
  3. Crea una policy in linea e aggiungila a un ruolo, come mostrato nell'esempio seguente.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "StringEquals": { "aws:ResourceTag/Team": "Analytics" } } } ] }

    Questa policy consente le GetRecords operazioni DescribeStream and quando il tag dello stream corrisponde alla chiave «Team» e al valore «Analytics» specificati nella policy.

  4. Assumi il ruolo con la policy descritta nella Fase 3.

  5. Usa il comando describe-stream AWS CLI sullo stream.

    aws dynamodb describe-stream \ --stream-arn $STREAM_ARN \ --region us-east-1

Comportamento con e senza Streams ABAC

Senza Streams ABAC

Se Streams ABAC non è abilitato per te Account AWS, le condizioni dei tag nella policy IAM e nello stream DynamoDB non corrispondono. L'DescribeStreamazione restituisce un AccessDeniedException perché nessuna policy consente l'azione senza corrispondere alle condizioni dei tag.

Con Streams ABAC

Se Streams ABAC è abilitato per te Account AWS, l'DescribeStreamazione viene completata correttamente. Questo perché la policy inline consente l'azione quando le condizioni dei tag nella policy IAM e nello stream corrispondono.