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 di ABAC con DynamoDB Streams
I passaggi seguenti mostrano come impostare le autorizzazioni utilizzando ABAC per DynamoDB Streams. In questo scenario di esempio, aggiungi tag a uno stream DynamoDB e crei un ruolo IAM con una policy che include condizioni basate sui tag. Quindi, verifichi le autorizzazioni consentite sullo stream DynamoDB facendo corrispondere le condizioni dei tag.
Argomenti
Passaggio 1: aggiungi tag a uno stream DynamoDB
Puoi aggiungere tag a DynamoDB Streams utilizzando la CLI o l'SDK. AWS Il seguente comando tag-resource CLI aggiunge un tag a uno stream.
aws dynamodb tag-resource \ --resource-arn arn:aws:dynamodb:us-east-1:123456789012:table/MusicTable/stream/2024-01-01T00:00:00.000 \ --tags Key=environment,Value=staging
Nota
Per trovare l'ARN del tuo stream, usa il describe-table comando e cerca il LatestStreamArn campo nella risposta.
Fase 2: creare un ruolo IAM con una policy che include condizioni basate su tag
Crea una policy IAM utilizzando la chiave aws:ResourceTag/{{tag-key}} condizionale per confrontare la coppia chiave-valore del tag specificata nella policy IAM con la coppia chiave-valore associata allo stream. La seguente policy di esempio consente agli utenti di ottenere record e descrivere uno stream se lo stream contiene la coppia chiave-valore del tag:. "environment": "staging" Se uno stream non ha la coppia chiave-valore del tag specificata, queste azioni vengono negate.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator" ], "Resource": "arn:aws:dynamodb:*:*:table/*/stream/*", "Condition": { "StringEquals": { "aws:ResourceTag/environment": "staging" } } } ] }
Fase 3: testare le autorizzazioni concesse
-
Collega la policy IAM a un utente o a un ruolo di prova nell’ Account AWS. Assicurati che l'IAM principal che utilizzi non abbia già accesso allo stream DynamoDB tramite una policy diversa.
-
Assicurati che il tuo stream DynamoDB contenga la chiave del
"environment"tag con un valore di."staging" -
Esegui le
dynamodb:GetRecordsazionidynamodb:DescribeStreame sullo stream taggato. Queste azioni hanno esito positivo se è presente la coppia chiave-valore del"environment": "staging"tag.Se esegui queste azioni su uno stream che non ha la coppia
"environment": "staging"tag chiave-valore, la tua richiesta ha esito negativo con un.AccessDeniedException