View a markdown version of this page

Esempio 1: consentire l'accesso alla lettura dello 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: consentire l'accesso alla lettura dello stream utilizzando aws: ResourceTag

Utilizzando la chiave aws:ResourceTag/tag-key condition, puoi confrontare la coppia chiave-valore del tag specificata in una policy IAM con la coppia chiave-valore collegata a un flusso DynamoDB. Ad esempio, puoi consentire le GetRecords operazioni di flusso 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. Create una policy in linea e aggiungetela a un ruolo, come illustrato 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 politica 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 nel flusso DynamoDB non corrispondono. L'DescribeStreamazione restituisce un an AccessDeniedException perché nessuna policy consente l'azione senza soddisfare le condizioni del tag.

Con Streams ABAC

Se Streams ABAC è abilitato per te Account AWS, l'azione viene completata con successo. DescribeStream Questo perché la policy in linea consente l'azione quando le condizioni del tag nella policy IAM e nello stream corrispondono.