

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 di policy basate su risorse per DynamoDB
<a name="access-control-resource-based"></a>

DynamoDB supporta le policy basate su risorse per tabelle, indici e flussi. Le policy basate su risorse consentono di definire le autorizzazioni di accesso specificando chi ha accesso a ciascuna risorsa e le azioni eseguibili su ciascuna risorsa.

È possibile collegare una policy basata su risorse alle risorse DynamoDB, come una tabella o un flusso. In questa policy si specificano le autorizzazioni per i [principali](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal) di Identity and Access Management (IAM) che possono eseguire azioni specifiche su queste risorse DynamoDB. Ad esempio, la policy collegata a una tabella conterrà le autorizzazioni per l’accesso alla tabella e ai relativi indici. Di conseguenza, le policy basate su risorse possono aiutare a semplificare il controllo degli accessi per le tabelle, gli indici e i flussi di DynamoDB definendo le autorizzazioni a livello di risorsa. La dimensione massima di una policy che è possibile collegare a una risorsa DynamoDB è di 20 KB.

Un vantaggio significativo dell’utilizzo di policy basate su risorse consiste nel semplificare il controllo degli accessi multi-account per fornire l’accesso multi-account ai principali IAM in diversi Account AWS. Per ulteriori informazioni, consulta [Policy basata su risorse per accesso multi-account](rbac-examples.md#rbac-examples-cross-account).

Le policy basate su risorse supportano anche le integrazioni con lo strumento di analisi degli accessi esterni [IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/what-is-access-analyzer.html) e le funzionalità di [blocco dell’accesso pubblico (BPA, Block Public Access).](rbac-bpa-rbp.md) Lo strumento di analisi degli accessi IAM segnala l’accesso multi-account a entità esterne specificate nelle policy basate su risorse. Fornisce inoltre visibilità per aiutare a perfezionare le autorizzazioni e conformarsi al principio del privilegio minimo. Il BPA aiuta a impedire l’accesso pubblico alle tabelle, agli indici e ai flussi di DynamoDB e viene abilitato automaticamente nei flussi di lavoro di creazione e modifica delle policy basate su risorse.

[![AWS Videos](http://img.youtube.com/vi/https://www.youtube.com/embed/q9sBxrVgq4U?si=0cR4TJIlKvH9Wlu5/0.jpg)](http://www.youtube.com/watch?v=https://www.youtube.com/embed/q9sBxrVgq4U?si=0cR4TJIlKvH9Wlu5)


**Topics**
+ [Creazione di una tabella con una policy basata su risorse](rbac-create-table.md)
+ [Collegamento di una policy a una tabella DynamoDB esistente](rbac-attach-resource-based-policy.md)
+ [Collegamento di una policy basata su risorse a un flusso DynamoDB](rbac-attach-resource-policy-streams.md)
+ [Rimozione di una policy basata su risorse da una tabella DynamoDB](rbac-delete-resource-based-policy.md)
+ [Accesso multi-account con policy basate su risorse in DynamoDB](rbac-cross-account-access.md)
+ [Blocco dell’accesso pubblico con policy basate su risorse in DynamoDB](rbac-bpa-rbp.md)
+ [Operazioni API DynamoDB supportate da policy basate su risorse](rbac-iam-actions.md)
+ [Autorizzazione con policy basate sull’identità IAM e policy basate su risorse DynamoDB](rbac-auth-iam-id-based-policies-DDB.md)
+ [Esempi di policy basate su risorse per DynamoDB](rbac-examples.md)
+ [Considerazioni sulle policy basate su risorse per DynamoDB](rbac-considerations.md)
+ [Best practice per policy basate su risorse di DynamoDB](rbac-best-practices.md)

# Creazione di una tabella con una policy basata su risorse
<a name="rbac-create-table"></a>

[Puoi aggiungere una policy basata sulle risorse mentre crei una tabella utilizzando la console DynamoDB, l'[CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)API, AWS CLI l'SDK o un modello.AWS](rbac-attach-resource-based-policy.md#rbac-attach-policy-java-sdk) CloudFormation 

## AWS CLI
<a name="rbac-create-table-CLI"></a>

L'esempio seguente crea una tabella denominata utilizzando il comando. *MusicCollection* `create-table` AWS CLI Questo comando include anche il parametro `resource-policy` che aggiunge una policy basata su risorse alla tabella. Questo criterio consente *John* all'utente di eseguire le azioni [RestoreTableToPointInTime[GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableToPointInTime.html), e [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)API sulla tabella.

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

```
aws dynamodb create-table \
    --table-name MusicCollection \
    --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 \
    --resource-policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::123456789012:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:RestoreTableToPointInTime\",
                        \"dynamodb:GetItem\",
                        \"dynamodb:DescribeTable\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection\"
                }
            ]
        }"
```

## Console di gestione AWS
<a name="rbac-create-table-console"></a>

1. Accedi Console di gestione AWS e apri la console DynamoDB all'indirizzo. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Nella dashboard, seleziona **Crea tabella**.

1. In **Dettagli tabella**, inserisci il nome della tabella, la chiave di partizione e i dettagli della chiave di ordinamento.

1. In **Impostazioni tabella**, seleziona **Personalizza impostazioni**.

1. (Facoltativo) Specifica le opzioni per **Classe tabella**, **Calcolatore di capacità**, **Impostazioni di capacità in scrittura/lettura**, **Indici secondari**, **Crittografia dei dati inattivi** e **Protezione da eliminazione**.

1. In **Policy basata sulle risorse**, aggiungi una policy per definire le autorizzazioni di accesso per la tabella e i relativi indici. In questa policy si specificano gli utenti che hanno accesso a queste risorse e le azioni che è consentito eseguire su ciascuna risorsa. Per aggiungere una policy, procedi in uno dei seguenti modi:
   + Digitare o incollare un documento di policy JSON. Per i dettagli sul linguaggio della policy IAM, consulta [Creating policies using the JSON editor](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) nella *Guida per l’utente di IAM*.
**Suggerimento**  
**Per vedere esempi di policy basate su risorse nella Guida per gli sviluppatori di Amazon DynamoDB, seleziona Esempi di policy**.
   + Seleziona **Aggiungi nuova istruzione** per aggiungere una nuova istruzione e inserisci le informazioni nei campi forniti. Ripeti questo passaggio per tutte le istruzioni che desideri aggiungere.
**Importante**  
Assicurati di risolvere gli avvisi di sicurezza, gli errori o i suggerimenti prima di salvare la policy.

   Il seguente esempio di policy IAM consente *John* all'utente di eseguire le azioni [RestoreTableToPointInTime[GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableToPointInTime.html), e [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)API sulla tabella. *MusicCollection*

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

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

****  

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

------

1. (Facoltativo) Scegli **Preview external access** (Anteprima accesso esterno) nell'angolo in alto a destra per visualizzare in anteprima in che modo la nuova policy influisce sull'accesso pubblico e multi-account alla risorsa. Prima di salvare la policy, puoi verificare se introduce nuovi risultati di IAM Access Analyzer o risolve i risultati esistenti. Se non è presente uno strumento di analisi attivo, scegli **Go to Access Analyzer** (Passa a strumento analisi accessi) per [creare uno strumento di analisi degli account](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) in IAM Access Analyzer. Per ulteriori informazioni, consulta [Preview access](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html).

1. Scegliere **Create table (Crea tabella)**.

## AWS CloudFormation modello
<a name="rbac-create-table-cfn"></a>

------
#### [ Using the AWS::DynamoDB::Table resource ]

Il CloudFormation modello seguente crea una tabella con un flusso utilizzando la risorsa [AWS: :DynamoDB: :Table](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html). Questo modello include anche policy basate su risorse e collegate sia alla tabella che al flusso.

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "MusicCollectionTable": {
            "Type": "AWS::DynamoDB::Table",
            "Properties": {
                "AttributeDefinitions": [
                    {
                        "AttributeName": "Artist",
                        "AttributeType": "S"
                    }
                ],
                "KeySchema": [
                    {
                        "AttributeName": "Artist",
                        "KeyType": "HASH"
                    }
                ],
                "BillingMode": "PROVISIONED",
                "ProvisionedThroughput": {
                    "ReadCapacityUnits": 5,
                    "WriteCapacityUnits": 5
                },
                "StreamSpecification": {
                  "StreamViewType": "OLD_IMAGE",
                  "ResourcePolicy": {
                    "PolicyDocument": {
                      "Version": "2012-10-17",		 	 	 
                      "Statement": [
                        {
                            "Principal": {
                                "AWS": "arn:aws:iam::111122223333:user/John"
                            },
                            "Effect": "Allow",
                            "Action": [
                                "dynamodb:GetRecords",
                                "dynamodb:GetShardIterator",
                                "dynamodb:DescribeStream"
                            ],
                            "Resource": "*"
                        }
                      ]
                    }
                  }
                },
                "TableName": "MusicCollection",
                "ResourcePolicy": {
                    "PolicyDocument": {
                        "Version": "2012-10-17",		 	 	 
                        "Statement": [
                            {
                                "Principal": {
                                    "AWS": [
                                        "arn:aws:iam::111122223333:user/John"
                                    ]
                                },
                                "Effect": "Allow",
                                "Action": "dynamodb:GetItem",
                                "Resource": "*"
                            }
                        ]
                    }
                }
            }
           
        }
    }
}
```

------
#### [ Using the AWS::DynamoDB::GlobalTable resource ]

Il CloudFormation modello seguente crea una tabella con la GlobalTable risorsa [AWS: :DynamoDB::](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) e allega una policy basata sulle risorse alla tabella e al relativo flusso.

```
{
    "AWSTemplateFormatVersion": "2010-09-09",
    "Resources": {
        "GlobalMusicCollection": {
            "Type": "AWS::DynamoDB::GlobalTable",
            "Properties": {
                "TableName": "MusicCollection",
                "AttributeDefinitions": [{
                    "AttributeName": "Artist",
                    "AttributeType": "S"
                }],
                "KeySchema": [{
                    "AttributeName": "Artist",
                    "KeyType": "HASH"
                }],
                "BillingMode": "PAY_PER_REQUEST",
                "StreamSpecification": {
                    "StreamViewType": "NEW_AND_OLD_IMAGES"
                },
                "Replicas": [
                    {
                        "Region": "us-east-1",
                        "ResourcePolicy": {
                            "PolicyDocument": {
                                "Version": "2012-10-17",		 	 	 
                                "Statement": [{
                                    "Principal": {
                                        "AWS": [
                                            "arn:aws:iam::111122223333:user/John"
                                        ]
                                    },
                                    "Effect": "Allow",
                                    "Action": "dynamodb:GetItem",
                                    "Resource": "*"
                                }]
                            }
                        },
                        "ReplicaStreamSpecification": {
                            "ResourcePolicy": {
                                "PolicyDocument": {
                                    "Version": "2012-10-17",		 	 	 
                                    "Statement": [{
                                        "Principal": {
                                            "AWS": "arn:aws:iam::111122223333:user/John"
                                        },
                                        "Effect": "Allow",
                                        "Action": [
                                            "dynamodb:GetRecords",
                                            "dynamodb:GetShardIterator",
                                            "dynamodb:DescribeStream"
                                        ],
                                        "Resource": "*"
                                    }]
                                }
                            }
                        }
                    }
                ]
            }
        }
    }
}
```

------

# Collegamento di una policy a una tabella DynamoDB esistente
<a name="rbac-attach-resource-based-policy"></a>

[È possibile allegare una policy basata sulle risorse a una tabella esistente o modificare una policy esistente utilizzando la console DynamoDB, l'[PutResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutResourcePolicy.html)API, l' AWS CLI SDK o un modello. AWSCloudFormation](rbac-create-table.md#rbac-create-table-cfn)

## AWS CLI esempio per allegare una nuova policy
<a name="rbac-attach-policy-CLI"></a>

Il seguente esempio di policy IAM utilizza il `put-resource-policy` AWS CLI comando per allegare una policy basata sulle risorse a una tabella esistente. Questo esempio consente all'utente di *John* eseguire le azioni [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html), [PutItem[UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html), e [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)API su una tabella esistente denominata. *MusicCollection*

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

```
aws dynamodb put-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \
    --policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::111122223333:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:GetItem\",
                        \"dynamodb:PutItem\",
                        \"dynamodb:UpdateItem\",
                        \"dynamodb:UpdateTable\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection\"
                }
            ]
        }"
