

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
<a name="streams-abac-example-1"></a>

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
<a name="streams-abac-example-1-cli"></a>

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
   ```

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
   ```

1. Create una [policy in linea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies) 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.

1. Assumi il ruolo con la politica descritta nella Fase 3.

1. 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
<a name="streams-abac-example-1-behavior"></a>

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'`DescribeStream`azione 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.