View a markdown version of this page

Utilizzo di ABAC con DynamoDB Streams - 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 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.

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

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

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

  3. Esegui le dynamodb:GetRecords azioni dynamodb:DescribeStream e 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