```

## AWS CLI esempio di aggiornamento condizionale di una politica esistente
<a name="rbac-update-policy-CLI"></a>

Per aggiornare in modo condizionale una policy basata su risorse esistente di una tabella, è possibile utilizzare il parametro opzionale `expected-revision-id`. L’esempio seguente aggiornerà la policy solo se esiste in DynamoDB e il suo ID di revisione corrente corrisponde al parametro `expected-revision-id` fornito.

```
aws dynamodb put-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection \
    --expected-revision-id 1709841168699 \ 
    --policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::111122223333:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:GetItem\",
                        \"dynamodb:UpdateItem\",
                        \"dynamodb:UpdateTable\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection\"
                }
            ]
        }"
```

## Console di gestione AWS
<a name="rbac-attach-policy-console"></a>

1. Accedi Console di gestione AWS e apri la console DynamoDB all'indirizzo. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Dalla dashboard seleziona una tabella esistente.

1. Vai alla scheda **Autorizzazioni** e seleziona **Crea una policy per le tabelle**.

1. Nell’editor della policy basata su risorse, aggiungi la policy che desideri collegare e seleziona **Crea policy**.

   Il seguente esempio di policy IAM consente *John* all'utente di eseguire le azioni [GetItem[PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html), [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html), e [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)API su una tabella esistente denominata. *MusicCollection*

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

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

****  

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

------

## AWS SDK for Java 2.x
<a name="rbac-attach-policy-java-sdk"></a>

Il seguente esempio di policy IAM utilizza il metodo `putResourcePolicy` per collegare una policy basata su risorse a una tabella esistente. Questa politica consente a un utente di eseguire l'azione [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)API su una tabella esistente.

```
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
import software.amazon.awssdk.services.dynamodb.model.DynamoDbException;
import software.amazon.awssdk.services.dynamodb.model.PutResourcePolicyRequest;

