Seleziona le tue preferenze relative ai cookie

Utilizziamo cookie essenziali e strumenti simili necessari per fornire il nostro sito e i nostri servizi. Utilizziamo i cookie prestazionali per raccogliere statistiche anonime in modo da poter capire come i clienti utilizzano il nostro sito e apportare miglioramenti. I cookie essenziali non possono essere disattivati, ma puoi fare clic su \"Personalizza\" o \"Rifiuta\" per rifiutare i cookie prestazionali.

Se sei d'accordo, AWS e le terze parti approvate utilizzeranno i cookie anche per fornire utili funzionalità del sito, ricordare le tue preferenze e visualizzare contenuti pertinenti, inclusa la pubblicità pertinente. Per continuare senza accettare questi cookie, fai clic su \"Continua\" o \"Rifiuta\". Per effettuare scelte più dettagliate o saperne di più, fai clic su \"Personalizza\".

DAXcontrollo degli accessi

Modalità Focus
DAXcontrollo degli accessi - 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à.

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

DynamoDB Accelerator DAX () è progettato per funzionare insieme a DynamoDB, per aggiungere senza problemi un livello di caching alle tue applicazioni. Tuttavia, DAX e DynamoDB dispongono di meccanismi di controllo degli accessi separati. Entrambi i servizi utilizzano AWS Identity and Access Management (IAM) per implementare le rispettive politiche di sicurezza, ma i modelli di sicurezza per DynamoDB DAX e DynamoDB sono diversi.

Ti consigliamo vivamente di informarti su entrambi i modelli di sicurezza, in modo da poter implementare misure di sicurezza adeguate per le tue applicazioni che utilizzano DAX.

Questa sezione descrive i meccanismi di controllo degli accessi forniti da DAX e fornisce le policy IAM di esempio che puoi personalizzare in base alle tue esigenze.

Con DynamoDB, è possibile IAM creare policy che limitano le azioni che un utente può eseguire su singole risorse DynamoDB. Ad esempio, è possibile creare un ruolo utente che consenta all'utente solo di eseguire operazioni di sola lettura su una particolare tabella DynamoDB. Per ulteriori informazioni, consulta Identity and Access Management per Amazon DynamoDB. In confronto, il modello DAX di sicurezza si concentra sulla sicurezza del cluster e sulla capacità del cluster di eseguire azioni DynamoDB per API conto dell'utente.

avvertimento

Se attualmente utilizzi IAM ruoli e policy per limitare l'accesso ai dati delle tabelle DynamoDB, l'uso DAX di può sovvertire tali policy. Ad esempio, un utente potrebbe avere accesso a una tabella DynamoDB DAX tramite ma non avere accesso esplicito alla stessa tabella accedendo direttamente a DynamoDB. Per ulteriori informazioni, consulta Identity and Access Management per Amazon DynamoDB.

DAXnon impone la separazione a livello utente sui dati in DynamoDB. Gli utenti ereditano le autorizzazioni della policy IAM del cluster DAX quando accedono al cluster. Pertanto, quando si accede alle tabelle DynamoDB DAX tramite, gli unici controlli di accesso attivi sono le autorizzazioni nella DAX politica del cluster. IAM Non sono riconosciute altre autorizzazioni.

Se hai bisogno di isolamento, ti consigliamo di creare altri cluster DAX e definire l'ambito della policy IAM per ciascun cluster di conseguenza. Ad esempio, potresti creare più cluster DAX e consentire a ciascun cluster di accedere solo a una singola tabella.

IAMruolo di servizio per DAX

Quando crei un cluster DAX, devi associare il cluster a un ruolo IAM. conosciuto con il termine ruolo del servizio per il cluster.

Supponiamo di voler creare un nuovo DAX cluster denominato DAXCluster01. È possibile creare un ruolo di servizio denominato DAXServiceRolee associare il ruolo a DAXCluster01. La policy for DAXServiceRoledefinirebbe le azioni DynamoDB DAXClusterche 01 potrebbe eseguire per conto degli utenti che interagiscono con 01. DAXCluster

