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à.
Esempi di policy basate su risorse DynamoDB
Quando si specifica una policy ARN nel Resource
campo di una policy basata sulle risorse, la policy ha effetto solo se quella specificata ARN corrisponde ARN alla risorsa DynamoDB a cui è associata.
Nota
Ricordati di sostituire il italicized
testo con le informazioni specifiche della risorsa.
Politica basata sulle risorse per una tabella
La seguente politica basata sulle risorse allegata a una tabella DynamoDB denominataMusicCollection
, fornisce IAM agli utenti John
e le Jane
autorizzazioni per eseguire e azioni sulla risorsa. GetItemBatchGetItemMusicCollection
{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
111122223333
:user/John
", "arn:aws:iam::111122223333
:user/Jane
" ] }, "Action": [ "dynamodb:GetItem", "dynamodb:BatchGetItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
" ] } ] }
Politica basata sulle risorse per uno stream
La seguente politica basata sulle risorse allegata a un flusso DynamoDB denominato 2024-02-12T18:57:26.492
fornisce IAM agli utenti GetRecords, GetShardIteratoril Jane
permesso di eseguire John
e le azioni sulla risorsa. DescribeStreamAPI2024-02-12T18:57:26.492
{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::
111122223333
:user/John
", "arn:aws:iam::111122223333
:user/Jane
" ] }, "Action": [ "dynamodb:DescribeStream", "dynamodb:GetRecords", "dynamodb:GetShardIterator" ], "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
/stream/2024-02-12T18:57:26.492
" ] } ] }
Politica basata sulle risorse per l'accesso all'esecuzione di tutte le azioni su risorse specifiche
Per consentire a un utente di eseguire tutte le azioni su una tabella e tutti gli indici associati a una tabella, puoi utilizzare un carattere jolly (*) per rappresentare le azioni e le risorse associate alla tabella. L'utilizzo di un carattere wild card per le risorse consentirà all'utente di accedere alla tabella DynamoDB e a tutti gli indici associati, inclusi quelli che non sono ancora stati creati. Ad esempio, la seguente politica consentirà all'utente John
di eseguire qualsiasi azione sulla MusicCollection
tabella e su tutti i relativi indici, inclusi gli indici che verranno creati in futuro.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal":"arn:aws:iam::
111122223333
:user/John
", "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
", "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
/index/*" ] } ] }
Politica basata sulle risorse per l'accesso tra più account
È possibile specificare le autorizzazioni per un'IAMidentità tra account per accedere alle risorse DynamoDB. Ad esempio, potresti aver bisogno di un utente di un account affidabile per accedere alla lettura del contenuto della tabella, a condizione che acceda solo a elementi e attributi specifici di tali elementi. La seguente politica consente all'utente di accedere John
da un Account AWS ID attendibile 111111111111
ai dati di una tabella in un account 123456789012
utilizzando GetItemAPI. La politica garantisce che l'utente possa accedere solo agli elementi con una chiave primaria Jane
e che l'utente possa recuperare solo gli attributi Artist
e SongTitle
nessun altro attributo.
Importante
Se non specifichi la SPECIFIC_ATTRIBUTES
condizione, vedrai tutti gli attributi degli articoli restituiti.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountTablePolicy", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/John" }, "Action": "dynamodb:GetItem", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": "Jane", "dynamodb:Attributes": [ "Artist", "SongTitle" ] }, "StringEquals": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" } } } ] }
Oltre alla precedente politica basata sulle risorse, John
anche la politica basata sull'identità allegata all'utente deve consentire l'GetItem
APIazione affinché l'accesso tra più account funzioni. Di seguito è riportato un esempio di policy basata sull'identità che è necessario allegare all'utente. John
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CrossAccountIdentityBasedPolicy", "Effect": "Allow", "Action": [ "dynamodb:GetItem" ], "Resource": [ "arn:aws:dynamodb:us-west-2:
123456789012
:table/MusicCollection
" ], "Condition": { "ForAllValues:StringEquals": { "dynamodb:LeadingKeys": "Jane
", "dynamodb:Attributes": [ "Artist", "SongTitle" ] }, "StringEquals": { "dynamodb:Select": "SPECIFIC_ATTRIBUTES" } } } ] }
L'utente John può effettuare una GetItem
richiesta specificando la tabella ARN nel table-name
parametro per l'accesso alla tabella nell'account. MusicCollection
123456789012
aws dynamodb get-item \ --table-name arn:aws:dynamodb:us-west-2:
123456789012
:table/MusicCollection
\ --key '{"Artist": {"S": "Jane
"}' \ --projection-expression 'Artist, SongTitle' \ --return-consumed-capacity TOTAL
Politica basata sulle risorse con condizioni relative all'indirizzo IP
È possibile applicare una condizione per limitare gli indirizzi IP di origine, i cloud privati virtuali (VPCs) e gli VPC endpoint (VPCE). È possibile specificare le autorizzazioni in base agli indirizzi di origine della richiesta di origine. Ad esempio, potresti voler consentire a un utente di accedere alle risorse DynamoDB solo se vi si accede da una fonte IP specifica, come un endpoint aziendale. VPN Specificate questi indirizzi IP nella dichiarazione. Condition
L'esempio seguente consente all'utente di John
accedere a qualsiasi risorsa DynamoDB quando le IPs sorgenti sono e. 54.240.143.0/24
2001:DB8:1234:5678::/64
{ "Id":"PolicyId2", "Version":"2012-10-17", "Statement":[ { "Sid":"AllowIPmix", "Effect":"Allow", "Principal":"arn:aws:iam::
111111111111
:user/John
", "Action":"dynamodb:*", "Resource":"*", "Condition": { "IpAddress": { "aws:SourceIp": [ "54.240.143.0/24", "2001:DB8:1234:5678::/64" ] } } } ] }
Puoi anche negare tutti gli accessi alle risorse DynamoDB tranne quando l'origine è un endpoint VPC specifico, ad esempio. vpce-1a2b3c4d
{ "Id":"PolicyId", "Version":"2012-10-17", "Statement": [ { "Sid": "AccessToSpecificVPCEOnly", "Principal": "*", "Action": "dynamodb:*", "Effect": "Deny", "Resource": "*", "Condition": { "StringNotEquals":{ "aws:sourceVpce":"
vpce-1a2b3c4d
" } } } ] }
Politica basata sulle risorse che utilizza un ruolo IAM
È inoltre possibile specificare un ruolo IAM di servizio nella politica basata sulle risorse. IAMle entità che assumono questo ruolo sono limitate dalle azioni consentite specificate per il ruolo e all'insieme specifico di risorse nell'ambito della politica basata sulle risorse.
L'esempio seguente consente a un'IAMentità di eseguire tutte le azioni DynamoDB sulle risorse MusicCollection
e MusicCollection
DynamoDB.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "1111", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::
111122223333
:role/John
" }, "Action": "dynamodb:*", "Resource": [ "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
", "arn:aws:dynamodb:us-west-2:123456789012
:table/MusicCollection
/*" ] } ] }