/**
 * Before running this Java V2 code example, set up your development
 * environment, including your credentials.
 *
 * For more information, see the following documentation topic:
 *
 * [Get started with the AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/get-started.html)
 */
public class PutResourcePolicy {

    public static void main(String[] args) {
        final String usage = """

                Usage:
                    <tableArn> <allowedAWSPrincipal>

                Where:
                    tableArn - The Amazon DynamoDB table ARN to attach the policy to. For example, arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection.
                    allowed AWS Principal - Allowed AWS principal ARN that the example policy will give access to. For example, arn:aws:iam::123456789012:user/John.
                """;

        if (args.length != 2) {
            System.out.println(usage);
            System.exit(1);
        }

        String tableArn = args[0];
        String allowedAWSPrincipal = args[1];
        System.out.println("Attaching a resource-based policy to the Amazon DynamoDB table with ARN " +
                tableArn);
        Region region = Region.US_WEST_2;
        DynamoDbClient ddb = DynamoDbClient.builder()
                .region(region)
                .build();

        String result = putResourcePolicy(ddb, tableArn, allowedAWSPrincipal);
        System.out.println("Revision ID for the attached policy is " + result);
        ddb.close();
    }

    public static String putResourcePolicy(DynamoDbClient ddb, String tableArn, String allowedAWSPrincipal) {
        String policy = generatePolicy(tableArn, allowedAWSPrincipal);
        PutResourcePolicyRequest request = PutResourcePolicyRequest.builder()
                .policy(policy)
                .resourceArn(tableArn)
                .build();

        try {
            return ddb.putResourcePolicy(request).revisionId();
        } catch (DynamoDbException e) {
            System.err.println(e.getMessage());
            System.exit(1);
        }

        return "";
    }

    private static String generatePolicy(String tableArn, String allowedAWSPrincipal) {
        return "{\n" +
                "    \"Version\": \"2012-10-17\",\n" +,		 	 	 
                "    \"Statement\": [\n" +
                "        {\n" +
                "            \"Effect\": \"Allow\",\n" +
                "            \"Principal\": {\"AWS\":\"" + allowedAWSPrincipal + "\"},\n" +
                "            \"Action\": [\n" +
                "                \"dynamodb:GetItem\"\n" +
                "            ],\n" +
                "            \"Resource\": \"" + tableArn + "\"\n" +
                "        }\n" +
                "    ]\n" +
                "}";
    }
}
```

# Collegamento di una policy basata su risorse a un flusso DynamoDB
<a name="rbac-attach-resource-policy-streams"></a>

[È possibile allegare una policy basata su risorse allo stream di una tabella esistente o modificare una policy esistente utilizzando la console DynamoDB, l'[PutResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutResourcePolicy.html)API, l' AWS CLI SDK o un modello. AWSCloudFormation](rbac-create-table.md#rbac-create-table-cfn)

**Nota**  
Non è possibile allegare una policy a uno stream mentre lo si crea utilizzando o. [CreateTable[UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) APIs Tuttavia, è possibile modificare o eliminare una policy dopo l’eliminazione di una tabella. È possibile anche modificare o eliminare la policy di un flusso disabilitato.



## AWS CLI
<a name="rbac-attach-policy-stream-CLI"></a>

Il seguente esempio di policy IAM utilizza il `put-resource-policy` AWS CLI comando per allegare una policy basata sulle risorse al flusso di una tabella denominata. *MusicCollection* Questo esempio consente all'utente *John* di eseguire le azioni [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), e [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)API sullo stream.

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

```
aws dynamodb put-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492 \
    --policy \
        "{
            \"Version\": \"2012-10-17\",		 	 	 
            \"Statement\": [
              {
                    \"Effect\": \"Allow\",
                    \"Principal\": {
                        \"AWS\": \"arn:aws:iam::111122223333:user/John\"
                    },
                    \"Action\": [
                        \"dynamodb:GetRecords\",
                        \"dynamodb:GetShardIterator\",
                        \"dynamodb:DescribeStream\"
                    ],
                    \"Resource\": \"arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection/stream/2024-02-12T18:57:26.492\"
                }
            ]
        }"
