Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Exemple 1 : Autoriser l'accès en lecture au flux à l'aide d'AWS : ResourceTag
À l'aide de la clé de aws:ResourceTag/tag-key condition, vous pouvez comparer la paire clé-valeur de balise spécifiée dans une politique IAM avec la paire clé-valeur attachée à un flux DynamoDB. Par exemple, vous pouvez autoriser les GetRecords opérations de diffusion si les conditions de la balise correspondent.
Utilisation de AWS INTERFACE DE LIGNE DE COMMANDE (CLI)
-
Créez un tableau avec un flux activé et ajoutez une balise.
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 -
Ajoutez un tag au flux. Tout d'abord, récupérez l'ARN du flux à partir de la description du tableau.
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 -
Créez une politique en ligne et ajoutez-la à un rôle, comme illustré dans l'exemple suivant.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "StringEquals": { "aws:ResourceTag/Team": "Analytics" } } } ] }Cette politique autorise les
GetRecordsopérationsDescribeStreamet lorsque la balise du flux correspond à la clé « Team » et à la valeur « Analytics » spécifiées dans la politique. -
Assumez le rôle à l'aide de la politique décrite à l'étape 3.
-
Utilisez la commande
describe-streamAWS CLI sur le flux.aws dynamodb describe-stream \ --stream-arn $STREAM_ARN \ --region us-east-1
Comportement avec et sans Streams ABAC
- Sans Streams ABAC
-
Si Streams ABAC n'est pas activé pour vous Compte AWS, les conditions de balise définies dans la politique IAM et celles du flux DynamoDB ne correspondent pas. L'
DescribeStreamaction renvoie unAccessDeniedExceptioncar aucune politique n'autorise l'action sans conditions de balise correspondantes. - Avec Streams ABAC
-
Si Streams ABAC est activé pour vous Compte AWS, l'
DescribeStreamaction se termine correctement. En effet, la politique en ligne autorise l'action lorsque les conditions de balise de la politique IAM et celles du flux correspondent.