View a markdown version of this page

Exemple 1 : Autoriser l'accès en lecture au flux à l'aide d'AWS : ResourceTag - Amazon DynamoDB

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)

  1. 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
  2. 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
  3. 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 GetRecords opérations DescribeStream et lorsque la balise du flux correspond à la clé « Team » et à la valeur « Analytics » spécifiées dans la politique.

  4. Assumez le rôle à l'aide de la politique décrite à l'étape 3.

  5. Utilisez la commande describe-stream AWS 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 un AccessDeniedException car 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.