```

## Console di gestione AWS
<a name="rbac-attach-policy-stream-console"></a>

1. Accedi Console di gestione AWS e apri la console DynamoDB all'indirizzo. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Nella dashboard della console DynamoDB, seleziona **Tabelle** e quindi seleziona una tabella esistente.

   Assicurati che nella tabella selezionata i flussi siano attivati. Per informazioni su come attivare i flussi per una tabella, consulta [Abilitazione di un flusso](Streams.md#Streams.Enabling).

1. Scegli la scheda **Autorizzazioni**.

1. In **Policy basata sulle risorse per il flusso attivo** seleziona **Crea una policy di flusso**.

1. Nell’editor **Policy basata sulle risorse**, aggiungi una policy per definire le autorizzazioni di accesso per il flusso. In questa policy si specificano gli utenti che hanno accesso al flusso e le azioni che questi possono eseguirvi. Per aggiungere una policy, procedi in uno dei seguenti modi:
   + Digitare o incollare un documento di policy JSON. Per i dettagli sul linguaggio della policy IAM, consulta [Creating policies using the JSON editor](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor) nella *Guida per l’utente di IAM*.
**Suggerimento**  
**Per vedere esempi di policy basate su risorse nella Guida per gli sviluppatori di Amazon DynamoDB, seleziona Esempi di policy**.
   + Seleziona **Aggiungi nuova istruzione** per aggiungere una nuova istruzione e inserisci le informazioni nei campi forniti. Ripeti questo passaggio per tutte le istruzioni che desideri aggiungere.
**Importante**  
Assicurati di risolvere gli avvisi di sicurezza, gli errori o i suggerimenti prima di salvare la policy.

1. (Facoltativo) Scegli **Preview external access** (Anteprima accesso esterno) nell'angolo in alto a destra per visualizzare in anteprima in che modo la nuova policy influisce sull'accesso pubblico e multi-account alla risorsa. Prima di salvare la policy, puoi verificare se introduce nuovi risultati di IAM Access Analyzer o risolve i risultati esistenti. Se non è presente uno strumento di analisi attivo, scegli **Go to Access Analyzer** (Passa a strumento analisi accessi) per [creare uno strumento di analisi degli account](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) in IAM Access Analyzer. Per ulteriori informazioni, consulta [Preview access](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html).

1. Scegli **Crea policy**.

Il seguente esempio di policy IAM collega una policy basata sulle risorse al flusso di una tabella denominata. *MusicCollection* Questo esempio consente all'utente *John* di eseguire le azioni [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), e [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)API sullo stream.

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

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

****  

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

------

# Rimozione di una policy basata su risorse da una tabella DynamoDB
<a name="rbac-delete-resource-based-policy"></a>

È possibile eliminare una policy basata sulle risorse da una tabella esistente utilizzando la console DynamoDB, l'[DeleteResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteResourcePolicy.html)API, l' AWS CLI SDK o un modello. AWS CloudFormation 

## AWS CLI
<a name="rbac-delete-policy-CLI"></a>

L'esempio seguente utilizza il `delete-resource-policy` AWS CLI comando per rimuovere una politica basata sulle risorse da una tabella denominata. *MusicCollection*

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

```
aws dynamodb delete-resource-policy \
    --resource-arn arn:aws:dynamodb:us-west-2:123456789012:table/MusicCollection
