Utilizzo dell’ABAC con tabelle e indici DynamoDB - Amazon DynamoDB

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à.

Utilizzo dell’ABAC con tabelle e indici DynamoDB

La seguente procedura mostra come impostare le autorizzazioni attraverso l’ABAC. In questo scenario di esempio verranno aggiunti tag a una tabella DynamoDB e verrà creato un ruolo IAM con una policy che include condizioni basate su tag. Quindi, verranno testate le autorizzazioni consentite sulla tabella DynamoDB soddisfacendo le condizioni dei tag.

Fase 1: aggiungere tag a una tabella DynamoDB

Puoi aggiungere tag a tabelle DynamoDB nuove o esistenti utilizzando Console di gestione AWS AWS , API,AWS CLI() AWS Command Line Interface AWS , SDK o. AWS CloudFormation Ad esempio, il seguente comando della CLI tag-resource aggiunge un tag a una tabella denominata MusicTable.

aws dynamodb tag-resource —resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/MusicTable —tags Key=environment,Value=staging

Fase 2: creare un ruolo IAM con una policy che include condizioni basate su tag

Crea una policy IAM utilizzando la chiave di condizione aws: ResourceTag /tag-key per confrontare la coppia chiave-valore del tag specificata nella policy IAM con la coppia chiave-valore allegata alla tabella. La seguente policy di esempio consente agli utenti di inserire o aggiornare elementi nelle tabelle se queste tabelle contengono la coppia chiave-valore del tag: "environment": "staging". Se una tabella non ha la coppia chiave-valore del tag specificata, queste azioni vengono negate.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:UpdateItem" ], "Resource": "arn:aws:dynamodb:*:*:table/*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "staging" } } } ] }

Fase 3: testare le autorizzazioni concesse

  1. Collega la policy IAM a un utente o a un ruolo di prova nell’ Account AWS. Assicurati che il principale IAM che utilizzi non abbia già accesso alla tabella DynamoDB tramite una policy diversa.

  2. Assicurati che la tabella DynamoDB contenga la chiave del tag "environment" con un valore di "staging".

  3. Esegui le azioni dynamodb:PutItem e dynamodb:UpdateItem sulla tabella con tag. Queste azioni dovrebbero andare a buon fine se è presente la coppia chiave-valore del tag "environment": "staging".

    Se si eseguono queste azioni su una tabella che non ha la coppia chiave-valore del tag "environment": "staging", la richiesta avrà esito negativo restituendo una AccessDeniedException.

È anche possibile esaminare gli altri casi d’uso di esempio descritti nella sezione seguente per implementare l’ABAC ed eseguire altri test.