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

Politica IAM per separare gli ambienti DynamoDB nello stesso account AWS

Modalità Focus
Politica IAM per separare gli ambienti DynamoDB nello stesso account AWS - 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à.

Si supponga di avere ambienti separati in cui ogni ambiente mantiene la propria versione di una tabella denominata ProductCatalog. Se crei due ProductCatalog tabelle nello stesso AWS account, lavorare in un ambiente potrebbe influire sull'altro ambiente a causa del modo in cui sono impostate le autorizzazioni. Ad esempio, le quote sul numero di operazioni simultanee del piano di controllo (ad esempioCreateTable) vengono impostate a livello di account. AWS

Di conseguenza, ogni operazione in un ambiente riduce il numero di operazioni disponibili nell'altro ambiente. Vi è, inoltre, il rischio che il codice in un ambiente possa accedere per errore alle tabelle nell'altro ambiente.

Nota

Se desideri separare i carichi di lavoro di produzione e di test per controllare il potenziale "raggio di esplosione" di un evento, la best practice consiste nel creare account AWS separati per i carichi di lavoro di test e produzione. Per ulteriori informazioni, consulta Gestione e separazione degli account AWS.

Si supponga di avere due sviluppatori, Amit e Alice, che stanno eseguendo il test della tabella ProductCatalog. Invece di richiedere a ogni sviluppatore un AWS account separato, i tuoi sviluppatori possono condividere lo stesso account di test AWS . In questo account di test puoi creare per ogni sviluppatore una copia della stessa tabella su cui lavorare, ad esempio Alice_ProductCatalog e Amit_ProductCatalog. In questo caso, puoi creare gli utenti Alice e Amit nell' AWS account che hai creato per l'ambiente di test. È quindi possibile concedere a questi utenti le autorizzazioni per eseguire le operazioni DynamoDB sulle tabelle di loro proprietà.

Per concedere queste autorizzazioni utente IAM, è possibile completare una delle operazioni seguenti:

  • Crea una policy separata per ogni utente e quindi collegare separatamente ogni policy al proprio utente. Ad esempio, è possibile collegare la seguente policy all'utente Alice per consentire l'accesso a tutte le operazioni DynamoDB sulla tabella Alice_ProductCatalog:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllAPIActionsOnAliceTable", "Effect": "Allow", "Action": [ "dynamodb:DeleteItem", "dynamodb:DescribeContributorInsights", "dynamodb:RestoreTableToPointInTime", "dynamodb:ListTagsOfResource", "dynamodb:CreateTableReplica", "dynamodb:UpdateContributorInsights", "dynamodb:CreateBackup", "dynamodb:DeleteTable", "dynamodb:UpdateTableReplicaAutoScaling", "dynamodb:UpdateContinuousBackups", "dynamodb:TagResource", "dynamodb:DescribeTable", "dynamodb:GetItem", "dynamodb:DescribeContinuousBackups", "dynamodb:BatchGetItem", "dynamodb:UpdateTimeToLive", "dynamodb:BatchWriteItem", "dynamodb:ConditionCheckItem", "dynamodb:UntagResource", "dynamodb:PutItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:UpdateItem", "dynamodb:DeleteTableReplica", "dynamodb:DescribeTimeToLive", "dynamodb:RestoreTableFromBackup", "dynamodb:UpdateTable", "dynamodb:DescribeTableReplicaAutoScaling", "dynamodb:GetShardIterator", "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:DescribeLimits", "dynamodb:ListStreams" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/Alice_ProductCatalog/*" } ] }

    Quindi, è possibile creare una policy simile con una risorsa diversa (la tabella Amit_ProductCatalog) per l'utente Amit.

  • Invece di collegare le policy ai singoli utenti, puoi utilizzare variabili di policy IAM per scrivere un'unica policy e collegarla a un gruppo. È necessario creare un gruppo e, per questo esempio, aggiungervi entrambi gli utenti Alice e Amit. Nel seguente esempio vengono concesse le autorizzazioni per eseguire tutte le operazioni DynamoDB sulla tabella ${aws:username}_ProductCatalog. Quando la policy viene valutata, la variabile ${aws:username} viene sostituita dal nome utente del richiedente. Ad esempio, se Alice invia una richiesta di aggiunta di un item, l'operazione è consentita solo se l'item viene aggiunto alla tabella Alice_ProductCatalog.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ActionsOnUserSpecificTable", "Effect": "Allow", "Action": [ "dynamodb:PutItem", "dynamodb:UpdateItem", "dynamodb:DeleteItem", "dynamodb:BatchWriteItem", "dynamodb:GetItem", "dynamodb:BatchGetItem", "dynamodb:Scan", "dynamodb:Query", "dynamodb:ConditionCheckItem" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/${aws:username}_ProductCatalog" }, { "Sid": "AdditionalPrivileges", "Effect": "Allow", "Action": [ "dynamodb:ListTables", "dynamodb:DescribeTable", "dynamodb:DescribeContributorInsights" ], "Resource": "arn:aws:dynamodb:us-west-2:123456789012:table/*" } ] }
Nota

Quando si utilizzano le variabili di policy IAM, è necessario specificare esplicitamente la versione 2012-10-17 del linguaggio di policy IAM nella policy. La versione predefinita del linguaggio di policy IAM (2008-10-17) non supporta le variabili di policy.

Invece di identificare una tabella specifica come risorsa come si farebbe normalmente, è possibile utilizzare un carattere jolly (*) per concedere le autorizzazioni su tutte le tabelle il cui nome abbia il prefisso del nome dell'utente che sta effettuando la richiesta, come mostrato di seguito:

"Resource":"arn:aws:dynamodb:us-west-2:123456789012:table/${aws:username}_*"
PrivacyCondizioni del sitoPreferenze cookie
© 2025, Amazon Web Services, Inc. o società affiliate. Tutti i diritti riservati.