```

## Console di gestione AWS
<a name="rbac-delete-policy-console"></a>

1. Accedi Console di gestione AWS e apri la console DynamoDB all'indirizzo. [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. Nella dashboard della console DynamoDB, seleziona **Tabelle** e quindi seleziona una tabella esistente.

1. Seleziona **Autorizzazioni**.

1. Dal menu a discesa **Gestisci policy**, seleziona **Elimina policy**.

1. Nella finestra di dialogo **Elimina la policy basata sulle risorse per la tabella**, digita **confirm** per confermare l’azione di eliminazione.

1. Scegli **Elimina**.

# Accesso multi-account con policy basate su risorse in DynamoDB
<a name="rbac-cross-account-access"></a>

Utilizzando una policy basata su risorse, è possibile fornire l’accesso multi-account a risorse disponibili in diversi Account AWS. Tutti gli accessi tra account consentiti dalle politiche basate sulle risorse verranno segnalati tramite i risultati degli accessi esterni di IAM Access Analyzer se disponi di un analizzatore nella stessa risorsa. Regione AWS IAM Access Analyzer esegue controlli sulle policy per convalidare le policy rispetto alla [grammatica delle policy](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_grammar.html) IAM e alle [best practice](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html). Questi controlli generano risultati e forniscono raccomandazioni attuabili per aiutarti a creare policy funzionali e conformi alle best practice di sicurezza. È possibile visualizzare i risultati attivi dello strumento di analisi degli accessi IAM nella scheda **Autorizzazioni** della [console DynamoDB](https://console.aws.amazon.com/dynamodb/).

Per ulteriori informazioni sulla convalida delle policy tramite lo strumento di analisi degli accessi IAM, consulta [Convalida delle policy di Sistema di analisi degli accessi AWS IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-validation.html) nella *Guida per l’utente di IAM*. Per visualizzare un elenco delle avvertenze, degli errori e dei suggerimenti restituiti da IAM Access Analyzer, consulta il [Riferimento al controllo delle policy di IAM Access Analyzer](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-reference-policy-checks.html).

Per concedere l'[GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)autorizzazione a un utente A nell'account A per accedere a una tabella B nell'account B, procedi nel seguente modo:

1. Collega alla tabella B una policy basata su risorse che conceda l’autorizzazione all’utente A per eseguire l’azione `GetItem`.

1. Collega una policy basata sull’identità all’utente A che gli conceda l’autorizzazione per eseguire l’azione `GetItem` sulla tabella B.

Utilizzando l’opzione **Anteprima dell’accesso esterno** disponibile nella [console DynamoDB](https://console.aws.amazon.com/dynamodb/), è possibile visualizzare in anteprima in che modo la nuova policy influisce sull’accesso pubblico e multi-account alla risorsa. Prima di salvare la policy, puoi verificare se introduce nuovi risultati di IAM Access Analyzer o risolve i risultati esistenti. Se non è presente uno strumento di analisi attivo, scegli **Go to Access Analyzer** (Passa a strumento analisi accessi) per [creare uno strumento di analisi degli account](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#access-analyzer-enabling) in IAM Access Analyzer. Per ulteriori informazioni, consulta [Preview access](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-access-preview.html).

Il parametro table name nel piano dati e nel piano di controllo di DynamoDB APIs accetta l'Amazon Resource Name (ARN) completo della tabella per supportare le operazioni tra account. Se si fornisce solo il parametro relativo al nome della tabella anziché un ARN completo, l’operazione API verrà eseguita sulla tabella dell’account a cui appartiene il richiedente. Per un esempio di una policy che utilizza l’accesso multi-account, consulta [Policy basata su risorse per accesso multi-account](rbac-examples.md#rbac-examples-cross-account).

L’account del proprietario della risorsa subirà un addebito anche quando un principale di un altro account sta leggendo o scrivendo sulla tabella DynamoDB nell’account del proprietario. Se la tabella prevede la velocità effettiva, la somma di tutte le richieste provenienti dagli account proprietari e dai richiedenti degli altri account determinerà se la richiesta verrà limitata (se la scalabilità automatica è disabilitata) o ridimensionata se la scalabilità automatica è abilitata. up/down 

Le richieste verranno registrate nei CloudTrail registri degli account proprietario e richiedente in modo che ciascuno dei due account possa tenere traccia dell'account a cui ha avuto accesso a quali dati.

## Condividi l'accesso con funzioni AWS Lambda tra account diversi
<a name="rbac-analyze-cross-account-lambda-access"></a>

**Funzioni Lambda nell'account A**

1. Vai alla [console IAM](https://console.aws.amazon.com/iam/) per creare un ruolo IAM che verrà utilizzato come ruolo di [esecuzione Lambda per la tua funzione Lambda nell'](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)account A. Aggiungi la policy `AWSLambdaDynamoDBExecutionRole` IAM gestita con le autorizzazioni di invocazione DynamoDB Streams e AWS Lambda richieste. Questa politica garantisce inoltre l'accesso a tutte le potenziali risorse DynamoDB Streams a cui potresti avere accesso nell'account A.

1. Nella [console Lambda](https://console.aws.amazon.com/lambda/), crea una funzione AWS Lambda per elaborare i record in un flusso DynamoDB e, durante la configurazione del ruolo di esecuzione, scegli il ruolo creato nel passaggio precedente.

1. Fornisci il ruolo di esecuzione della funzione Lambda al proprietario dell'account B di DynamoDB Streams per configurare la policy basata sulle risorse per l'accesso in lettura tra account.

1. Completa la configurazione della funzione Lambda.

**Flusso DynamoDB nell'account B**

1. Ottieni il ruolo di esecuzione Lambda tra account dall'account A che richiamerà la funzione Lambda.

1. Sulla console Amazon DynamoDB nell'account B, scegli la tabella per il trigger multiaccount Lambda. Nella scheda **Esportazioni e flussi**, individua l'ARN del tuo stream DynamoDB. Assicurati che lo stato del flusso di DynamoDB sia Attivo e annota l'ARN del flusso completo poiché ti servirà per la politica delle risorse.

1. Nella scheda **Autorizzazioni**, fai clic sul pulsante **Crea policy di streaming** per avviare l'editor visivo delle policy. Fai clic sul pulsante **Aggiungi nuova dichiarazione** o modifica la politica se ne esiste già una.

1. Crea una policy che specifichi il ruolo di esecuzione Lambda nell'account A come principale e concedi le azioni DynamoDB Stream richieste. Assicurati di includere le azioni`dynamodb:DescribeStream`,, `dynamodb:GetRecords` e. `dynamodb:GetShardIterator` `dynamodb:ListShards` [Per ulteriori informazioni su esempi di policy relative alle risorse per DynamoDB Streams, consulta Esempi di policy basate sulle risorse di DynamoDB.](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html)

**Nota**  
L'accesso al [piano di controllo](HowItWorks.API.md#HowItWorks.API.ControlPlane) tra più account APIs ha un limite inferiore di transazioni al secondo (TPS) di 500 richieste.

# Blocco dell’accesso pubblico con policy basate su risorse in DynamoDB
<a name="rbac-bpa-rbp"></a>

Il [blocco dell’accesso pubblico (BPA)](#rbac-bpa-rbp) è una funzionalità che identifica e impedisce il collegamento di policy basate su risorse che garantiscono l’accesso pubblico alle tabelle, agli indici o ai flussi di DynamoDB tra gli account [Amazon Web Services (AWS)](https://aws.amazon.com/). Con il BPA è possibile impedire l’accesso pubblico alle proprie risorse DynamoDB. Il BPA esegue controlli durante la creazione o la modifica di una policy basata su risorse e aiuta a migliorare il livello di sicurezza con DynamoDB.

Il BPA utilizza il [ragionamento automatico](https://aws.amazon.com/what-is/automated-reasoning/) per analizzare l’accesso concesso dalla policy basata su risorse e avvisa l’utente se tali autorizzazioni vengono rilevate al momento della gestione di una policy basata su risorse. L’analisi verifica l’accesso a tutte le istruzioni della policy basata su risorse, alle azioni e al set di chiavi di condizione utilizzate nelle policy.

**Importante**  
Il BPA aiuta a proteggere le risorse impedendo che venga concesso l’accesso pubblico attraverso le policy basate su risorse direttamente collegate alle risorse DynamoDB, come tabelle, indici e flussi. Oltre ad attivare il BPA, controlla attentamente le seguenti policy per verificare che non concedano l’accesso pubblico:  
Politiche basate sull'identità collegate ai AWS principali associati (ad esempio, ruoli IAM)
Politiche basate sulle risorse collegate alle AWS risorse associate (ad esempio, chiavi (KMS)) AWS Key Management Service 

È necessario assicurarsi che il [principale](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) non includa una voce `*` o che una delle chiavi di condizione specificate limiti l’accesso dei principali alla risorsa. Se la policy basata sulle risorse concede l'accesso pubblico alla tabella, agli indici o allo stream, Account AWS DynamoDB ti impedirà di creare o modificare la policy finché la specifica all'interno della policy non sarà corretta e considerata non pubblica.

È possibile rendere una policy non pubblica specificando uno o più principi all’interno del blocco del `Principal`. Il seguente esempio di policy basata su risorse blocca l’accesso pubblico specificando due principali.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "123456789012",
      "111122223333"
    ]
  },
  "Action": "dynamodb:*",
  "Resource": "*"
}
```

Inoltre, le policy che limitano l’accesso specificando determinate chiavi di condizione non sono considerate pubbliche. Oltre alla valutazione del principale specificato nella policy basata su risorse, vengono utilizzate le seguenti [chiavi di condizione attendibili](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) per completare la valutazione di una policy basata su risorse per l’accesso non pubblico:
+ `aws:PrincipalAccount`
+ `aws:PrincipalArn`
+ `aws:PrincipalOrgID`
+ `aws:PrincipalOrgPaths`
+ `aws:SourceAccount`
+ `aws:SourceArn`
+ `aws:SourceVpc`
+ `aws:SourceVpce`
+ `aws:UserId`
+ `aws:PrincipalServiceName`
+ `aws:PrincipalServiceNamesList`
+ `aws:PrincipalIsAWSService`
+ `aws:Ec2InstanceSourceVpc`
+ `aws:SourceOrgID`
+ `aws:SourceOrgPaths`

Inoltre, affinché una policy basata su risorse non sia pubblica, i valori del nome della risorsa Amazon (ARN) e le chiavi di stringa non devono contenere caratteri jolly o variabili. Se la propria policy basata su risorse utilizza la chiave `aws:PrincipalIsAWSService`, è necessario assicurarsi di aver impostato il valore della chiave su true.

La policy seguente limita l’accesso all’utente `John` nell’account specificato. La condizione rende il `Principal` vincolato e non lo considera pubblico.

```
{
  "Effect": "Allow",
  "Principal": {
    "AWS": "*"
  },
  "Action": "dynamodb:*",
  "Resource": "*",
  "Condition": {
    "StringEquals": {
      "aws:PrincipalArn": "arn:aws:iam::123456789012:user/John"
    }
  }
}
```

