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
-
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 -
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 -
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
GetRecordsoperazioniDescribeStreamand quando il tag dello stream corrisponde alla chiave «Team» e al valore «Analytics» specificati nella policy. -
Assumi il ruolo con la politica descritta nella Fase 3.
-
Usa il comando
describe-streamAWS 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 anAccessDeniedExceptionperché 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.
DescribeStreamQuesto perché la policy in linea consente l'azione quando le condizioni del tag nella policy IAM e nello stream corrispondono.