Quando si crea un ruolo di servizio, è necessario specificare una relazione di fiducia tra DAXServiceRolee il DAX servizio stesso. Una relazione di trust determina quali entità possono assumere un ruolo e utilizzarne le autorizzazioni. Di seguito è riportato un esempio di documento di relazione fiduciaria per DAXServiceRole:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "dax.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Questa relazione di fiducia consente a un DAX cluster di assumere DAXServiceRoleed eseguire chiamate API DynamoDB per tuo conto.

Le azioni API DynamoDB consentite sono descritte in IAM un documento di policy, a cui si allega. DAXServiceRole Di seguito è riportato un esempio di documento di policy:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DaxAccessPolicy", "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:PutItem", "dynamodb:GetItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:ConditionCheckItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/Books" ] } ] }

Questa policy consente di DAX eseguire le azioni DynamoDB necessarie su una API tabella DynamoDB. L'operazione dynamodb:DescribeTable è necessaria affinché DAX mantenga i metadati sulla tabella e le altre operazioni di lettura e scrittura eseguite sugli elementi della tabella. La tabella, denominataBooks, si trova nella regione us-west-2 ed è di proprietà AWS dell'ID dell'account. 123456789012

Nota

DAXsupporta meccanismi per prevenire il problema confuso dei deputati durante l'accesso interservizi. Per ulteriori informazioni, vedere Il problema del deputato confuso nella Guida per l'IAMutente.

IAMpolitica per consentire l'accesso al DAX cluster

Dopo aver creato un DAX cluster, è necessario concedere le autorizzazioni a un utente in modo che l'utente possa accedere al DAX cluster.

Si supponga, ad esempio, di voler concedere l'accesso a DAXCluster01 a un utente di nome Alice. Dovreste innanzitutto creare una IAM policy (AliceAccessPolicy) che definisca DAX i cluster e DAX API le azioni a cui il destinatario può accedere. Quindi devi conferire l'accesso collegando questa policy all'utente Alice.

Il seguente documento di policy fornisce al destinatario l'accesso completo su DAXCluster01.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "dax:*" ], "Effect": "Allow", "Resource": [ "arn:aws:dax:us-west-2:123456789012:cache/DAXCluster01" ] } ] }

Il documento di policy consente l'accesso al DAX cluster, ma non concede alcuna autorizzazione per DynamoDB. (Le autorizzazioni DynamoDB sono conferite dal ruolo di servizio.) DAX

Per l'utente Alice, devi prima creare AliceAccessPolicy con il documento di policy mostrato in precedenza. Quindi devi collegare la policy ad Alice.

Nota

Invece di associare la policy a un utente, è possibile collegarla a un ruolo. IAM In questo modo, tutti gli utenti che assumono quel ruolo avranno le autorizzazioni definite nella policy.

La policy utente, insieme al ruolo del DAX servizio, determina le risorse API e le azioni di DynamoDB a cui il destinatario può accedere. DAX

Case study: Accesso a DynamoDB e DAX

Il seguente scenario può aiutare a comprendere meglio le policy IAM da utilizzare con DAX. Si farà riferimento a questo scenario nella parte restante di questa sezione. Il seguente diagramma mostra una panoramica di alto livello dello scenario.

Una panoramica di alto livello di uno scenario IAM politico per l'utilizzo. DAX

In questo scenario sono presenti le seguenti entità:

  • Un utente (Bob).

  • Un ruolo IAM (BobUserRole). Bob assume questo ruolo al runtime.

  • Una policy IAM (BobAccessPolicy). Questa politica è allegata a. BobUserRole BobAccessPolicydefinisce il DynamoDB DAX e le risorse a BobUserRole cui è consentito accedere.

  • Un cluster DAX (DAXCluster01).

  • Un ruolo del servizio IAM (DAXServiceRole). Tale ruolo consente a DAXCluster01 di accedere a DynamoDB.

  • Una policy IAM (DAXAccessPolicy). Questa politica è allegata a. DAXServiceRole DAXAccessPolicydefinisce il APIs DynamoDB e le risorse a DAXCluster01 cui è consentito accedere.

  • Una tabella DynamoDB (Books).

