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 un flusso DynamoDB e crei un ruolo IAM con una policy che include condizioni basate su tag. Quindi, si testano le autorizzazioni consentite sul flusso DynamoDB soddisfacendo le condizioni del tag.
Argomenti
Fase 1: Aggiungere tag a un flusso 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}} condition per confrontare la coppia chiave-valore del tag specificata nella policy IAM con la coppia chiave-valore allegata allo stream. La seguente politica 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 il principale IAM che utilizzi non abbia già accesso al flusso DynamoDB tramite una policy diversa.
-
Assicurati che il tuo stream DynamoDB contenga
"environment"la chiave del tag con un valore di."staging" -
Esegui le
dynamodb:GetRecordsazionidynamodb:DescribeStreamand 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 chiave-valore del
"environment": "staging"tag, la tua richiesta ha esito negativo e viene restituito un.AccessDeniedException