L’esempio seguente di una policy basata su risorse non pubblica limita `sourceVPC` a utilizzare l’operatore `StringEquals`.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "dynamodb:*",
      "Resource": "arn:aws:dynamodb:us-east-1:123456789012:table/MusicCollection",
      "Condition": {
        "StringEquals": {
          "aws:SourceVpc": [
            "vpc-91237329"
          ]
        }
      }
    }
  ]
}
```

------

# Operazioni API DynamoDB supportate da policy basate su risorse
<a name="rbac-iam-actions"></a>

Questo argomento elenca le operazioni API supportate dalle policy basate su risorse. Tuttavia, per l'accesso a più account, è possibile utilizzare solo un determinato set di APIs DynamoDB tramite policy basate sulle risorse. Non è possibile collegare policy basate su risorse a tipi di risorse come backup e importazioni. Le azioni IAM, che corrispondono al APIs funzionamento su questi tipi di risorse, sono escluse dalle azioni IAM supportate nelle politiche basate sulle risorse. Poiché gli amministratori delle tabelle configurano le impostazioni interne delle tabelle all'interno dello stesso account, ad esempio [UpdateTimeToLive](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTimeToLive.html)e APIs [DisableKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DisableKinesisStreamingDestination.html), non supportano l'accesso tra account tramite politiche basate sulle risorse.

Il piano dati e il piano di controllo APIs di DynamoDB che supportano l'accesso tra account supportano anche l'overload dei nomi delle tabelle, che consente di specificare l'ARN della tabella anziché il nome della tabella. È possibile specificare l'ARN della tabella nel `TableName` parametro di questi. APIs Tuttavia, non tutti APIs supportano l'accesso tra account.

**Topics**
+ [Operazioni API del piano dati](#rbac-data-plane-actions)
+ [Operazioni API PartiQL](#rbac-partiql-actions)
+ [Operazioni API del piano di controllo (control-plane)](#rbac-control-plane-actions)
+ [Operazioni API delle tabelle globali versione 2019.11.21 (Corrente)](#rbac-current-global-table-actions)
+ [Operazioni API delle tabelle globali versione 2017.11.29 (Legacy)](#rbac-legacy-global-table-actions)
+ [Operazione API dei tag](#rbac-tags-actions)
+ [Operazioni API di backup e ripristino](#rbac-backup-restore-actions)
+ [Operazioni API continue Backup/Restore (PITR)](#rbac-continuous-backup-restore-actions)
+ [Operazioni API di Contributor Insights](#rbac-contributor-insights-actions)
+ [Operazioni API di esportazione](#rbac-export-actions)
+ [Operazioni API di importazione](#rbac-import-actions)
+ [Operazioni API del flusso di dati Amazon Kinesis](#rbac-kinesis-actions)
+ [Operazioni API di policy basate su risorse](#rbac-rbp-actions)
+ [Time-to-Live Operazioni API](#rbac-ttl-actions)
+ [Altre operazioni API](#rbac-other-actions)
+ [Operazioni API per i flussi DynamoDB](#rbac-ds-actions)

## Operazioni API del piano dati
<a name="rbac-data-plane-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API del [piano dati](HowItWorks.API.md#HowItWorks.API.DataPlane) per le policy basate su risorse e l’accesso multi-account.


| Piano dati - Tables/indexes APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DeleteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)   | Sì  | Sì | 
|   [GetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)   | Sì | Sì | 
|   [PutItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)   | Sì | Sì | 
|   [Query](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Query.html)   | Sì  | Sì | 
|   [Scan](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_Scan.html)   | Sì  | Sì | 
|   [UpdateItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)   | Sì | Sì | 
|   [TransactGetItems](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TransactGetItems.html)   | Sì | Sì | 
|   [TransactWriteItems](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TransactWriteItems.html)   | Sì | Sì | 
|   [BatchGetItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchGetItem.html)   | Sì | Sì | 
|   [BatchWriteItem](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html)   | Sì | Sì | 

## Operazioni API PartiQL
<a name="rbac-partiql-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API [PartiQL](HowItWorks.API.md#HowItWorks.API.DataPlane.partiql) per le policy basate su risorse e l’accesso multi-account.


| PartiQL APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [BatchExecuteStatement](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchExecuteStatement.html)   | Sì | No | 
|   [ExecuteStatement](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ExecuteStatement.html)   | Sì | No | 
|   [ExecuteTransaction](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ExecuteTransaction.html)   | Sì | No | 

## Operazioni API del piano di controllo (control-plane)
<a name="rbac-control-plane-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API del [piano di controllo](HowItWorks.API.md#HowItWorks.API.ControlPlane) (control-plane) per le policy basate su risorse e l’accesso multi-account.


| Control Plane - Tabelle APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [CreateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html)   | No | No | 
|   [DeleteTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteTable.html)   | Sì | Sì | 
|   [DescribeTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTable.html)   | Sì | Sì | 
|   [UpdateTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTable.html)   | Sì | Sì | 

## Operazioni API delle tabelle globali versione 2019.11.21 (Corrente)
<a name="rbac-current-global-table-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API delle [Tabelle globali versione 2019.11.21 (Corrente)](GlobalTables.md) per le policy basate su risorse e l’accesso multi-account.


| Tabelle globali versione 2019.11.21 (attuale) APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DescribeTableReplicaAutoScaling](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTableReplicaAutoScaling.html)   | Sì | No | 
|   [UpdateTableReplicaAutoScaling](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTableReplicaAutoScaling.html)   | Sì | No | 

## Operazioni API delle tabelle globali versione 2017.11.29 (Legacy)
<a name="rbac-legacy-global-table-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API delle [tabelle globali versione 2017.11.29 (Legacy)](globaltables.V1.md) per le policy basate su risorse e l’accesso multi-account.


| Tabelle globali versione 2017.11.29 (Legacy) APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [CreateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateGlobalTable.html)   | No | No | 
|   [DescribeGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTable.html)   | No | No | 
|   [DescribeGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeGlobalTableSettings.html)   | No | No | 
|   [ListGlobalTables](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListGlobalTables.html)   | No | No | 
|   [UpdateGlobalTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTable.html)   | No | No | 
|   [UpdateGlobalTableSettings](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateGlobalTableSettings.html)   | No | No | 

## Operazione API dei tag
<a name="rbac-tags-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API relative ai [tag](Tagging.Operations.md) per le policy basate su risorse e l’accesso multi-account.


| Tag APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [ListTagsOfResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTagsOfResource.html)   | Sì  | Sì | 
|   [TagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_TagResource.html)   | Sì | Sì | 
|   [UntagResource](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UntagResource.html)   | Sì | Sì | 

## Operazioni API di backup e ripristino
<a name="rbac-backup-restore-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API relative al [backup e al ripristino](Backup-and-Restore.md) per le policy basate su risorse e l’accesso multi-account.


| Backup e ripristino APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [CreateBackup](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateBackup.html)   | Sì | No | 
|   [DescribeBackup](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeBackup.html)   | No | No | 
|   [DeleteBackup](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteBackup.html)   | No | No | 
|  [RestoreTableFromBackup](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableFromBackup.html)  | No | No | 

## Operazioni API continue Backup/Restore (PITR)
<a name="rbac-continuous-backup-restore-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API relative a [Continuous Backup/Restore (PITR)](Point-in-time-recovery.md) per le politiche basate sulle risorse e l'accesso tra account.


| Continuo (PITR) Backup/Restore APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DescribeContinuousBackups](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeContinuousBackups.html)   | Sì | No | 
|   [RestoreTableToPointInTime](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_RestoreTableToPointInTime.html)   | Sì | No | 
|   [UpdateContinuousBackups](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateContinuousBackups.html)   | Sì | No | 

## Operazioni API di Contributor Insights
<a name="rbac-contributor-insights-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API relative a [Continuous Backup/Restore (PITR)](Point-in-time-recovery.md) per le politiche basate sulle risorse e l'accesso tra account.


| Approfondimenti per i contributori APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DescribeContributorInsights](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeContributorInsights.html)   | Sì | No | 
|   [ListContributorInsights](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListContributorInsights.html)   | No | No | 
|   [UpdateContributorInsights](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateContributorInsights.html)   | Sì | No | 

## Operazioni API di esportazione
<a name="rbac-export-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API di esportazione per le policy basate su risorse e l’accesso multi-account.


| Esportazione APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DescribeExport](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeExport.html)   | No | No | 
|   [ExportTableToPointInTime](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ExportTableToPointInTime.html)   | Sì | No | 
|   [ListExports](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListExports.html)   | No | No | 

## Operazioni API di importazione
<a name="rbac-import-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API di esportazione per le policy basate su risorse e l’accesso multi-account.


| Importazione APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DescribeImport](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeImport.html)   | No | No | 
|   [ImportTable](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ImportTable.html)   | No | No | 
|   [ListImports](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListImports.html)   | No | No | 

## Operazioni API del flusso di dati Amazon Kinesis
<a name="rbac-kinesis-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API del flusso di dati Kinesis per le policy basate su risorse e l’accesso multi-account.


| Kinesis APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DescribeKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeKinesisStreamingDestination.html)   | Sì | No | 
|   [DisableKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DisableKinesisStreamingDestination.html)   | Sì | No | 
|   [EnableKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_EnableKinesisStreamingDestination.html)   | Sì | No | 
|   [UpdateKinesisStreamingDestination](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateKinesisStreamingDestination.html)   | Sì | No | 

## Operazioni API di policy basate su risorse
<a name="rbac-rbp-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API di policy basate su risorse per le policy basate su risorse e l’accesso multi-account.


| Politica basata sulle risorse APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [GetResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetResourcePolicy.html)   | Sì | No | 
|   [PutResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutResourcePolicy.html)   | Sì | No | 
|   [DeleteResourcePolicy](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteResourcePolicy.html)   | Sì | No | 

## Time-to-Live Operazioni API
<a name="rbac-ttl-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito dalle operazioni API [Time to Live](TTL.md) (TTL) per le policy basate su risorse e l’accesso multi-account.


| TTL APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DescribeTimeToLive](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeTimeToLive.html)   | Sì | No | 
|   [UpdateTimeToLive](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateTimeToLive.html)   | Sì | No | 

## Altre operazioni API
<a name="rbac-other-actions"></a>

La tabella seguente elenca il supporto a livello di API fornito da altre operazioni API varie per le policy basate su risorse e l’accesso multi-account.


| Altro APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DescribeLimits](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeLimits.html)   | No | No | 
|   [DescribeEndpoints](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DescribeEndpoints.html)   | No | No | 
|   [ListBackups](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListBackups.html)   | No | No | 
|   [ListTables](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ListTables.html)   | No | No | 

## Operazioni API per i flussi DynamoDB
<a name="rbac-ds-actions"></a>

La tabella seguente elenca il supporto a livello di API di APIs DynamoDB Streams per le policy basate sulle risorse e l'accesso tra account.


| Streams DynamoDB APIs | Supporto per policy basate su risorse | Supporto multi-account | 
| --- | --- | --- | 
|   [DescribeStream](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_DescribeStream.html)   | Sì  | Sì | 
|   [GetRecords](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetRecords.html)   | Sì | Sì | 
|   [GetShardIterator](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_GetShardIterator.html)   | Sì | Sì | 
|   [ListStreams](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_streams_ListStreams.html)   | No | No | 

# Autorizzazione con policy basate sull’identità IAM e policy basate su risorse DynamoDB
<a name="rbac-auth-iam-id-based-policies-DDB"></a>

Le **policy basate sull’identità** sono collegate a un’identità, come utenti, gruppi di utenti e ruoli IAM. Si tratta di documenti di policy IAM che controllano le azioni autorizzate per l’identità, nonché le risorse e le condizioni di esecuzione. Le policy basate sull’identità possono essere policy [gestite](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html) o [in linea](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies).

Le **policy basate su risorse** sono documenti di policy IAM che vengono collegate a una risorsa, come una tabella DynamoDB. Queste policy concedono al principale specificato l’autorizzazione per eseguire operazioni specifiche sulla risorsa e definiscono le condizioni in cui ciò si applica. Ad esempio, la policy basate su risorse per una tabella DynamoDB include anche l’indice associato alla tabella. Le policy basate su risorse sono policy inline. Non esistono policy basate su risorse gestite.

Per ulteriori informazioni su queste policy, consulta [Identity-based policies and resource-based policies](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html) nella *Guida per l’utente di IAM*.

Se il principale IAM proviene dallo stesso account del proprietario della risorsa, una policy basate su risorse è sufficiente per specificare le autorizzazioni di accesso alla risorsa. È comunque possibile scegliere di disporre di una policy basata sull’identità IAM insieme a una policy basata su risorse. Per l’accesso multi-account, è necessario consentire esplicitamente l’accesso sia nelle policy basate sull’identità che in quelle basate su risorse, come specificato in [Accesso multi-account con policy basate su risorse in DynamoDB](rbac-cross-account-access.md). Quando si utilizzano entrambi i tipi di policy, una policy viene valutata come descritto in [Determinazione se una richiesta è consentita o rifiutata in un account](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow).

**Importante**  
Se una policy basata sull'identità concede l'accesso incondizionato a una tabella DynamoDB (ad esempio`dynamodb:GetItem`, senza condizioni), una policy basata sulle risorse che consente l'accesso con condizioni attivate non limiterà tale accesso. `dynamodb:Attributes` L'autorizzazione incondizionata della policy basata sull'identità ha la precedenza e le condizioni della policy basata sulle risorse non vengono applicate come restrizioni. Per limitare l'accesso a attributi specifici, utilizzate un'`Deny`istruzione esplicita anziché affidarvi esclusivamente alle istruzioni condizionali contenute nella politica basata sulle risorse. `Allow`

# 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 (\$1) 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/*"
      ]
    }
  ]
}
```