La combinazione di dichiarazioni di policy in BobAccessPolicy e DAXAccessPolicy determina le operazioni che Bob può eseguire con la tabella Books. Ad esempio, Bob potrebbe essere in grado di accedere Books direttamente (utilizzando l'endpoint DynamoDB), indirettamente (utilizzando DAX il cluster) o entrambi. Bob potrebbe anche essere in grado di leggere i dati da Books, scrivere i dati in Books o di eseguire entrambe le operazioni.

Accesso a DynamoDB, ma nessun accesso con DAX

Panoramica di una IAM policy che consente l'accesso diretto a una tabella, ma blocca l'accesso indiretto tramite un DAX cluster.

È possibile consentire l'accesso diretto a una tabella DynamoDB, impedendo al contempo l'accesso indiretto tramite un cluster. DAX Per l'accesso diretto a DynamoDB, le autorizzazioni per BobUserRole sono determinate da BobAccessPolicy (che è collegato al ruolo).

Accesso in sola lettura a DynamoDB (solo)

Bobpuò accedere a DynamoDB conBobUserRole. La IAM policy associata a questo ruolo (BobAccessPolicy) determina le tabelle DynamoDB a BobUserRole cui è possibile accedere e APIs cosa BobUserRole possono richiamare.

Considera il seguente documento di policy per BobAccessPolicy.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDBAccessStmt", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books" } ] }

Quando questo documento è collegato a BobAccessPolicy, consente a BobUserRole di accedere all'endpoint DynamoDB ed eseguire le operazioni di sola lettura sulla tabella Books.

DAX non è presente in questa policy e pertanto l'accesso tramite DAX non è consentito.

Accesso in lettura e scrittura a DynamoDB (solo)

Se BobUserRole richiede l'accesso in lettura/scrittura a DynamoDB, si può utilizzare la seguente policy.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDBAccessStmt", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:ConditionCheckItem" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books" } ] }

Di nuovo, DAX non è presente in questa policy e pertanto l'accesso tramite DAX non è consentito.

Accesso a DynamoDB e a DAX

Una IAM politica che garantisce l'accesso sia a una tabella DynamoDB che a un cluster. DAX

Per consentire l'accesso a un cluster DAX, devi includere le operazioni specifiche di DAX in una policy IAM.

Le seguenti azioni DAX specifiche corrispondono alle loro controparti con nomi simili in DynamoDB: API

  • dax:GetItem

  • dax:BatchGetItem

  • dax:Query

  • dax:Scan

  • dax:PutItem

  • dax:UpdateItem

  • dax:DeleteItem

  • dax:BatchWriteItem

  • dax:ConditionCheckItem

Lo stesso vale per la chiave di condizione dax:EnclosingOperation.

Accesso in sola lettura a DynamoDB e accesso in sola lettura a DAX

Supponiamo che Bob richieda l'accesso in sola lettura alla Books tabella, da DynamoDB e da. DAX La seguente policy (collegata a BobUserRole) conferisce questo accesso:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DAXAccessStmt", "Effect": "Allow", "Action": [ "dax:GetItem", "dax:BatchGetItem", "dax:Query", "dax:Scan" ], "Resource": "arn:aws:dax:us-west-2:123456789012:cache/DAXCluster01" }, { "Sid": "DynamoDBAccessStmt", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books" } ] }

La policy contiene un'istruzione per DAX access (DAXAccessStmt) e un'altra dichiarazione per D (). ynamoDBaccess DynamoDBAccessStmt Le istruzioni consentono a Bob di inviare richieste GetItemBatchGetItemQuery e Scan a DAXCluster01.

Tuttavia, anche il ruolo del servizio per DAXCluster01 richiede l'accesso in sola lettura alla tabella Books in DynamoDB. La seguente policy IAM (collegata a DAXServiceRole) soddisfa questo requisito:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDBAccessStmt", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books" } ] }

Accesso in lettura/scrittura a DynamoDB e in sola lettura con DAX

Per un determinato ruolo utente, puoi fornire l'accesso in lettura/scrittura a una tabella DynamoDB, consentendo anche l'accesso in sola lettura tramite. DAX

Per Bob, la IAM policy for BobUserRole dovrebbe consentire le azioni di lettura e scrittura di DynamoDB sulla Books tabella, supportando anche le azioni di sola lettura tramite. DAXCluster01

