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
-
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 -
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
GetRecordsoperazioniDescribeStreamand quando il tag dello stream corrisponde alla chiave «Team» e al valore «Analytics» specificati nella policy. -
Assumi il ruolo con la policy 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 nello stream DynamoDB non corrispondono. L'
DescribeStreamazione restituisce unAccessDeniedExceptionperché 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.