------

# Considerazioni sulle policy basate su risorse per DynamoDB
<a name="rbac-considerations"></a>

Quando si definiscono policy basate su risorse per risorse DynamoDB, si applicano le seguenti considerazioni:

**Considerazioni generali**
+ La dimensione massima supportata per un documento di policy basata su risorse è di 20 KB. DynamoDB non calcola gli spazi vuoti nella determinazione delle dimensioni di una policy rispetto a tale limite. 
+ Gli aggiornamenti successivi a una policy per una determinata risorsa vengono bloccati per 15 secondi dopo un aggiornamento riuscito della policy per la stessa risorsa.
+ Attualmente è possibile collegare una policy basata su risorse solo ai flussi esistenti, non a un flusso durante la sua creazione.

**Considerazioni sulle tabelle globali**
+ Le policy basate su risorse non sono supportate per le repliche delle [Tabelle globali versione 2017.11.29](globaltables_HowItWorks.md) (Legacy).
+ All’interno di una policy basata su risorse, se l’azione per un ruolo collegato al servizio (SLR, Service-Linked Role) DynamoDB per replicare i dati per una tabella globale viene negata, l’aggiunta o l’eliminazione di una replica avrà esito negativo e genererà un errore.
+ La GlobalTable risorsa [AWS: :DynamoDB::](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html) non supporta la creazione di una replica e l'aggiunta di una policy basata sulle risorse a tale replica nello stesso aggiornamento dello stack in regioni diverse dalla regione in cui viene distribuito l'aggiornamento dello stack.