Il seguente documento di policy di esempio per BobUserRole conferisce questo accesso:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DAXAccessStmt", "Effect": "Allow", "Action": [ "dax:GetItem", "dax:BatchGetItem", "dax:Query", "dax:Scan" ], "Resource": "arn:aws:dax:us-west-2:123456789012:cache/DAXCluster01" }, { "Sid": "DynamoDBAccessStmt", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:DescribeTable", "dynamodb:ConditionCheckItem" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books" } ] }

Inoltre, DAXServiceRole richiederebbe una policy IAM che consente a DAXCluster01 di eseguire operazioni di sola lettura sulla tabella Books.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDBAccessStmt", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:DescribeTable" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books" } ] }

Read/write access to DynamoDB and read/writeaccesso a DAX

Supponiamo ora che Bob abbia richiesto l'accesso in lettura e scrittura alla tabella Books direttamente da DynamoDB o indirettamente da DAXCluster01. Il seguente documento di policy, collegato a BobAccessPolicy, conferisce questo accesso.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DAXAccessStmt", "Effect": "Allow", "Action": [ "dax:GetItem", "dax:BatchGetItem", "dax:Query", "dax:Scan", "dax:PutItem", "dax:UpdateItem", "dax:DeleteItem", "dax:BatchWriteItem", "dax:ConditionCheckItem" ], "Resource": "arn:aws:dax:us-west-2:123456789012:cache/DAXCluster01" }, { "Sid": "DynamoDBAccessStmt", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:DescribeTable", "dynamodb:ConditionCheckItem" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books" } ] }

Inoltre, DAXServiceRole richiederebbe una policy IAM che consente a DAXCluster01 di eseguire operazioni di sola scrittura sulla tabella Books.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDBAccessStmt", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:DescribeTable" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books" } ] }

Accesso a DynamoDB DAX tramite, ma nessun accesso diretto a DynamoDB

In questo scenario, Bob può accedere alla Books tabella tramiteDAX, ma non ha accesso diretto alla Books tabella in DynamoDB. Pertanto, quando Bob ottiene l'accessoDAX, ottiene anche l'accesso a una tabella DynamoDB a cui altrimenti potrebbe non essere in grado di accedere. Quando configuri una policy IAM per il ruolo del servizio DAX, tieni presente che qualsiasi utente a cui viene dato l'accesso al cluster DAX tramite la policy di accesso utente ottiene l'accesso alle tabelle specificate in tale policy. In questo caso, BobAccessPolicy ottiene l'accesso alle tabelle specificate in DAXAccessPolicy.

Uno scenario in cui un utente può accedere a una tabella tramite un DAX cluster senza accesso diretto a DynamoDB.

Se attualmente utilizzi IAM ruoli e policy per limitare l'accesso alle tabelle e ai dati di DynamoDB, l'DAXutilizzo può sovvertire tali policy. Nella seguente politica, Bob ha accesso a una tabella DynamoDB DAX tramite ma non ha accesso diretto esplicito alla stessa tabella in DynamoDB.

Il seguente documento di policy (BobAccessPolicy), collegato a BobUserRole, conferisce questo accesso.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DAXAccessStmt", "Effect": "Allow", "Action": [ "dax:GetItem", "dax:BatchGetItem", "dax:Query", "dax:Scan", "dax:PutItem", "dax:UpdateItem", "dax:DeleteItem", "dax:BatchWriteItem", "dax:ConditionCheckItem" ], "Resource": "arn:aws:dax:us-west-2:123456789012:cache/DAXCluster01" } ] }

In questa policy di accesso non ci sono autorizzazioni per accedere direttamente a DynamoDB.

Insieme a BobAccessPolicy, la seguente DAXAccessPolicy fornisce a BobUserRole l'accesso alla tabella DynamoDB Books anche se BobUserRole non può accedere direttamente alla tabella Books.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DynamoDBAccessStmt", "Effect": "Allow", "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Query", "dynamodb:Scan", "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:DescribeTable", "dynamodb:ConditionCheckItem" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Books" } ] }

Come mostra questo esempio, quando si configura il controllo di accesso per la politica di accesso utente e la politica di accesso al DAX cluster, è necessario comprendere appieno l' end-to-endaccesso per garantire che venga rispettato il principio del privilegio minimo. Assicura, inoltre, che fornendo l'accesso utente a un cluster DAX, le policy di controllo degli accessi precedentemente stabilite non vengono sovvertite.

PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.