

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

# Creazione di istruzioni di policy IAM personalizzate per accedere ai dati in Amazon Neptune
<a name="iam-data-access-policies"></a>

Le dichiarazioni di policy di accesso ai dati di Neptune utilizzano [azioni di accesso ai dati](iam-dp-actions.md), [risorse](iam-data-resources.md) e [chiavi di condizione](iam-data-condition-keys.md#iam-neptune-condition-keys), tutte precedute dal prefisso `neptune-db:`.

**Topics**
+ [Utilizzo delle azioni di query nelle dichiarazioni di policy di accesso ai dati di Neptune](#iam-data-query-actions)
+ [Azioni IAM per l'accesso ai dati in Amazon Neptune](iam-dp-actions.md)
+ [Tipi di risorse IAM per l'accesso ai dati in Amazon Neptune](iam-data-resources.md)
+ [Chiavi di condizione IAM per l'accesso ai dati in Amazon Neptune](iam-data-condition-keys.md)
+ [Creazione di policy di accesso ai dati IAM in Amazon Neptune](iam-data-access-examples.md)

## Utilizzo delle azioni di query nelle dichiarazioni di policy di accesso ai dati di Neptune
<a name="iam-data-query-actions"></a>

Esistono tre azioni di query di Neptune che possono essere utilizzate nelle dichiarazioni di policy di accesso ai dati, vale a dire `ReadDataViaQuery`, `WriteDataViaQuery` e `DeleteDataViaQuery`. Una particolare query può richiedere le autorizzazioni per eseguire più di una di queste azioni e potrebbe non essere sempre ovvio quale combinazione di queste azioni debba essere consentita per eseguire una query.

Prima di eseguire una query, Neptune determina le autorizzazioni necessarie per eseguire ogni passaggio della query e le combina nel set completo di autorizzazioni richieste dalla query. Nota che questo set completo di autorizzazioni include tutte le azioni che la query *potrebbe* eseguire, il che non è necessariamente il set di azioni che la query effettivamente eseguirà quando verrà eseguita sui dati.

Ciò significa che per consentire l'esecuzione di una determinata query, è necessario fornire le autorizzazioni per ogni azione che la query potrebbe eseguire, indipendentemente dal fatto che le esegua effettivamente o meno.

Ecco alcuni esempi di query Gremlin in cui ciò viene spiegato più dettagliatamente:
+ 

  ```
  g.V().count()
  ```

  `g.V()` e `count()` richiedono solo l'accesso in lettura, quindi la query nel suo complesso richiede solo l'accesso `ReadDataViaQuery`.
+ 

  ```
  g.addV()
  ```

  `addV()` deve verificare se esiste o meno un vertice con un determinato ID prima di inserirne uno nuovo. Ciò significa che richiede sia l'accesso `ReadDataViaQuery` che `WriteDataViaQuery`.
+ 

  ```
  g.V('1').as('a').out('created').addE('createdBy').to('a')
  ```

  `g.V('1').as('a')` e `out('created')` richiedono solo l'accesso in lettura, ma `addE().from('a')` richiede sia l'accesso in lettura che in scrittura perché `addE()` deve leggere i vertici `from` e `to` e verificare se esiste già un arco con lo stesso ID prima di aggiungerne uno nuovo. La query nel suo complesso necessita quindi sia dell'accesso `ReadDataViaQuery` che `WriteDataViaQuery`.
+ 

  ```
  g.V().drop()
  ```

  `g.V()` richiede solo l'accesso in lettura. `drop()` necessita sia dell'accesso in lettura che di quello di eliminazione perché deve leggere un vertice o uno arco prima di eliminarlo, quindi la query nel suo complesso richiede sia l'accesso `ReadDataViaQuery` che `DeleteDataViaQuery`.
+ 

  ```
  g.V('1').property(single, 'key1', 'value1')
  ```

  `g.V('1')` richiede solo l'accesso in lettura, ma `property(single, 'key1', 'value1')` richiede l'accesso in lettura, scrittura ed eliminazione. In questo caso, il passaggio `property()` inserisce la chiave e il valore se non esistono già nel vertice, ma se esistono già, elimina il valore della proprietà esistente e inserisce un nuovo valore al suo posto. Pertanto, la query nel suo complesso richiede l'accesso `ReadDataViaQuery`, `WriteDataViaQuery` e `DeleteDataViaQuery`.

  Qualsiasi query che contenga un passaggio `property()` avrà bisogno delle autorizzazioni `ReadDataViaQuery`, `WriteDataViaQuery` e `DeleteDataViaQuery`.

Ecco alcuni esempi di openCypher:
+ 

  ```
  MATCH (n)
  RETURN n
  ```

  Questa query legge tutti i nodi del database e li restituisce, il che richiede solo l'accesso `ReadDataViaQuery`.
+ 

  ```
  MATCH (n:Person)
  SET n.dept = 'AWS'
  ```

  Questa query richiede l'accesso `ReadDataViaQuery`, `WriteDataViaQuery` e `DeleteDataViaQuery`. Legge tutti i nodi con l'etichetta 'Person' e vi aggiunge una nuova proprietà con la chiave `dept` e il valore `AWS` oppure, se la proprietà `dept` esiste già, elimina il vecchio valore e inserisce `AWS` al suo posto. Inoltre, se il valore da impostare è `null`, `SET` elimina completamente la proprietà.

   Poiché in alcuni casi può essere necessario eliminare un valore esistente, la clausola `SET` necessita **sempre** delle autorizzazioni `DeleteDataViaQuery` nonché delle autorizzazioni `ReadDataViaQuery` e `WriteDataViaQuery`.
+ 

  ```
  MATCH (n:Person)
  DETACH DELETE n
  ```

  Questa query richiede le autorizzazioni `ReadDataViaQuery` e `DeleteDataViaQuery`. Trova tutti i nodi con l'etichetta `Person` e li elimina insieme agli archi collegati a tali nodi e alle etichette e proprietà associate.
+ 

  ```
  MERGE (n:Person {name: 'John'})-[:knows]->(:Person {name: 'Peter'})
  RETURN n
  ```

  Questa query richiede le autorizzazioni `ReadDataViaQuery` e `WriteDataViaQuery`. La clausola `MERGE` cerca la corrispondenza con un modello specificato o lo crea. Poiché può verificarsi un'operazione di scrittura se non viene trovata una corrispondenza con il modello, sono necessarie le autorizzazioni di scrittura oltre a quelle di lettura.

# Azioni IAM per l'accesso ai dati in Amazon Neptune
<a name="iam-dp-actions"></a>

Nota che le azioni di accesso ai dati di Neptune hanno il prefisso `neptune-db:`, mentre le azioni amministrative in Neptune hanno il prefisso `rds:`.

Il nome della risorsa Amazon (ARN) per una risorsa dati in IAM non è lo stesso ARN assegnato a un cluster in fase di creazione. È necessario creare l'ARN come mostrato in [Specificare le risorse dati](iam-data-resources.md). Tale risorsa di dati ARNs può utilizzare caratteri jolly per includere più risorse.

Le dichiarazioni sulla politica di accesso ai dati possono includere anche la chiave di QueryLanguage condizione [neptune-db:](iam-data-condition-keys.md#iam-neptune-condition-keys) per limitare l'accesso tramite il linguaggio di interrogazione.

A partire dal [Rilascio: 1.2.0.0 (21/07/2022)](engine-releases-1.2.0.0.md), Neptune supporta la limitazione delle autorizzazioni a una o più [azioni specifiche di Neptune](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonneptune.html). Ciò fornisce un controllo degli accessi più granulare di quanto fosse possibile in precedenza.

**Importante**  
Le modifiche apportate a una policy IAM richiedono fino a 10 minuti per essere applicate alle risorse Neptune specificate.
Le policy IAM applicate a un cluster database Neptune si applicano a tutte le istanze del cluster.

## *Azioni di accesso ai dati basate su query*
<a name="iam-dp-actions-queries"></a>

**Nota**  
Non è sempre ovvio quali autorizzazioni siano necessarie per eseguire una determinata query, poiché le query possono potenzialmente eseguire più di un'azione a seconda dei dati che elaborano. Per ulteriori informazioni, consulta [Utilizzo delle azioni di query](iam-data-access-policies.md#iam-data-query-actions).

## `neptune-db:ReadDataViaQuery`
<a name="readdataviaquery"></a>

`ReadDataViaQuery` consente all'utente di leggere i dati dal database Neptune inviando query.

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Chiavi di contesto dell'azione:* `neptune-db:QueryLanguage`.

*Risorse necessarie:* database.

## `neptune-db:WriteDataViaQuery`
<a name="writedataviaquery"></a>

`WriteDataViaQuery` consente all'utente di scrivere i dati nel database Neptune inviando query.

*Gruppi di azione:* lettura-scrittura.

*Chiavi di contesto dell'azione:* `neptune-db:QueryLanguage`.

*Risorse necessarie:* database.

## `neptune-db:DeleteDataViaQuery`
<a name="deletedataviaquery"></a>

`DeleteDataViaQuery` consente all'utente di eliminare i dati dal database Neptune inviando query.

*Gruppi di azione:* lettura-scrittura.

*Chiavi di contesto dell'azione:* `neptune-db:QueryLanguage`.

*Risorse necessarie:* database.

## `neptune-db:GetQueryStatus`
<a name="getquerystatus"></a>

`GetQueryStatus` consente all'utente di controllare lo stato di tutte le query attive.

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Chiavi di contesto dell'azione:* `neptune-db:QueryLanguage`.

*Risorse necessarie:* database.

## `neptune-db:GetStreamRecords`
<a name="getstreamrecords"></a>

`GetStreamRecords` consente all'utente di recuperare i record di flusso da Neptune.

*Gruppi di azione:* lettura-scrittura.

*Chiavi di contesto dell'azione:* `neptune-db:QueryLanguage`.

*Risorse necessarie:* database.

## `neptune-db:CancelQuery`
<a name="cancelquery"></a>

`CancelQuery` consente all'utente di annullare una query.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## *Azioni generali di accesso ai dati*
<a name="iam-dp-actions-general"></a>

## `neptune-db:GetEngineStatus`
<a name="getenginestatus"></a>

`GetEngineStatus` consente all'utente di controllare lo stato del motore Neptune.

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:GetStatisticsStatus`
<a name="getstatisticsstatus"></a>

`GetStatisticsStatus` consente all'utente di controllare lo stato delle statistiche raccolte per il database.

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:GetGraphSummary`
<a name="getgraphsummary"></a>

`GetGraphSummary` L'API di riepilogo del grafo consente di recuperare un riepilogo di sola lettura del grafo.

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:ManageStatistics`
<a name="managestatistics"></a>

`ManageStatistics` consente all'utente di gestire la raccolta di statistiche per il database.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:DeleteStatistics`
<a name="deletestatistics"></a>

`DeleteStatistics` consente all'utente di eliminare tutte le statistiche del database.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:ResetDatabase`
<a name="resetdatabase"></a>

`ResetDatabase` consente all'utente di ottenere il token necessario per una reimpostazione e di reimpostare il database Neptune.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## *Azioni di accesso ai dati dello strumento di caricamento in blocco*
<a name="iam-dp-actions-loader"></a>

## `neptune-db:StartLoaderJob`
<a name="startloaderjob"></a>

`StartLoaderJob` consente all'utente di avviare un processo dello strumento di caricamento in blocco.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:GetLoaderJobStatus`
<a name="getloaderjobstatus"></a>

`GetLoaderJobStatus` consente all'utente di controllare lo stato di un processo dello strumento di caricamento in blocco

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:ListLoaderJobs`
<a name="listloaderjobs"></a>

`ListLoaderJobs` consente all'utente di elencare tutti i processi dello strumento di caricamento in blocco.

*Gruppi di azioni:* solo elenco, sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:CancelLoaderJob`
<a name="cancelloaderjob"></a>

`CancelLoaderJob` consente all'utente di annullare un processo del loader.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## *Azioni di accesso ai dati di machine learning*
<a name="iam-dp-actions-ml"></a>

## `neptune-db:StartMLDataProcessingJob`
<a name="startmldataprocessingjob"></a>

`StartMLDataProcessingJob` consente a un utente di avviare un processo di elaborazione dati Neptune ML.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:StartMLModelTrainingJob`
<a name="startmlmodeltrainingjob"></a>

`StartMLModelTrainingJob` consente a un utente di avviare un processo di addestramento dei modelli ML.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:StartMLModelTransformJob`
<a name="startmlmodeltransformjob"></a>

`StartMLModelTransformJob` consente a un utente di avviare un processo di trasformazione dei modelli ML.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:CreateMLEndpoint`
<a name="createmlendpoint"></a>

`CreateMLEndpoint` consente a un utente di creare un endpoint Neptune ML.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:GetMLDataProcessingJobStatus`
<a name="getmldataprocessingjobstatus"></a>

`GetMLDataProcessingJobStatus` consente a un utente di controllare lo stato di un processo di elaborazione dati Neptune ML.

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:GetMLModelTrainingJobStatus`
<a name="getmlmodeltrainingjobstatus"></a>

`GetMLModelTrainingJobStatus` consente a un utente di controllare lo stato di un processo di addestramento dei modelli Neptune ML.

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:GetMLModelTransformJobStatus`
<a name="getmlmodeltransformjobstatus"></a>

`GetMLModelTransformJobStatus` consente a un utente di controllare lo stato di un processo di trasformazione dei modelli Neptune ML.

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:GetMLEndpointStatus`
<a name="getmlendpointstatus"></a>

`GetMLEndpointStatus` consente a un utente di controllare lo stato di un endpoint Neptune ML.

*Gruppi di azioni:* sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:ListMLDataProcessingJobs`
<a name="listmldataprocessingjobs"></a>

`ListMLDataProcessingJobs` consente a un utente di elencare tutti i processi di elaborazione dati Neptune ML.

*Gruppi di azioni:* solo elenco, sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:ListMLModelTrainingJobs`
<a name="listmlmodeltrainingjobs"></a>

`ListMLModelTrainingJobs` consente a un utente di elencare tutti i processi di addestramento dei modelli Neptune ML.

*Gruppi di azioni:* solo elenco, sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:ListMLModelTransformJobs`
<a name="listmlmodeltransformjobs"></a>

`ListMLModelTransformJobs` consente a un utente di elencare tutti i processi di trasformazione dei modelli ML.

*Gruppi di azioni:* solo elenco, sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:ListMLEndpoints`
<a name="listmlendpoints"></a>

`ListMLEndpoints` consente a un utente di elencare tutti gli endpoint Neptune ML.

*Gruppi di azioni:* solo elenco, sola lettura, lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:CancelMLDataProcessingJob`
<a name="cancelmldataprocessingjob"></a>

`CancelMLDataProcessingJob` consente a un utente di annullare un processo di elaborazione dati Neptune ML.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:CancelMLModelTrainingJob`
<a name="cancelmlmodeltrainingjob"></a>

`CancelMLModelTrainingJob` consente a un utente di annullare un processo di addestramento dei modelli Neptune ML.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:CancelMLModelTransformJob`
<a name="cancelmlmodeltransformjob"></a>

`CancelMLModelTransformJob` consente a un utente di annullare un processo di trasformazione dei modelli Neptune ML.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

## `neptune-db:DeleteMLEndpoint`
<a name="deletemlendpoint"></a>

`DeleteMLEndpoint` consente a un utente di eliminare un endpoint Neptune ML.

*Gruppi di azione:* lettura-scrittura.

*Risorse necessarie:* database.

# Tipi di risorse IAM per l'accesso ai dati in Amazon Neptune
<a name="iam-data-resources"></a>

Le risorse dati, come le azioni dati, hanno il prefisso `neptune-db:`.

In una policy di accesso ai dati di Neptune, è possibile specificare il cluster database a cui si concede l'accesso in un ARN con il seguente formato:

```
arn:aws:neptune-db:region:account-id:cluster-resource-id/*
```

Tale ARN della risorsa contiene le seguenti parti:
+ `region`è la AWS regione per il cluster Amazon Neptune DB.
+ `account-id` è il numero dell'account AWS per il cluster database.
+ `cluster-resource-id` è l'ID risorsa per il cluster database.
**Importante**  
`cluster-resource-id` è diverso dall'identificatore del cluster. Per trovare un ID di risorsa del cluster in Console di gestione AWS Neptune, cerca nella sezione Configurazione **il** cluster DB in questione.

# Chiavi di condizione IAM per l'accesso ai dati in Amazon Neptune
<a name="iam-data-condition-keys"></a>

[Utilizzando chiavi di condizione](security-iam-access-manage.md#iam-using-condition-keys), è possibile specificare le condizioni in una dichiarazione di policy IAM in modo che la dichiarazione diventi effettiva solo quando le condizioni sono vere.

Le chiavi di condizione che è possibile utilizzare nelle dichiarazioni di policy di accesso ai dati di Neptune rientrano nelle seguenti categorie:
+ [Chiavi di [condizione globali: il sottoinsieme di chiavi](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) di condizione AWS globali supportate da Neptune nelle dichiarazioni sulle politiche di accesso ai dati è elencato di seguito.](#iam-data-global-condition-keys)
+ [Chiavi di condizione specifiche del servizio](#iam-neptune-condition-keys): si tratta di chiavi definite da Neptune specificamente per l'uso nelle dichiarazioni di policy di accesso ai dati. Al momento ce n'è solo una, [neptune-db: QueryLanguage](#neptune-db-query-language), che concede l'accesso solo se viene utilizzato un linguaggio di interrogazione specifico.

## AWS chiavi di contesto delle condizioni globali supportate da Neptune nelle dichiarazioni sulle politiche di accesso ai dati
<a name="iam-data-global-condition-keys"></a>

La tabella seguente elenca il sottoinsieme di [chiavi di contesto di condizione globali AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) supportate da Amazon Neptune per l'uso nelle dichiarazioni di policy di accesso ai dati:


**Chiavi di condizione globali che è possibile utilizzare nelle dichiarazioni di policy di accesso ai dati**  

| Chiavi di condizione | Descrizione | Tipo | 
| --- | --- | --- | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-currenttime) | Filtra l'accesso in base alla data e all'ora correnti della richiesta. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-epochtime) | Filtra l'accesso in base alla data e all'ora della richiesta espresse come valore Unix epoch. | Numeric | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalaccount) | Filtra l'accesso in base all'account a cui appartiene il principale che effettua la richiesta. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalarn) | Filtra l'accesso in base all'ARN del principale che ha effettuato la richiesta. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalisawsservice) | Consente l'accesso solo se la chiamata viene effettuata direttamente da un responsabile del servizio. AWS  | Boolean | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgid) | Filtra l'accesso in base all'identificatore dell'organizzazione in AWS Organizations a cui appartiene il principale richiedente. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principalorgpaths) | Filtra l'accesso in base al percorso AWS Organizations per il principale che effettua la richiesta. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltag) | Filtra l'accesso in base a un tag collegato al principale che effettua la richiesta. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltype](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-principaltype) | Filtra l'accesso in base al tipo di principale che effettua la richiesta. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requestedregion) | Filtra l'accesso in base alla AWS regione chiamata nella richiesta. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-securetransport) | Consente l'accesso solo se la richiesta è stata inviata tramite SSL. | Boolean | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-sourceip) | Filtra l'accesso in base all'indirizzo IP del richiedente. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tokenissuetime) | Filtra l'accesso in base alla data e all'ora in cui sono state generate le credenziali di sicurezza provvisorie. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-useragent](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-useragent) | Filtra l'accesso dall'applicazione client del richiedente. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-userid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-userid) | Filtra l'accesso in base all'identificatore del principale del richiedente. | String | 
| [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-viaawsservice) | Consente l'accesso solo se un AWS servizio ha effettuato la richiesta per tuo conto. | Boolean | 

## Chiavi di condizione specifiche del servizio Neptune
<a name="iam-neptune-condition-keys"></a>

Neptune supporta la seguente chiave di condizione specifica del servizio per le policy IAM:


**Chiavi di condizione specifiche del servizio Neptune**  

| Chiavi di condizione | Descrizione | Tipo | 
| --- | --- | --- | 
| neptune-db:QueryLanguage |  Filtra l'accesso ai dati in base al linguaggio di query utilizzato. I valori validi sono`Gremlin`, `OpenCypher` e `Sparql`. Le azioni supportate sono `ReadDataViaQuery`, `WriteDataViaQuery`, `DeleteDataViaQuery`, `GetQueryStatus` e `CancelQuery`.  | String | 

# Creazione di policy di accesso ai dati IAM in Amazon Neptune
<a name="iam-data-access-examples"></a>

[Gli esempi seguenti mostrano come creare policy IAM personalizzate che utilizzano il controllo granulare degli accessi del piano dati APIs e delle azioni, introdotto nella versione 1.2.0.0 del motore Neptune.](engine-releases-1.2.0.0.md) 

## Esempio di policy che consente l'accesso illimitato ai dati in un cluster database Neptune
<a name="iam-auth-data-policy-example-general"></a>

La policy contenuta nell'esempio seguente consente a un utente IAM di connettersi al cluster database Neptune utilizzando l'autenticazione database IAM e utilizza il carattere "`*`" per trovare una corrispondenza con tutte le azioni disponibili.

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "neptune-db:*",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

L'esempio precedente include un ARN della risorsa in un formato particolare per l'autenticazione IAM di Neptune. Per creare l'ARN, consulta [Specificare le risorse dati](iam-data-resources.md). Nota che l'ARN utilizzato per un'autorizzazione IAM `Resource` non è lo stesso ARN assegnato al cluster in fase di creazione.

## Esempio di policy che consente l'accesso in sola lettura a un cluster database Neptune
<a name="iam-auth-data-policy-example-read-only"></a>

La seguente policy concede l'autorizzazione per l'accesso completo in sola lettura ai dati in un cluster database Neptune: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:Read*",
        "neptune-db:Get*",
        "neptune-db:List*"
      ],
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Esempio di policy che nega l'accesso a un cluster database Neptune
<a name="iam-auth-data-policy-example-deny"></a>

