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

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

  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 al flusso DynamoDB tramite una policy diversa.

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

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