

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 per DynamoDB
<a name="rbac-examples"></a>

Quando si specifica un ARN nel campo `Resource` di una policy basata su risorse, la policy ha effetto solo se l’ARN specificato corrisponde all’ARN della risorsa DynamoDB a cui è collegato.

**Nota**  
Ricordati di sostituire il testo con le informazioni specifiche della risorsa. {{italicized}}

## Policy basata su risorse per una tabella
<a name="rbac-examples-get"></a>

La seguente policy basata sulle risorse allegata a una tabella DynamoDB denominata{{MusicCollection}}, fornisce agli utenti IAM {{John}} e il {{Jane}} permesso di eseguire azioni sulla risorsa. [GetItem[BatchGetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html){{MusicCollection}}

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
        "Effect": "Allow",
        "Principal": {
          "AWS": [
            "arn:aws:iam::{{111122223333}}:user/{{username}}",
            "arn:aws:iam::{{111122223333}}:user/{{Jane}}"
          ]
        },
        "Action": [
          "dynamodb:GetItem",
          "dynamodb:BatchGetItem"
        ],
        "Resource": [
          "arn:aws:dynamodb:{{us-east-1}}:{{123456789012}}:table/{{MusicCollection}}"
        ]
    }
  ]
}
```

------

## Policy basata su risorse per un flusso
<a name="rbac-examples-streams"></a>

La seguente policy basata sulle risorse allegata a un flusso DynamoDB denominato `2024-02-12T18:57:26.492` fornisce agli utenti IAM [GetRecords[GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html), il {{Jane}} permesso di eseguire {{John}} e le azioni API sulla risorsa. [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)`2024-02-12T18:57:26.492`

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
      "Effect": "Allow",
      "Principal": {
        "AWS": [
          "arn:aws:iam::{{111122223333}}:user/{{username}}",
          "arn:aws:iam::{{111122223333}}:user/{{Jane}}"
        ]
      },
      "Action": [
        "dynamodb:DescribeStream",
        "dynamodb:GetRecords",
        "dynamodb:GetShardIterator"
      ],
      "Resource": [
        "arn:aws:dynamodb:{{us-east-1}}:{{123456789012}}:table/{{MusicCollection}}/stream/{{2024-02-12T18:57:26.492}}"
      ]
    }
  ]
}
```

------

## Politica basata su risorse per l’accesso all’esecuzione di tutte le azioni su risorse specifiche
<a name="rbac-examples-wildcard"></a>

Per consentire a un utente di eseguire tutte le azioni su una tabella e tutti gli indici associati a una tabella, è possibile utilizzare un carattere jolly (\*) per rappresentare le azioni e le risorse associate alla tabella. L’utilizzo di un carattere jolly 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.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{111122223333}}:user/{{role-name}}"
      },
      "Action": "dynamodb:*",
      "Resource": [
        "arn:aws:dynamodb:{{us-east-1}}:{{123456789012}}:table/{{MusicCollection}}",
        "arn:aws:dynamodb:{{us-east-1}}:{{123456789012}}:table/{{MusicCollection}}/index/{{index-name}}"
      ]
    }
  ]
}
```

------

## Policy basata su risorse per accesso multi-account
<a name="rbac-examples-cross-account"></a>

È possibile specificare le autorizzazioni per un’identità IAM multi-account per accedere alle risorse DynamoDB. Ad esempio, potrebbe essere necessario un utente di un account attendibile 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 affidabile {{111111111111}} ai dati di una tabella nell'account {{123456789012}} utilizzando l'API. [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html) 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 si specifica la condizione `SPECIFIC_ATTRIBUTES`, si vedranno tutti gli attributi degli elementi restituiti.

------
#### [ JSON ]

****  

```
{
    "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'azione dell'`GetItem`API per il funzionamento dell'accesso tra account. Di seguito è riportato un esempio di policy basata sull'identità che è necessario allegare all'utente. {{John}}

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CrossAccountIdentityBasedPolicy",
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:{{us-east-1}}:{{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 parametro per `table-name` l'accesso alla {{MusicCollection}} tabella nell'account. {{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
```

## Policy basata su risorse con condizioni di indirizzo IP
<a name="rbac-examples-conditions"></a>

È possibile applicare una condizione per limitare gli indirizzi IP di origine, i cloud privati virtuali (VPCs) e gli endpoint VPC (VPCE). È possibile specificare le autorizzazioni in base agli indirizzi di origine della richiesta di origine. Ad esempio, si potrebbe voler consentire a un utente di accedere alle risorse DynamoDB solo se vi accede da un’origine IP specifica, come un endpoint VPN aziendale. Specifica questi indirizzi IP nell’istruzione `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`

------
#### [ JSON ]

****  

```
{
  "Id":"PolicyId2",
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Sid":"AllowIPmix",
      "Effect":"Allow",
      "Principal": {
        "AWS": "arn:aws:iam::{{111111111111}}:user/{{username}}"
      },
      "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}}

**Importante**  
Quando si utilizza DAX con tabelle DynamoDB con policy di risorse basate su IP IPv6 in ambienti -only, è necessario configurare regole di accesso aggiuntive. Se la politica delle risorse limita l'accesso allo spazio degli IPv4 indirizzi `0.0.0.0/0` sulle tabelle, è necessario consentire l'accesso al ruolo IAM associato al cluster DAX. Aggiungi una `ArnNotEquals` condizione alla tua policy per garantire che DAX mantenga l'accesso alle tue tabelle DynamoDB. [Per ulteriori informazioni, vedere DAX e. IPv6](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DAX.create-cluster.DAX_and_IPV6.html)

------
#### [ JSON ]

****  

```
{
  "Id":"PolicyId",
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AccessToSpecificVPCEOnly",
      "Principal": "*",
      "Action": "dynamodb:*",
      "Effect": "Deny",
      "Resource": "*",
      "Condition": {
        "StringNotEquals":{
          "aws:sourceVpce":"{{vpce-1a2b3c4d}}"
        }
      }
    }
  ]
}
```

------

## Policy basata su risorse che utilizza un ruolo IAM
<a name="rbac-examples-iam"></a>

È inoltre possibile specificare un ruolo di servizio IAM nella policy basata su risorse. Le entità IAM che assumono questo ruolo sono limitate dalle azioni consentite specificate per il ruolo e allo specifico set di risorse all’interno della policy basata su risorse.

L'esempio seguente consente a un'entità IAM di eseguire tutte le azioni DynamoDB sulle risorse {{MusicCollection}} e {{MusicCollection}} DynamoDB.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "1111",
      "Effect": "Allow",
      "Principal": { "AWS": "arn:aws:iam::{{111122223333}}:role/{{role-name}}" },
      "Action": "dynamodb:*",
      "Resource": [
        "arn:aws:dynamodb:{{us-east-1}}:{{123456789012}}:table/{{MusicCollection}}",
        "arn:aws:dynamodb:{{us-east-1}}:{{123456789012}}:table/{{MusicCollection}}/*"
      ]
    }
  ]
}
```

------