Utilizzo del controllo degli accessi basato su attributi con 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 del controllo degli accessi basato su attributi con DynamoDB

Il controllo degli accessi basato sugli attributi (ABAC) è una strategia di autorizzazione che definisce le autorizzazioni di accesso in base alle condizioni dei tag nelle politiche basate sull'identità o in altre politiche, come le politiche basate sulle risorse e le politiche IAM dell'organizzazione. AWS È possibile associare tag alle tabelle DynamoDB, che vengono poi valutate in base alle condizioni basate sui tag. Gli indici associati a una tabella ereditano i tag aggiunti alla tabella. È possibile aggiungere fino a 50 tag per ogni tabella DynamoDB. La dimensione massima supportata per tutti i tag in una tabella è 10 KB. Per ulteriori informazioni sull’assegnazione di tag alle risorse DynamoDB e sulle restrizioni relative ai tag, consulta Assegnazione di tag alle risorse in DynamoDB e Limitazioni dell'assegnazione di tag in DynamoDB.

Per ulteriori informazioni sull'utilizzo dei tag per controllare l'accesso alle AWS risorse, consulta i seguenti argomenti nella Guida per l'utente IAM:

Utilizzando l’ABAC è possibile applicare diversi livelli di accesso per i propri team e le proprie applicazioni per eseguire azioni sulle tabelle DynamoDB utilizzando un minor numero di policy. Per controllare gli accessi alle tabelle o agli indici DynamoDB è invece possibile specificare un tag nell’elemento Condition di una policy IAM. Queste condizioni determinano il livello di accesso di un principale, un utente o un ruolo IAM alle tabelle e agli indici DynamoDB. Quando un principale IAM effettua una richiesta di accesso a DynamoDB, i tag della risorsa e dell’identità vengono valutati in base alle condizioni dei tag nella policy IAM. Successivamente, la policy diventa effettiva solo se vengono soddisfatte le condizioni dei tag. Ciò consente di creare una policy IAM che risponda efficacemente a una delle seguenti condizioni:

  • Consentire all’utente di gestire solo le risorse che hanno un tag con una chiave X e un valore Y.

  • Negare l’accesso a tutti gli utenti alle risorse contrassegnate con una chiave X.

Ad esempio, è possibile creare una policy che consenta agli utenti di aggiornare una tabella solo se presenta la coppia chiave-valore del tag: "environment": "staging". Puoi usare la chiave aws: ResourceTag condition per consentire o negare l'accesso a una tabella in base ai tag allegati a quella tabella.

Puoi includere condizioni basate sugli attributi durante la creazione della policy o in un secondo momento utilizzando Console di gestione AWS, AWS API, AWS Command Line Interface (AWS CLI), AWS SDK o. AWS CloudFormation

L'esempio seguente consente l'UpdateItemazione su una tabella denominata MusicTable se include una chiave di tag con il nome e il valore. environment production

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

Qual è il vantaggio di utilizzare l’ABAC?

  • Gestione delle policy più semplice: si utilizza un minor numero di policy perché non è necessario creare policy diverse per definire il livello di accesso per ogni principale IAM.

  • Controllo scalabile degli accessi: scalare il controllo degli accessi è più facile con l’ABAC perché non è necessario aggiornare le policy IAM quando vengono create nuove risorse. È possibile utilizzare i tag per autorizzare l’accesso ai principali IAM che contengono tag corrispondenti ai tag della risorsa. È possibile integrare nuovi principali IAM o risorse DynamoDB e applicare i tag appropriati per concedere automaticamente le autorizzazioni necessarie senza dover apportare modifiche alle policy.

  • Gestione granulare delle autorizzazioni: è una best practice concedere il privilegio minimo quando si creano le policy. Utilizzando l’ABAC è possibile creare tag per il principale IAM e utilizzarli per concedere l’accesso ad azioni e risorse specifiche che corrispondono ai tag sul principale IAM.

  • Allineamento con la directory aziendale: è possibile mappare i tag con gli attributi dei dipendenti esistenti presenti nella directory aziendale per allineare le policy di controllo degli accessi alla struttura organizzativa.

Chiavi di condizione per implementare l’ABAC con DynamoDB

È possibile utilizzare le seguenti chiavi di condizione nelle AWS policy per controllare il livello di accesso alle tabelle e agli indici DynamoDB:

  • aws: ResourceTag /tag-key: Controlla l'accesso in base al fatto che la coppia chiave-valore del tag su una tabella o un indice DynamoDB corrisponda o meno alla chiave e al valore del tag in una policy. Questa chiave condizionale è rilevante per tutto ciò APIs che opera su una tabella o un indice esistente.

    Le condizioni dynamodb:ResourceTag vengono valutate come se non fosse stato assegnato alcun tag a una risorsa.

  • aws: RequestTag /tag-key: consente di confrontare la coppia chiave-valore del tag passata nella richiesta con la coppia di tag specificata nella politica. Questa chiave condizionale è pertinente a APIs quella che contiene tag come parte del payload della richiesta. Questi APIs includono CreateTablee. TagResource

  • aws: TagKeys: Confronta le chiavi dei tag in una richiesta con le chiavi specificate nella policy. Questa chiave condizionale è rilevante per APIs quella che contiene tag come parte del payload della richiesta. Questi APIs includono CreateTableTagResource, eUntagResource.

Considerazioni sull’utilizzo dell’ABAC con DynamoDB

Quando si utilizza l’ABAC con tabelle o indici DynamoDB, valgono le seguenti considerazioni:

  • L’assegnazione di tag e l’ABAC non sono supportati per i flussi DynamoDB.

  • L’assegnazione di tag e l’ABAC non sono supportati per i backup DynamoDB. Per utilizzare l’ABAC con i backup, si consiglia di utilizzare AWS Backup.

  • I tag non vengono conservati nelle tabelle ripristinate. È necessario aggiungere tag alle tabelle ripristinate prima di poter utilizzare le condizioni basate sui tag nelle policy.