

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criar declarações personalizadas de políticas do IAM para acessar dados no Amazon Neptune
<a name="iam-data-access-policies"></a>

As declarações de política de acesso a dados do Neptune usam [ações de acesso a dados](iam-dp-actions.md), [recursos](iam-data-resources.md) e [chaves de condição](iam-data-condition-keys.md#iam-neptune-condition-keys), todos precedidos por um prefixo `neptune-db:`.

**Topics**
+ [Usar ações de consulta nas declarações de política de acesso a dados do Neptune](#iam-data-query-actions)
+ [Ações do IAM para acesso a dados no Amazon Neptune](iam-dp-actions.md)
+ [Tipos de recursos do IAM para acessar dados no Amazon Neptune](iam-data-resources.md)
+ [Chaves de condição do IAM para acessar dados no Amazon Neptune](iam-data-condition-keys.md)
+ [Criar políticas de acesso a dados do IAM no Amazon Neptune](iam-data-access-examples.md)

## Usar ações de consulta nas declarações de política de acesso a dados do Neptune
<a name="iam-data-query-actions"></a>

Há três ações de consulta do Neptune que podem ser usadas em declarações de política de acesso a dados, a saber, `ReadDataViaQuery`, `WriteDataViaQuery` e `DeleteDataViaQuery`. Uma consulta específica pode precisar de permissões para realizar mais de uma dessas ações e nem sempre é óbvio qual combinação dessas ações deve ser permitida para executar uma consulta.

Antes de executar uma consulta, o Neptune determina as permissões necessárias para executar cada etapa da consulta e as combina no conjunto completo de permissões que a consulta exige. Observe que esse conjunto completo de permissões inclui todas as ações que a consulta *pode* realizar, o que não é necessariamente o conjunto de ações que a consulta realmente executará quando for realizada em seus dados.

Isso significa que, para permitir que uma consulta específica seja executada, é necessário conceder permissões para cada ação que a consulta possa realizar, independentemente de ela realmente as executar ou não.

Veja alguns exemplos de consulta do Gremlin em que isso é explicado com mais detalhes:
+ 

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

  `g.V()` e `count()` exigem apenas acesso de leitura, portanto, a consulta como um todo exige apenas acesso `ReadDataViaQuery`.
+ 

  ```
  g.addV()
  ```

  `addV()` precisa conferir se um vértice com um ID específico existe ou não antes de inserir um novo. Isso significa que ele exige acesso `ReadDataViaQuery` e `WriteDataViaQuery`.
+ 

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

  `g.V('1').as('a')` e `out('created')` exigem apenas acesso de leitura, mas `addE().from('a')` requer acesso de leitura e gravação porque `addE()` precisa ler os vértices `from` e `to` e conferir se uma borda com o mesmo ID já existe antes de adicionar uma nova. A consulta como um todo, portanto, precisa de acesso `ReadDataViaQuery` e `WriteDataViaQuery`.
+ 

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

  `g.V()` exige apenas acesso de leitura. `drop()` requer acesso de leitura e exclusão porque precisa ler um vértice ou uma borda antes de excluí-lo, portanto, a consulta como um todo exige acesso `ReadDataViaQuery` e `DeleteDataViaQuery`.
+ 

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

  `g.V('1')` requer apenas acesso de leitura, mas `property(single, 'key1', 'value1')` exige acesso de leitura, gravação e exclusão. Aqui, a etapa `property()` vai inserir a chave e o valor se eles ainda não existirem no vértice, mas se já existirem, ela vai excluir o valor da propriedade existente e inserir um novo valor em seu lugar. Portanto, a consulta como um todo exige acesso `ReadDataViaQuery`, `WriteDataViaQuery` e `DeleteDataViaQuery`.

  Qualquer consulta que contenha uma etapa `property()` precisará de permissões `ReadDataViaQuery`, `WriteDataViaQuery` e `DeleteDataViaQuery`.

Veja a seguir alguns exemplos do openCypher:
+ 

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

  Essa consulta lê todos os nós no banco de dados e os gera, o que exige apenas acesso `ReadDataViaQuery`.
+ 

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

  Essa consulta exige acesso `ReadDataViaQuery`, `WriteDataViaQuery` e `DeleteDataViaQuery`. Ela lê todos os nós com o rótulo “Pessoa” e adiciona uma nova propriedade com a chave `dept` e o valor `AWS` a eles ou, se a propriedade `dept` já existir, vai excluir o valor antigo e inserir `AWS` em seu lugar. Além disso, se o valor a ser definido for `null`, `SET` excluirá completamente a propriedade.

   Como, em alguns casos, a cláusula `SET` talvez precise excluir um valor existente, ela **sempre** precisará de permissões `DeleteDataViaQuery`, além de permissões `ReadDataViaQuery` e `WriteDataViaQuery`.
+ 

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

  Essa consulta precisa das permissões `ReadDataViaQuery` e `DeleteDataViaQuery`. Ela encontra todos os nós com o rótulo `Person` e os exclui junto com as bordas conectadas a esses nós e todas as propriedades e os rótulos associados.
+ 

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

  Essa consulta precisa das permissões `ReadDataViaQuery` e `WriteDataViaQuery`. A cláusula `MERGE` corresponde a um padrão especificado ou o cria. Como uma gravação poderá ocorrer se não houver correspondência ao padrão, são necessárias permissões de gravação e leitura.

# Ações do IAM para acesso a dados no Amazon Neptune
<a name="iam-dp-actions"></a>

Observe que as ações de acesso a dados do Neptune têm o prefixo `neptune-db:`, enquanto as ações administrativas no Neptune têm o prefixo `rds:`.

O nome do recurso da Amazon (ARN) de um recursos de dados no IAM não é o mesmo ARN atribuído ao cluster na criação. Você deve criar o ARN, conforme mostrado em [Specifying data resources](iam-data-resources.md). Esse recurso de dados ARNs pode usar curingas para incluir vários recursos.

As declarações de política de acesso a dados também podem incluir a chave de QueryLanguage condição [neptune-db:](iam-data-condition-keys.md#iam-neptune-condition-keys) para restringir o acesso por linguagem de consulta.

A partir da [Versão: 1.2.0.0 (21/07/2022)](engine-releases-1.2.0.0.md), o Neptune é compatível com a restrição de permissões a uma ou mais [ações específicas do Neptune](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonneptune.html). Isso oferece um controle de acesso mais detalhado do que era possível anteriormente.

**Importante**  
As alterações em uma política do IAM demoram até dez minutos para ser aplicadas aos recursos do Neptune especificados.
As políticas do IAM aplicadas a um cluster de banco de dados do Neptune são aplicadas a todas as instâncias desse cluster.

## *Ações de acesso a dados baseadas em consulta*
<a name="iam-dp-actions-queries"></a>

**nota**  
Nem sempre é óbvio quais permissões são necessárias para executar uma consulta específica, porque as consultas podem realizar mais de uma ação, dependendo dos dados processados. Consulte [Usar ações de consulta](iam-data-access-policies.md#iam-data-query-actions) para obter mais informações.

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

`ReadDataViaQuery` possibilita ao usuário ler dados do banco de dados Neptune enviando consultas.

*Grupos de ações:* somente leitura, leitura e gravação.

*Chaves de contexto de ação:* `neptune-db:QueryLanguage`.

*Recursos necessários:* banco de dados.

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

`WriteDataViaQuery` possibilita ao usuário gravar dados no banco de dados Neptune enviando consultas.

*Grupos de ações:* leitura e gravação.

*Chaves de contexto de ação:* `neptune-db:QueryLanguage`.

*Recursos necessários:* banco de dados.

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

`DeleteDataViaQuery` possibilita ao usuário excluir dados do banco de dados Neptune enviando consultas.

*Grupos de ações:* leitura e gravação.

*Chaves de contexto de ação:* `neptune-db:QueryLanguage`.

*Recursos necessários:* banco de dados.

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

`GetQueryStatus` possibilita ao usuário conferir o status de todas as consultas ativas.

*Grupos de ações:* somente leitura, leitura e gravação.

*Chaves de contexto de ação:* `neptune-db:QueryLanguage`.

*Recursos necessários:* banco de dados.

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

`GetStreamRecords` possibilita ao usuário buscar registros de fluxo do Neptune.

*Grupos de ações:* leitura e gravação.

*Chaves de contexto de ação:* `neptune-db:QueryLanguage`.

*Recursos necessários:* banco de dados.

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

`CancelQuery` possibilita ao usuário cancelar uma consulta.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

## *Ações gerais de acesso a dados*
<a name="iam-dp-actions-general"></a>

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

`GetEngineStatus` possibilita ao usuário conferir o status do mecanismo do Neptune.

*Grupos de ações:* somente leitura, leitura e gravação.

*Recursos necessários:* banco de dados.

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

`GetStatisticsStatus` possibilita ao usuário conferir o status das estatísticas que estão sendo coletadas para o banco de dados.

*Grupos de ações:* somente leitura, leitura e gravação.

*Recursos necessários:* banco de dados.

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

`GetGraphSummary` A API de resumo do grafo possibilita a você recuperar um resumo somente leitura do grafo.

*Grupos de ações:* somente leitura, leitura e gravação.

*Recursos necessários:* banco de dados.

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

`ManageStatistics` possibilita ao usuário gerenciar a coleta de estatísticas para o banco de dados.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`DeleteStatistics` permite ao usuário excluir todas as estatísticas no banco de dados.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`ResetDatabase` possibilita ao usuário obter o token necessário para uma redefinição e redefinir o banco de dados Neptune.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

## *Ações de acesso a dados do carregador em massa*
<a name="iam-dp-actions-loader"></a>

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

`StartLoaderJob` possibilita ao usuário iniciar um trabalho de carregador em massa.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`GetLoaderJobStatus` possibilita ao usuário conferir o status de um trabalho de carregador em massa.

*Grupos de ações:* somente leitura, leitura e gravação.

*Recursos necessários:* banco de dados.

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

`ListLoaderJobs` possibilita ao usuário listar todos os trabalhos de carregador em massa.

*Grupos de ações:* somente lista, somente leitura e gravação e leitura.

*Recursos necessários:* banco de dados.

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

`CancelLoaderJob` possibilita ao usuário cancelar um trabalho de carregador.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

## *Ações de acesso a dados de machine learning*
<a name="iam-dp-actions-ml"></a>

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

`StartMLDataProcessingJob` possibilita a um usuário iniciar um trabalho de processamento de dados do Neptune ML.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`StartMLModelTrainingJob` possibilita a um usuário iniciar um trabalho de treinamento de modelo de ML.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`StartMLModelTransformJob` possibilita a um usuário iniciar um trabalho de transformação de modelo de ML.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`CreateMLEndpoint` possibilita a um usuário criar um endpoint do Neptune ML.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`GetMLDataProcessingJobStatus` possibilita a um usuário conferir o status de um trabalho de processamento de dados do Neptune ML.

*Grupos de ações:* somente leitura, leitura e gravação.

*Recursos necessários:* banco de dados.

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

`GetMLModelTrainingJobStatus` possibilita a um usuário conferir o status de um trabalho de treinamento de modelos do Neptune ML.

*Grupos de ações:* somente leitura, leitura e gravação.

*Recursos necessários:* banco de dados.

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

`GetMLModelTransformJobStatus` possibilita a um usuário conferir o status de um trabalho de transformação de modelos do Neptune ML.

*Grupos de ações:* somente leitura, leitura e gravação.

*Recursos necessários:* banco de dados.

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

`GetMLEndpointStatus` possibilita a um usuário conferir o status de um endpoint do Neptune ML.

*Grupos de ações:* somente leitura, leitura e gravação.

*Recursos necessários:* banco de dados.

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

`ListMLDataProcessingJobs` possibilita a um usuário listar trabalhos de processamento de dados do Neptune ML.

*Grupos de ações:* somente lista, somente leitura e gravação e leitura.

*Recursos necessários:* banco de dados.

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

`ListMLModelTrainingJobs` possibilita a um usuário listar todos os trabalhos de treinamento de modelos do Neptune ML.

*Grupos de ações:* somente lista, somente leitura e gravação e leitura.

*Recursos necessários:* banco de dados.

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

`ListMLModelTransformJobs` possibilita a um usuário listar todos os trabalhos de transformação de modelos de ML.

*Grupos de ações:* somente lista, somente leitura e gravação e leitura.

*Recursos necessários:* banco de dados.

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

`ListMLEndpoints` possibilita a um usuário listar todos os endpoints do Neptune ML.

*Grupos de ações:* somente lista, somente leitura e gravação e leitura.

*Recursos necessários:* banco de dados.

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

`CancelMLDataProcessingJob` possibilita a um usuário cancelar um trabalho de processamento de dados do Neptune ML.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`CancelMLModelTrainingJob` possibilita a um usuário cancelar um trabalho de treinamento de modelos do Neptune ML.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`CancelMLModelTransformJob` possibilita a um usuário cancelar um trabalho de transformação de modelos do Neptune ML.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

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

`DeleteMLEndpoint` possibilita a um usuário excluir um endpoint do Neptune ML.

*Grupos de ações:* leitura e gravação.

*Recursos necessários:* banco de dados.

# Tipos de recursos do IAM para acessar dados no Amazon Neptune
<a name="iam-data-resources"></a>

Recursos de dados, como ações de dados, têm um prefixo `neptune-db:`.

Em uma política de acesso a dados do Neptune, você especifica o cluster de banco de dados ao qual está concedendo acesso a um ARN com o seguinte formato:

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

Esse ARN de recurso contém as seguintes partes:
+ `region`é a AWS região do cluster de banco de dados Amazon Neptune.
+ `account-id` é o número da conta da AWS do cluster de banco de dados.
+ `cluster-resource-id` é um ID de recurso do cluster de banco de dados.
**Importante**  
O `cluster-resource-id` é diferente do identificador do cluster. Para encontrar um ID de recurso de cluster no Console de gerenciamento da AWS Neptune, procure na seção Configuração **o** cluster de banco de dados em questão.

# Chaves de condição do IAM para acessar dados no Amazon Neptune
<a name="iam-data-condition-keys"></a>

[Usando chaves de condição](security-iam-access-manage.md#iam-using-condition-keys), é possível especificar as condições em uma declaração de política do IAM para que a declaração só entre em vigor quando as condições forem verdadeiras.

As chaves de condição que você pode usar em declarações de política de acesso a dados do Neptune se enquadram nas seguintes categorias:
+ [Chaves de [condição globais — O subconjunto de chaves](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) de condição AWS globais que o Neptune suporta nas declarações de política de acesso a dados está listado abaixo.](#iam-data-global-condition-keys)
+ [Chaves de condição específicas do serviço](#iam-neptune-condition-keys): são chaves definidas pelo Neptune especificamente para uso em declarações de política de acesso a dados. No momento, há apenas um, [neptune-db: QueryLanguage](#neptune-db-query-language), que concede acesso somente se uma linguagem de consulta específica estiver sendo usada.

## AWS chaves de contexto de condição global suportadas pelo Neptune em declarações de política de acesso a dados
<a name="iam-data-global-condition-keys"></a>

A seguinte tabela lista o subconjunto de [chaves de contexto de condição globais da AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) aceitas pelo Amazon Neptune para uso em declarações de política de acesso a dados:


**Chaves de condição globais que você pode usar em declarações de política de acesso a dados**  

| Chaves de condição | Descrição | 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 o acesso pela data e hora atuais da solicitação. | 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 o acesso pela data e hora da solicitação expressa como um valor de época do 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 o acesso pela conta à qual a entidade principal solicitante pertence. | 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 o acesso pelo ARN da entidade principal que faz a solicitação. | 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 acesso somente se a chamada estiver sendo feita diretamente por um responsável pelo AWS serviço. | 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 o acesso pelo identificador da organização em AWS Organizations à qual o principal solicitante pertence. | 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 o acesso pelo caminho AWS Organizations para o diretor que está fazendo a solicitação. | 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 o acesso por uma tag associada à entidade principal que faz a solicitação. | 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 o acesso pelo tipo de entidade principal que faz a solicitação. | 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 o acesso pela AWS região que foi chamada na solicitação. | 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) | Viabilizará o acesso somente se a solicitação tiver sido enviada usando 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 o acesso pelo endereço IP do 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 o acesso pela data e a hora em que as credenciais de segurança temporárias foram emitidas. | 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 o acesso pelo aplicativo cliente do 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 o acesso pelo identificador da entidade principal do 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 acesso somente se um AWS serviço tiver feito a solicitação em seu nome. | Boolean | 

## Chaves de condição específicas do serviço do Neptune
<a name="iam-neptune-condition-keys"></a>

O Neptune é compatível com a seguinte chave de condição específica do serviço para políticas do IAM:


**Chaves de condição específicas do serviço do Neptune**  

| Chaves de condição | Descrição | Tipo | 
| --- | --- | --- | 
| neptune-db:QueryLanguage |  Filtra o acesso aos dados pela linguagem de consulta que está sendo usada. Os valores válidos são: `Gremlin`, `OpenCypher` e `Sparql`. As ações compatíveis são `ReadDataViaQuery`, `WriteDataViaQuery`, `DeleteDataViaQuery`, `GetQueryStatus` e `CancelQuery`.  | String | 

# Criar políticas de acesso a dados do IAM no Amazon Neptune
<a name="iam-data-access-examples"></a>

[Os exemplos a seguir mostram como criar políticas personalizadas do IAM que usam controle de acesso refinado do plano de dados APIs e das ações, introduzidas na versão 1.2.0.0 do Neptune Engine.](engine-releases-1.2.0.0.md) 

## Exemplo de política que viabiliza acesso irrestrito aos dados em um cluster de banco de dados do Neptune
<a name="iam-auth-data-policy-example-general"></a>

O exemplo de política a seguir permite que um usuário do IAM se conecte a um cluster de banco de dados do Neptune usando a autenticação de banco de dados do IAM e usa o caractere “`*`“ para corresponder a todas as ações disponíveis.

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

****  

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

------

O exemplo anterior inclui um ARN de recurso em um formato específico da autenticação do IAM no Neptune. Para criar o ARN, consulte [Specifying data resources](iam-data-resources.md). Observe que o ARN usando para um `Resource` de autorização do IAM não é o mesmo ARN atribuído ao cluster na criação.

## Exemplo de política que viabiliza acesso somente leitura a um cluster de banco de dados do Neptune
<a name="iam-auth-data-policy-example-read-only"></a>

A política a seguir concede permissão para acesso total somente leitura aos dados em um cluster de banco de dados do 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/*"
    }
  ]
}
```

------

## Exemplo de política que nega acesso todo o acesso a um cluster de banco de dados do Neptune
<a name="iam-auth-data-policy-example-deny"></a>

A ação padrão do IAM é negar o acesso a um cluster de banco de dados a menos que um *Effect* `Allow` seja concedido. No entanto, a política a seguir nega todo o acesso a um cluster de banco de dados para uma determinada AWS conta e região, que então tem precedência sobre qualquer `Allow` efeito.

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

****  

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

------

## Exemplo de política que concede acesso de leitura por meio de consultas
<a name="iam-auth-data-policy-example-read-query"></a>

A seguinte política apenas concede permissão para leitura de um cluster de banco de dados do Neptune usando uma consulta: 

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

****  

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

------

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

A seguinte política usa a chave de condição `neptune-db:QueryLanguage` para conceder permissão para consultar o Neptune somente usando a linguagem 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"
        }
      }
    }
  ]
}
```

------

## Exemplo de política que permite todo o acesso, exceto ao gerenciamento de modelos do Neptune ML
<a name="iam-auth-data-policy-example-all-but-ml"></a>

A seguinte política concede acesso total às operações de grafo do Neptune, exceto os atributos de gerenciamento de modelos do 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/*"
    }
  ]
}
```

------

## Exemplo de política que permite acesso ao gerenciamento de modelos do Neptune ML
<a name="iam-auth-data-policy-example-ml"></a>

Essa política concede acesso aos atributos de gerenciamento de modelos do 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/*"
    }
  ]
}
```

------

## Exemplo de política que concede acesso total por consulta
<a name="iam-auth-data-policy-example-full-query"></a>

A seguinte política concede acesso total às operações de consulta de grafo do Neptune, mas não a atributos, como redefinição rápida, fluxos, carregador em massa, gerenciamento de modelos do 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/*"
    }
  ]
}
```

------

## Exemplo de política que concede acesso total somente para consultas do Gremlin
<a name="iam-auth-data-policy-example-full-gremlin-access"></a>

A seguinte política concede acesso total às operações de consulta de grafo do Neptune usando a linguagem de consulta Gremlin, mas não a consultas em outras linguagens e não a atributos, como redefinição rápida, fluxos, carregador em massa, gerenciamento de modelos do 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"
        }
      }
    }
  ]
}
```

------

## Exemplo de política que concede acesso total, exceto para redefinição rápida
<a name="iam-auth-data-policy-example-all-but-fast-reset"></a>

A seguinte política concede acesso total a um cluster de banco de dados do Neptune, exceto para uso de redefinição rápida:

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

------