

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Creación de instrucciones de políticas de IAM personalizadas para acceder a datos en Amazon Neptune
<a name="iam-data-access-policies"></a>

Las instrucciones de políticas de acceso a datos de Neptune utilizan [acciones](iam-dp-actions.md), [recursos](iam-data-resources.md) y [claves de condición](iam-data-condition-keys.md#iam-neptune-condition-keys) de acceso a los datos, todos ellos precedidos por el prefijo `neptune-db:`.

**Topics**
+ [Uso de acciones de consulta en las declaraciones de políticas de acceso a datos de Neptune](#iam-data-query-actions)
+ [Acciones de IAM para el acceso a los datos en Amazon Neptune](iam-dp-actions.md)
+ [Tipos de recursos de IAM para acceder a los datos en Amazon Neptune](iam-data-resources.md)
+ [Claves de condición de IAM para acceder a los datos en Amazon Neptune](iam-data-condition-keys.md)
+ [Creación de políticas de acceso a datos de IAM en Amazon Neptune](iam-data-access-examples.md)

## Uso de acciones de consulta en las declaraciones de políticas de acceso a datos de Neptune
<a name="iam-data-query-actions"></a>

Hay tres acciones de consulta de Neptune que se pueden utilizar en las declaraciones de políticas de acceso a los datos: `ReadDataViaQuery`, `WriteDataViaQuery` y `DeleteDataViaQuery`. Es posible que una consulta en particular necesite permisos para realizar varias de estas acciones, y puede que no siempre sea evidente qué combinación de estas acciones debe permitirse para ejecutar una consulta.

Antes de ejecutar una consulta, Neptune determina los permisos necesarios para ejecutar cada paso de la consulta y los combina en el conjunto completo de permisos que requiere la consulta. Tenga en cuenta que este conjunto completo de permisos incluye todas las acciones que *puede* realizar la consulta, que no es necesariamente el conjunto de acciones que la consulta realizará realmente cuando se ejecute en sus datos.

Esto significa que, para permitir que se ejecute una consulta determinada, debe proporcionar permisos para todas las acciones que la consulta pueda realizar, tanto si las acaba realizando como si no.

Estos son algunos ejemplos de consultas de Gremlin en las que esto se explica con más detalle:
+ 

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

  `g.V()` y `count()` solo requieren acceso de lectura, por lo que la consulta en su conjunto solo requiere acceso `ReadDataViaQuery`.
+ 

  ```
  g.addV()
  ```

  `addV()` necesita comprobar si existe o no un vértice con un identificador determinado antes de insertar uno nuevo. Esto significa que requiere tanto acceso `ReadDataViaQuery` como `WriteDataViaQuery`.
+ 

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

  `g.V('1').as('a')` y `out('created')` solo requieren acceso de lectura, pero `addE().from('a')` requiere acceso de lectura y escritura, ya que `addE()` necesita leer los vértices `from` y `to` y comprobar si ya existe un borde con el mismo identificador antes de añadir uno nuevo. Por lo tanto, la consulta en su conjunto necesita tanto el acceso `ReadDataViaQuery` como `WriteDataViaQuery`.
+ 

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

  `g.V()` solo requiere acceso de lectura. `drop()` necesita acceso de lectura y eliminación porque tiene que leer un vértice o borde antes de eliminarlo, por lo que la consulta en su conjunto requiere tanto acceso `ReadDataViaQuery` como `DeleteDataViaQuery`.
+ 

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

  `g.V('1')` solo requiere acceso de lectura, pero `property(single, 'key1', 'value1')` requiere acceso de lectura, escritura y eliminación. En este caso, en el paso `property()`, se inserta la clave y el valor si aún no existen en el vértice, pero si ya existen, se elimina el valor de la propiedad existente y se inserta un nuevo valor en su lugar. Por lo tanto, la consulta en su conjunto requiere acceso `ReadDataViaQuery`, `WriteDataViaQuery` y `DeleteDataViaQuery`.

  Cualquier consulta que contenga un paso `property()` necesitará permisos `ReadDataViaQuery`, `WriteDataViaQuery` y `DeleteDataViaQuery`.

Estos son algunos ejemplos de openCypher:
+ 

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

  Esta consulta lee todos los nodos de la base de datos y los devuelve, lo que solo requiere acceso `ReadDataViaQuery`.
+ 

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

  Esta consulta requiere acceso `ReadDataViaQuery`, `WriteDataViaQuery` y `DeleteDataViaQuery`. Lee todos los nodos con la etiqueta 'Person' y añade una nueva propiedad con la clave `dept` y el valor `AWS` o, si la propiedad `dept` ya existe, elimina el valor anterior e inserta `AWS` en su lugar. Además, si el valor que se va a establecer es `null`, `SET` elimina la propiedad por completo.

   Como en algunos casos es posible que la cláusula `SET` necesite eliminar un valor existente, **siempre** necesitará permisos `DeleteDataViaQuery` y permisos `ReadDataViaQuery` y `WriteDataViaQuery`.
+ 

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

  Esta consulta necesita permisos `ReadDataViaQuery` y `DeleteDataViaQuery`. Busca todos los nodos con la etiqueta `Person` y los elimina junto con los bordes conectados a esos nodos y las etiquetas y propiedades asociadas.
+ 

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

  Esta consulta necesita permisos `ReadDataViaQuery` y `WriteDataViaQuery`. La cláusula `MERGE` coincide con un patrón específico o lo crea. Dado que puede producirse una escritura si el patrón no coincide, se necesitan permisos de escritura además de permisos de lectura.

# Acciones de IAM para el acceso a los datos en Amazon Neptune
<a name="iam-dp-actions"></a>

Tenga en cuenta que las acciones de acceso a datos de Neptune tienen el prefijo `neptune-db:`, mientras que las acciones administrativas de Neptune tienen el prefijo `rds:`.

El nombre de recurso de Amazon (ARN) para un recurso de datos en IAM no es el mismo que el ARN asignado a un clúster en el momento de su creación. Debe crear el ARN como se muestra en [Specifying data resources](iam-data-resources.md). Este recurso de datos ARNs puede utilizar caracteres comodín para incluir varios recursos.

Las declaraciones de política de acceso a los datos también pueden incluir la clave de QueryLanguage condición [neptune-db:](iam-data-condition-keys.md#iam-neptune-condition-keys) para restringir el acceso mediante el lenguaje de consulta.

A partir de [Versión: 1.2.0.0 (21/07/2022)](engine-releases-1.2.0.0.md), Neptune permite restringir los permisos a una o más [acciones específicas de Neptune](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonneptune.html). Esto proporciona un control de acceso más detallado de lo que era posible anteriormente.

**importante**  
Los cambios realizados en una política de IAM pueden tardar hasta 10 minutos en aplicarse a los recursos de Neptune especificados.
Las políticas de IAM que se aplican a un clúster de base de datos de Neptune se aplican a todas las instancias incluidas en dicho clúster.

## *Acciones de acceso a los datos basadas en consultas*
<a name="iam-dp-actions-queries"></a>

**nota**  
No siempre es obvio qué permisos se necesitan para ejecutar una consulta determinada, ya que las consultas pueden realizar más de una acción en función de los datos que procesen. Para obtener más información, consulte [Uso de acciones de consulta](iam-data-access-policies.md#iam-data-query-actions).

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

`ReadDataViaQuery` permite al usuario leer datos de la base de datos de Neptune mediante el envío de consultas.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Claves de contexto de acción*: `neptune-db:QueryLanguage`.

*Recursos necesarios:* base de datos.

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

`WriteDataViaQuery` permite al usuario escribir datos en la base de datos de Neptune mediante el envío de consultas.

*Grupos de acciones*: lectura-escritura.

*Claves de contexto de acción*: `neptune-db:QueryLanguage`.

*Recursos necesarios:* base de datos.

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

`DeleteDataViaQuery` permite al usuario eliminar datos de la base de datos de Neptune mediante el envío de consultas.

*Grupos de acciones*: lectura-escritura.

*Claves de contexto de acción*: `neptune-db:QueryLanguage`.

*Recursos necesarios:* base de datos.

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

`GetQueryStatus` permite al usuario verificar el estado de todas las consultas activas.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Claves de contexto de acción*: `neptune-db:QueryLanguage`.

*Recursos necesarios:* base de datos.

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

`GetStreamRecords` permite al usuario obtener registros de flujo de Neptune.

*Grupos de acciones*: lectura-escritura.

*Claves de contexto de acción*: `neptune-db:QueryLanguage`.

*Recursos necesarios:* base de datos.

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

`CancelQuery` permite al usuario cancelar una consulta.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

## *Acciones generales de acceso a los datos*
<a name="iam-dp-actions-general"></a>

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

`GetEngineStatus` permite al usuario verificar el estado del motor de Neptune.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`GetStatisticsStatus` permite al usuario comprobar el estado de las estadísticas que se recopilan para la base de datos.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`GetGraphSummary` La API de resumen de gráficos le permite recuperar un resumen de solo lectura de su gráfico.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`ManageStatistics` permite al usuario administrar la recopilación de estadísticas de la base de datos.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`DeleteStatistics` permite al usuario eliminar todas las estadísticas de la base de datos.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`ResetDatabase` permite al usuario obtener el token necesario para el restablecimiento y restablecer la base de datos de Neptune.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

## *Acciones de acceso a datos del programa de carga masiva*
<a name="iam-dp-actions-loader"></a>

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

`StartLoaderJob` permite al usuario iniciar un trabajo del programa de carga masiva.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`GetLoaderJobStatus` permite al usuario verificar el estado de un trabajo del programa de carga masiva.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`ListLoaderJobs` permite al usuario enumerar todos los trabajos del programa de carga masiva.

*Grupos de acciones:* solo enumeración, solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`CancelLoaderJob` permite al usuario cancelar un trabajo del programa de carga.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

## *Acciones de acceso a los datos mediante machine learning*
<a name="iam-dp-actions-ml"></a>

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

`StartMLDataProcessingJob` permite al usuario iniciar un trabajo de procesamiento de datos de Neptune ML.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`StartMLModelTrainingJob` permite a un usuario comenzar un trabajo de entrenamiento de modelos de ML.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`StartMLModelTransformJob` permite que un usuario comience un trabajo de transformación de modelos de ML.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`CreateMLEndpoint` permite al usuario crear un punto de conexión de Neptune ML.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`GetMLDataProcessingJobStatus` permite a un usuario comprobar el estado de un trabajo de procesamiento de datos de Neptune ML.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`GetMLModelTrainingJobStatus` permite a un usuario comprobar el estado de un trabajo de entrenamiento de modelos de Neptune ML.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`GetMLModelTransformJobStatus` permite a un usuario comprobar el estado de un trabajo de transformación de modelos de Neptune ML.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`GetMLEndpointStatus` permite a un usuario comprobar el estado de un punto de conexión de Neptune ML.

*Grupos de acciones:* solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`ListMLDataProcessingJobs` permite a un usuario enumerar todos los trabajos de procesamiento de datos de Neptune ML.

*Grupos de acciones:* solo enumeración, solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`ListMLModelTrainingJobs` permite a un usuario enumerar todos los trabajos de entrenamiento de modelos de Neptune ML.

*Grupos de acciones:* solo enumeración, solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`ListMLModelTransformJobs` permite a un usuario generar una lista de todos los trabajos de transformación de modelos de ML.

*Grupos de acciones:* solo enumeración, solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`ListMLEndpoints` permite a un usuario enumerar todos los puntos de conexión de Neptune ML.

*Grupos de acciones:* solo enumeración, solo lectura, lectura-escritura.

*Recursos necesarios:* base de datos.

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

`CancelMLDataProcessingJob` permite a un usuario cancelar un trabajo de procesamiento de datos de Neptune ML.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`CancelMLModelTrainingJob` permite a un usuario cancelar un trabajo de entrenamiento de modelos de Neptune ML.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`CancelMLModelTransformJob` permite a un usuario cancelar un trabajo de transformación de modelos de Neptune ML.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

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

`DeleteMLEndpoint` permite al usuario eliminar un punto de conexión de Neptune ML.

*Grupos de acciones*: lectura-escritura.

*Recursos necesarios:* base de datos.

# Tipos de recursos de IAM para acceder a los datos en Amazon Neptune
<a name="iam-data-resources"></a>

Los recursos de datos, como las acciones de datos, tienen un prefijo `neptune-db:`.

En una política de acceso a datos de Neptune, se especifica el clúster de base de datos al que se va a dar acceso en un ARN con el siguiente formato:

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

Dicho ARN de recurso contiene las siguientes partes:
+ `region`es la AWS región del clúster de base de datos Amazon Neptune.
+ `account-id` es el número de cuenta de AWS para el clúster de base de datos.
+ `cluster-resource-id` es un ID de recurso del clúster de base de datos.
**importante**  
El `cluster-resource-id` es diferente al identificador del clúster. Para encontrar un ID de recurso de clúster en Neptune Consola de administración de AWS, busque el clúster de base de datos en cuestión en la sección **Configuración**.

# Claves de condición de IAM para acceder a los datos en Amazon Neptune
<a name="iam-data-condition-keys"></a>

[Con las claves de condición](security-iam-access-manage.md#iam-using-condition-keys), puede especificar condiciones en una declaración de política de IAM para que la declaración se aplique solo cuando se aplican las condiciones.

Las claves de condición que puede usar en las declaraciones de políticas de acceso a los datos de Neptune se clasifican en las siguientes categorías:
+ [Claves de [condición globales: el subconjunto de claves](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) de condición AWS globales que Neptune admite en las declaraciones de política de acceso a los datos se detalla a continuación.](#iam-data-global-condition-keys)
+ [Claves de condición específicas del servicio](#iam-neptune-condition-keys): son claves definidas por Neptune específicamente para su uso en las declaraciones de políticas de acceso a los datos. En la actualidad, solo hay una, [neptune-db: QueryLanguage](#neptune-db-query-language), que solo permite el acceso si se utiliza un lenguaje de consulta específico.

## AWS claves de contexto de condiciones globales respaldadas por Neptune en las declaraciones de política de acceso a datos
<a name="iam-data-global-condition-keys"></a>

En la siguiente tabla se muestra el subconjunto de [claves de contexto de condición global de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) que Amazon Neptune admite para su uso en las declaraciones de políticas de acceso a los datos:


**Claves de condición globales que puede utilizar en las declaraciones de políticas de acceso a los datos**  

| Claves de condición | Descripción | 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 el acceso por la fecha y hora actual de la solicitud. | 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 el acceso por fecha y hora de la solicitud expresadas como un valor de época de UNIX. | 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 el acceso por la cuenta a la que pertenece la entidad principal solicitante. | 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 el acceso por el ARN de la entidad principal que realizó la solicitud. | 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) | Permite el acceso solo si la llamada la realiza directamente un director de AWS servicio. | 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 el acceso por el identificador de la organización en AWS Organizations a la que pertenece el principal solicitante. | 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 el acceso por la AWS ruta Organizations para el director que realiza la solicitud. | 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 el acceso por una etiqueta asociada a la entidad principal que realiza la solicitud. | 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 el acceso por el tipo de la entidad principal que realiza la solicitud. | 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 el acceso por la AWS región a la que se llamó en la solicitud. | 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) | Permite el acceso solo si la solicitud se envió mediante 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 el acceso por la dirección IP del solicitante | 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 el acceso por la fecha y hora en que se emitieron las credenciales de seguridad temporales. | 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 el acceso por aplicación cliente del solicitante. | 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 el acceso mediante el identificador de la entidad principal del solicitante. | 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) | Permite el acceso solo si un AWS servicio ha realizado la solicitud en tu nombre. | Boolean | 

## Claves de condición específicas del servicio de Neptune
<a name="iam-neptune-condition-keys"></a>

Neptune admite la siguiente clave de condición específica del servicio para las políticas de IAM:


**Claves de condición específicas del servicio de Neptune**  

| Claves de condición | Descripción | Tipo | 
| --- | --- | --- | 
| neptune-db:QueryLanguage |  Filtra el acceso a los datos según el lenguaje de consulta que se utilice. Los valores válidos son `Gremlin`, `OpenCypher` y `Sparql`. Las acciones admitidas son `ReadDataViaQuery`, `WriteDataViaQuery`, `DeleteDataViaQuery`, `GetQueryStatus` y `CancelQuery`.  | String | 

# Creación de políticas de acceso a datos de IAM en Amazon Neptune
<a name="iam-data-access-examples"></a>

[Los siguientes ejemplos muestran cómo crear políticas de IAM personalizadas que utilizan un control de acceso detallado del plano de datos APIs y las acciones, introducido en la versión 1.2.0.0 del motor Neptune.](engine-releases-1.2.0.0.md) 

## Ejemplo de política que permite el acceso sin restricciones a los datos de un clúster de base de datos de Neptune
<a name="iam-auth-data-policy-example-general"></a>

En la siguiente política de ejemplo, se permite a un usuario de IAM conectarse a un clúster de base de datos de Neptune utilizando la autenticación de base de datos de IAM, y se utiliza el carácter "`*`" para hacer corresponder todas las acciones disponibles.

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

****  

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

------

La sección de recursos anterior incluye un ARN de recurso en un formato específico de la autenticación de IAM de Neptune. Para crear el ARN, consulte [Specifying data resources](iam-data-resources.md). Tenga en cuenta que el ARN que se utiliza para una autorización de IAM `Resource` no es el mismo que el ARN asignado al clúster en el momento de su creación.

## Ejemplo de política que permite acceso de solo lectura a un clúster de base de datos de Neptune
<a name="iam-auth-data-policy-example-read-only"></a>

La siguiente política concede permiso para el acceso completo de solo lectura a los datos de un clúster de base de datos de 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/*"
    }
  ]
}
```

------

## Ejemplo de política que deniega todo acceso a un clúster de base de datos de Neptune
<a name="iam-auth-data-policy-example-deny"></a>

La acción predeterminada de IAM es denegar el acceso a un clúster de base de datos, a menos que se conceda un *efecto* de `Allow`. Sin embargo, la siguiente política deniega todo acceso a un clúster de base de datos para una AWS cuenta y una región determinadas, lo que, en ese caso, prevalece sobre cualquier efecto. `Allow`

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

****  

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

------

## Ejemplo de política que concede acceso de lectura a través de consultas
<a name="iam-auth-data-policy-example-read-query"></a>

La siguiente política solo concede permiso para leer desde un clúster de base de datos de Neptune utilizando una consulta: 

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

****  

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

------

## Ejemplo de política que solo permite consultas de Gremlin
<a name="iam-auth-data-policy-example-gremlin-only"></a>

La siguiente política usa la clave de condición `neptune-db:QueryLanguage` para conceder permiso para consultar Neptune únicamente con el lenguaje de consulta 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"
        }
      }
    }
  ]
}
```

------

## Ejemplo de política que permite todos los accesos excepto a la administración de modelos de Neptune ML
<a name="iam-auth-data-policy-example-all-but-ml"></a>

La siguiente política concede acceso completo a las operaciones de gráficos de Neptune, excepto a las características de administración de modelos de 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/*"
    }
  ]
}
```

------

## Ejemplo de política que permite el acceso a la administración de modelos de Neptune ML
<a name="iam-auth-data-policy-example-ml"></a>

Esta política concede acceso a las características de administración de modelos de 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/*"
    }
  ]
}
```

------

## Ejemplo de política que otorga acceso completo a las consultas
<a name="iam-auth-data-policy-example-full-query"></a>

La siguiente política concede acceso completo a las operaciones de consulta de gráficos de Neptune, pero no a características como el restablecimiento rápido, los flujos, el programa de carga masiva, la administración de modelos de Neptune ML, etc.:

------
#### [ 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/*"
    }
  ]
}
```

------

## Ejemplo de política que concede acceso completo únicamente a las consultas de Gremlin
<a name="iam-auth-data-policy-example-full-gremlin-access"></a>

La siguiente política concede acceso completo a las operaciones de consulta de gráficos de Neptune utilizando el lenguaje de consulta Gremlin, pero no a las consultas en otros lenguajes, ni a características como el restablecimiento rápido, los flujos, el programa de carga masiva, la administración de modelos de Neptune ML, etc.:

------
#### [ 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"
        }
      }
    }
  ]
}
```

------

## Ejemplo de política que permite el acceso total excepto el restablecimiento rápido
<a name="iam-auth-data-policy-example-all-but-fast-reset"></a>

La siguiente política concede acceso completo a un clúster de base de datos de Neptune, excepto para el restablecimiento rápido:

------
#### [ 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/*"
    }
  ]
}
```

------