**Considerazioni relative a più account**
+ L'accesso tra account tramite politiche basate sulle risorse non supporta tabelle crittografate con chiavi gestite perché non è possibile concedere l'accesso tra account diversi alla politica KMS gestita AWS . AWS 

**CloudFormation considerazioni**
+ Le policy basate su risorse non supportano il [rilevamento delle deviazioni](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#). Se aggiorni una policy basata sulle risorse al di fuori del modello di AWS CloudFormation stack, dovrai aggiornare lo stack con le CloudFormation modifiche.
+ Le policy basate su risorse non supportano modifiche fuori banda. Se aggiungi, aggiorni o elimini una politica all'esterno del CloudFormation modello, la modifica non verrà sovrascritta se non ci sono modifiche alla politica all'interno del modello.

  Ad esempio, si supponga che il modello contenga una policy basata su risorse che successivamente verrà aggiornata al di fuori del modello. Se non si apportano modifiche alla policy nel modello, la policy aggiornata in DynamoDB non verrà sincronizzata con la policy nel modello.

  Al contrario, si supponga che il modello non contenga una policy basata su risorse, ma che si aggiunga una policy esterna al modello. Questa policy non verrà rimossa da DynamoDB finché non la si aggiunge al modello. Durante l’aggiunta di una policy al modello e l’aggiornamento dello stack, la policy esistente in DynamoDB verrà aggiornata in modo che corrisponda a quella definita nel modello.

# Best practice per policy basate su risorse di DynamoDB
<a name="rbac-best-practices"></a>

Questo argomento descrive le best practice per definire le autorizzazioni di accesso per le risorse DynamoDB e le azioni consentite su tali risorse.

## Semplificazione del controllo degli accessi alle risorse DynamoDB
<a name="rbac-simplify-access-control"></a>

Se AWS Identity and Access Management i principali che devono accedere a una risorsa DynamoDB fanno parte Account AWS dello stesso proprietario della risorsa, non è richiesta una policy basata sull'identità IAM per ogni principale. Sarà sufficiente una policy basata su risorse collegata alle risorse fornite. Questo tipo di configurazione semplifica il controllo degli accessi.

## Protezione delle risorse DynamoDB con policy basate su risorse
<a name="rbac-protect"></a>

 Per tutte le tabelle e i flussi DynamoDB è possibile creare policy basate su risorse per imporre il controllo degli accessi a queste risorse. Le policy basate su risorse consentono di centralizzare le autorizzazioni a livello di risorsa, semplificare il controllo degli accessi a tabelle, indici e flussi di DynamoDB e ridurre il sovraccarico di gestione. Se non viene specificata alcuna policy basata su risorse per una tabella o un flusso, l’accesso alla tabella o al flusso verrà implicitamente negato, a meno che le policy basate sull’identità associate ai principali IAM non consentano l’accesso.

## Assegna le autorizzazioni con privilegi minimi
<a name="rbac-least-privilege"></a>

Durante l’impostazione delle autorizzazioni con policy basate su risorse per risorse DynamoDB, concedi solo le autorizzazioni necessarie per eseguire un’operazione. Puoi farlo definendo le azioni che possono essere intraprese su risorse specifiche in condizioni specifiche, note anche come autorizzazioni con privilegi minimi. Potresti iniziare con autorizzazioni generiche mentre esplori le autorizzazioni necessarie per il tuo carico di lavoro o il caso d'uso. Man mano che il tuo caso d'uso matura, puoi lavorare per ridurre le autorizzazioni concesse per lavorare con il privilegio minimo.

## Analisi dell’attività di accesso multi-account per generare policy con privilegi minimi
<a name="rbac-analyze-cross-account-access"></a>

Lo strumento di analisi degli accessi IAM segnala l’accesso multi-account a entità esterne specificate nelle policy basate su risorse e fornisce visibilità per aiutare a perfezionare le autorizzazioni e conformarsi al privilegio minimo. Per ulteriori informazioni sulla generazione delle policy, consulta [IAM Access Analyzer policy generation](https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-policy-generation.html).

## Utilizzo dello strumento di analisi degli accessi IAM per generare policy con privilegi minimi
<a name="rbac-iam-access-analyzer"></a>

Per concedere solo le autorizzazioni richieste per eseguire un'attività, puoi generare policy in funzione dell'attività di accesso che hai effettuato l'accesso in AWS CloudTrail. Lo strumento di analisi degli accessi IAM analizza i servizi e le azioni utilizzate dalle policy.