L'azione IAM predefinita è negare l'accesso a un cluster database a meno che non venga concesso un *effetto* `Allow`. Tuttavia, la seguente politica nega qualsiasi accesso a un cluster DB per un AWS account e una regione particolari, il che ha quindi la precedenza su qualsiasi effetto. `Allow`

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": "neptune-db:*",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Esempio di policy che concede l'accesso in lettura tramite query
<a name="iam-auth-data-policy-example-read-query"></a>

La seguente policy concede l'autorizzazione per leggere da un cluster database Neptune solo tramite una query: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "neptune-db:ReadDataViaQuery",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Esempio di policy che consente solo query Gremlin
<a name="iam-auth-data-policy-example-gremlin-only"></a>

La seguente policy utilizza la chiave di condizione `neptune-db:QueryLanguage` per concedere l'autorizzazione a eseguire query su Neptune solo utilizzando il linguaggio di query Gremlin: 

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:ReadDataViaQuery",
        "neptune-db:WriteDataViaQuery",
        "neptune-db:DeleteDataViaQuery"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "neptune-db:QueryLanguage": "Gremlin"
        }
      }
    }
  ]
}
```

------

## Esempio di policy che consente l'accesso completo ad eccezione della gestione dei modelli Neptune ML
<a name="iam-auth-data-policy-example-all-but-ml"></a>

La seguente policy concede l'accesso completo alle operazioni del grafo Neptune, ad eccezione delle funzionalità di gestione dei modelli Neptune ML:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:CancelLoaderJob",
        "neptune-db:CancelQuery",
        "neptune-db:DeleteDataViaQuery",
        "neptune-db:DeleteStatistics",
        "neptune-db:GetEngineStatus",
        "neptune-db:GetLoaderJobStatus",
        "neptune-db:GetQueryStatus",
        "neptune-db:GetStatisticsStatus",
        "neptune-db:GetStreamRecords",
        "neptune-db:ListLoaderJobs",
        "neptune-db:ManageStatistics",
        "neptune-db:ReadDataViaQuery",
        "neptune-db:ResetDatabase",
        "neptune-db:StartLoaderJob",
        "neptune-db:WriteDataViaQuery"
      ],
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Esempio di policy che consente l'accesso alla gestione dei modelli Neptune ML
<a name="iam-auth-data-policy-example-ml"></a>

Questa policy garantisce l'accesso alle funzionalità di gestione dei modelli Neptune ML:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:CancelMLDataProcessingJob",
        "neptune-db:CancelMLModelTrainingJob",
        "neptune-db:CancelMLModelTransformJob",
        "neptune-db:CreateMLEndpoint",
        "neptune-db:DeleteMLEndpoint",
        "neptune-db:GetMLDataProcessingJobStatus",
        "neptune-db:GetMLEndpointStatus",
        "neptune-db:GetMLModelTrainingJobStatus",
        "neptune-db:GetMLModelTransformJobStatus",
        "neptune-db:ListMLDataProcessingJobs",
        "neptune-db:ListMLEndpoints",
        "neptune-db:ListMLModelTrainingJobs",
        "neptune-db:ListMLModelTransformJobs",
        "neptune-db:StartMLDataProcessingJob",
        "neptune-db:StartMLModelTrainingJob",
        "neptune-db:StartMLModelTransformJob"
      ],
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Esempio di policy che concede l'accesso completo alle query
<a name="iam-auth-data-policy-example-full-query"></a>

La seguente policy concede l'accesso completo alle operazioni di query del grafo Neptune, ma non a funzionalità come il ripristino rapido, i flussi, lo strumento di caricamento in blocco, la gestione dei modelli Neptune ML e così via:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:ReadDataViaQuery",
        "neptune-db:WriteDataViaQuery",
        "neptune-db:DeleteDataViaQuery",
        "neptune-db:GetEngineStatus",
        "neptune-db:GetQueryStatus",
        "neptune-db:CancelQuery"
      ],
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------

## Esempio di policy che concede l'accesso completo solo alle query Gremlin
<a name="iam-auth-data-policy-example-full-gremlin-access"></a>

La seguente policy concede l'accesso completo alle operazioni di query del grafo Neptune utilizzando il linguaggio di query Gremlin, ma non alle query in altri linguaggi e non a funzionalità come il ripristino rapido, i flussi, lo strumento di caricamento in blocco, la gestione dei modelli Neptune ML e così via:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement":[
    {
      "Effect": "Allow",
      "Action": [
        "neptune-db:ReadDataViaQuery",
        "neptune-db:WriteDataViaQuery",
        "neptune-db:DeleteDataViaQuery",
        "neptune-db:GetEngineStatus",
        "neptune-db:GetQueryStatus",
        "neptune-db:CancelQuery"
      ],
      "Resource": [
        "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
      ],
      "Condition": {
        "StringEquals": {
           "neptune-db:QueryLanguage":"Gremlin"
        }
      }
    }
  ]
}
```

------

## Esempio di policy che concede l'accesso completo ad eccezione del ripristino rapido
<a name="iam-auth-data-policy-example-all-but-fast-reset"></a>

La seguente policy concede l'accesso completo a un cluster database Neptune ad eccezione dell'utilizzo del ripristino rapido:

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "neptune-db:*",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    },
    {
      "Effect": "Deny",
      "Action": "neptune-db:ResetDatabase",
      "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD1234EFGH5678IJKL90MNOP/*"
    }
  ]
}
```

------