

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Neptune のデータにアクセスするためのカスタム IAM ポリシーステートメントの作成
<a name="iam-data-access-policies"></a>

Neptune データアクセスポリシーステートメントは、[データアクセスアクション](iam-dp-actions.md)、[リソース](iam-data-resources.md)、および[条件キー](iam-data-condition-keys.md#iam-neptune-condition-keys)を使用し、これらはすべて `neptune-db:` プレフィックスが付きます。

**Topics**
+ [Neptune データアクセスポリシーステートメントでのクエリアクションの使用](#iam-data-query-actions)
+ [Amazon Neptune でのデータアクセスのための IAM アクション](iam-dp-actions.md)
+ [Amazon Neptune のデータにアクセスするための IAM リソースタイプ](iam-data-resources.md)
+ [Amazon Neptune のデータにアクセスするための IAM 条件キー](iam-data-condition-keys.md)
+ [Amazon Neptune での IAM データアクセスポリシーの作成](iam-data-access-examples.md)

## Neptune データアクセスポリシーステートメントでのクエリアクションの使用
<a name="iam-data-query-actions"></a>

データアクセスポリシーステートメントで使用できる Neptune クエリアクションには、`ReadDataViaQuery`、`WriteDataViaQuery`、`DeleteDataViaQuery` の 3 つがあります。特定のクエリには、これらのアクションを複数実行するためのアクセス許可が必要な場合があり、クエリを実行するためにこれらのアクションのどの組み合わせを許可する必要があるかが常に明確であるとは限りません。

クエリを実行する前に、Neptune はクエリの各ステップを実行するのに必要なアクセス許可を決定し、それらを組み合わせてクエリに必要なアクセス許可のフルセットにします。このフルセットのアクセス許可には、クエリが実行する*可能性のある*すべてのアクションが含まれますが、必ずしもクエリがデータに対して実際に実行するアクションのセットではないことに注意してください。

つまり、特定のクエリの実行を許可するには、そのクエリが実際に実行するかどうかにかかわらず、そのクエリが実行する可能性のあるすべてのアクションにアクセス許可を与える必要があります。

以下に、Gremlin クエリの例をいくつか示します。これについてさらに詳しく説明しています。
+ 

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

  `g.V()` および `count()` は読み取りアクセスだけを必要とするため、クエリ全体として必要なのは `ReadDataViaQuery` アクセスのみです。
+ 

  ```
  g.addV()
  ```

  `addV()` は、新しい ID の頂点を挿入する前に、特定の ID の頂点が存在するかどうかを確認する必要があります。つまり、`ReadDataViaQuery` と `WriteDataViaQuery` の両方のアクセスが必要です。
+ 

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

  `g.V('1').as('a')` と `out('created')` は読み取りアクセスのみを必要としますが、`addE().from('a')` は読み取りと書き込みの両方のアクセスを必要とします。`addE()` は `from` を読み取る必要があり、`to` は新しい ID のエッジを追加する前に、同じ ID のエッジが既に存在するかどうかを確認する必要があるためです。そのため、クエリ全体としては、`ReadDataViaQuery` と `WriteDataViaQuery` の両方のアクセスが必要です。
+ 

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

  `g.V()` は読み取りアクセスのみを必要とします。`drop()` は頂点またはエッジを削除する前にそれらを読み取る必要があるため、読み取りアクセスと削除アクセスの両方が必要です。そのため、クエリ全体としては `ReadDataViaQuery` と `DeleteDataViaQuery` の両方のアクセスが必要です。
+ 

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

  `g.V('1')` は読み取りアクセスのみを必要としますが、`property(single, 'key1', 'value1')` は読み取り、書き込み、および削除アクセスを必要とします。ここでは、`property()` ステップは、頂点にまだ存在しない場合はキーと値を挿入しますが、既に存在する場合は、既存のプロパティ値を削除し、代わりに新しい値を挿入します。したがって、クエリ全体としては、`ReadDataViaQuery`、`WriteDataViaQuery`、および `DeleteDataViaQuery` アクセスが必要です。

  `property()` ステップを含むクエリには、`ReadDataViaQuery`、`WriteDataViaQuery`、および `DeleteDataViaQuery` アクセス許可が必要です。

openCypher の例をいくつか示します。
+ 

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

  このクエリはデータベース内のすべてのノードを読み込んで返します。必要なのは `ReadDataViaQuery` アクセスだけです。
+ 

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

  このクエリには、`ReadDataViaQuery`、`WriteDataViaQuery`、および `DeleteDataViaQuery` アクセスが必要です。「Person」というラベルの付いたすべてのノードを読み取り、キー `dept` と値 `AWS` を持つ新しいプロパティを追加するか、`dept` プロパティが既に存在する場合は、古い値を削除して、代わりに `AWS` を挿入します。また、設定する値が `null` の場合、`SET` はプロパティをすべて削除します。

   `SET` 句は既存の値を削除しなければならない場合があるため、**常に** `DeleteDataViaQuery` アクセス許可だけでなく `ReadDataViaQuery` および `WriteDataViaQuery` アクセス許可も必要です。
+ 

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

  このクエリには `ReadDataViaQuery` および `DeleteDataViaQuery` アクセス許可が必要です。ラベル `Person` の付いたノードをすべｒて検索し、それらのノードに接続されているエッジや関連するラベルやプロパティとともに削除します。
+ 

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

  このクエリには `ReadDataViaQuery` および `WriteDataViaQuery` アクセス許可が必要です。`MERGE` 句は、指定されたパターンと一致するか、それを作成します。パターンが一致しないと書き込みが発生する可能性があるため、読み取りアクセス許可だけでなく書き込みアクセス許可も必要です。

# Amazon Neptune でのデータアクセスのための IAM アクション
<a name="iam-dp-actions"></a>

Neptune データアクセスアクションにはプレフィックス `neptune-db:` が付いていますが、Neptune の管理アクションにはプレフィックス `rds:` が付いていることに注意してください。

IAM でのデータの Amazon リソースネーム (ARN) は、作成時にクラスターに割り当てられた ARN とは異なります。「[データリソースの指定](iam-data-resources.md)」に示されているように ARN を構築する必要があります。このようなデータリソース ARN では、ワイルドカードを使用して複数のリソースを含めることができます。

データアクセスポリシーステートメントには、クエリ言語によってアクセスを制限するための [neptune-db:QueryLanguage](iam-data-condition-keys.md#iam-neptune-condition-keys) 条件キーを含めることもできます。

[リリース: 1.2.0.0 (2022-07-21)](engine-releases-1.2.0.0.md) 以降、Neptune は 1 つ以上の[特定の Neptune アクション](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonneptune.html)へのアクセス許可の制限をサポートしています。これにより、以前よりもきめ細かなアクセスコントロールが可能になります。

**重要**  
IAM ポリシーへの変更は、指定された Neptune リソースへの適用に最大で 10 分かかります。
Neptune DB クラスターに適用された IAM ポリシーは、そのクラスター内のすべてのインスタンスに適用されます。

## *クエリベースのデータアクセスアクション*
<a name="iam-dp-actions-queries"></a>

**注記**  
クエリは、処理するデータによっては複数のアクションを実行することがあるため、特定のクエリを実行するためにどのようなアクセス許可が必要かが常に明確であるとは限りません。詳細については「[クエリアクションの使用](iam-data-access-policies.md#iam-data-query-actions)」を参照してください。

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

`ReadDataViaQuery` を使用すると、ユーザーは、クエリを送信して Neptune データベースからデータを読み取ることができます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*アクションコンテキストキー*: `neptune-db:QueryLanguage`。

*必要なリソース:* データベース。

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

`WriteDataViaQuery` を使用すると、ユーザーは、クエリを送信して Neptune データベースにデータを書き込むことができます。

*アクショングループ:* 読み取り/書き込み。

*アクションコンテキストキー*: `neptune-db:QueryLanguage`。

*必要なリソース:* データベース。

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

`DeleteDataViaQuery` を使用すると、ユーザーは、クエリを送信して Neptune データベースからデータを削除できます。

*アクショングループ:* 読み取り/書き込み。

*アクションコンテキストキー*: `neptune-db:QueryLanguage`。

*必要なリソース:* データベース。

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

`GetQueryStatus` を使用すると、ユーザーは、すべてのアクティブなクエリのステータスを確認できます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*アクションコンテキストキー*: `neptune-db:QueryLanguage`。

*必要なリソース:* データベース。

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

`GetStreamRecords` を使用すると、ユーザーは、Neptune からストリームレコードを取得できます。

*アクショングループ:* 読み取り/書き込み。

*アクションコンテキストキー*: `neptune-db:QueryLanguage`。

*必要なリソース:* データベース。

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

`CancelQuery` を使用すると、ユーザーは、クエリをキャンセルできます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

## *一般的なデータアクセスアクション*
<a name="iam-dp-actions-general"></a>

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

`GetEngineStatus` を使用すると、ユーザーは、Neptune エンジンのステータスを確認できます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`GetStatisticsStatus` を使用すると、ユーザーは、データベースについて収集されている統計のステータスを確認できます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`GetGraphSummary` グラフサマリー API では、グラフの読み取り専用サマリーを取得できます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`ManageStatistics` では、ユーザーは、データベースの統計収集を管理できます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`DeleteStatistics` では、ユーザーは、データベースのすべての統計を削除できます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`ResetDatabase` では、ユーザーは、リセットに必要なトークンを取得し、Neptune データベースをリセットできます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

## *バルクローダーのデータアクセスアクション*
<a name="iam-dp-actions-loader"></a>

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

`StartLoaderJob` では、ユーザーは、バルクローダージョブを開始できます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`GetLoaderJobStatus` では、ユーザーは、バルクローダージョブのステータスを確認できます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`ListLoaderJobs` では、ユーザーは、すべてのバルクローダージョブを一覧表示できます。

*アクショングループ:* リスト専用、読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`CancelLoaderJob` では、ユーザーは、ローダージョブをキャンセルできます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

## *機械学習データアクセスアクション*
<a name="iam-dp-actions-ml"></a>

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

`StartMLDataProcessingJob` では、ユーザーは、Neptune ML データ処理ジョブを開始できます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`StartMLModelTrainingJob` では、ユーザーは、ML モデルトレーニングジョブを開始できます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`StartMLModelTransformJob` では、ユーザーは、ML モデル変換ジョブを開始できます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`CreateMLEndpoint` では、ユーザーは、Neptune ML エンドポイントを作成できます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`GetMLDataProcessingJobStatus` では、ユーザーは、Neptune ML データ処理ジョブのステータスを確認できます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`GetMLModelTrainingJobStatus` では、ユーザーは、Neptune ML モデルトレーニングジョブのステータスを確認できます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`GetMLModelTransformJobStatus` では、ユーザーは、Neptune ML モデル変換ジョブのステータスを確認できます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`GetMLEndpointStatus` では、ユーザーは、Neptune ML エンドポイントのステータスを確認できます。

*アクショングループ:* 読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`ListMLDataProcessingJobs` では、ユーザーは、Neptune ML データ処理ジョブをすべて一覧表示できます。

*アクショングループ:* リスト専用、読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`ListMLModelTrainingJobs` では、ユーザーは、Neptune ML モデルトレーニングジョブをすべて一覧表示できます。

*アクショングループ:* リスト専用、読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`ListMLModelTransformJobs` では、ユーザーは、すべての ML モデルの変換ジョブを一覧表示できます。

*アクショングループ:* リスト専用、読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`ListMLEndpoints` では、ユーザーは、すべての Neptune ML エンドポイントを一覧表示できます。

*アクショングループ:* リスト専用、読み取り専用、読み取り/書き込み。

*必要なリソース:* データベース。

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

`CancelMLDataProcessingJob` では、ユーザーは、Neptune ML データ処理ジョブをキャンセルできます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`CancelMLModelTrainingJob` では、ユーザーは、Neptune ML モデルトレーニングジョブをキャンセルできます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`CancelMLModelTransformJob` では、ユーザーは、Neptune ML モデル変換ジョブをキャンセルできます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

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

`DeleteMLEndpoint` では、ユーザーは、Neptune ML エンドポイントを削除できます。

*アクショングループ:* 読み取り/書き込み。

*必要なリソース:* データベース。

# Amazon Neptune のデータにアクセスするための IAM リソースタイプ
<a name="iam-data-resources"></a>

データリソースには、データアクションと同様に、`neptune-db:` プレフィックスがあります。

Neptune データアクセスポリシーでは、アクセスを許可する DB クラスターを次の形式で ARN で指定します。

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

このようなリソース ARN には次のパートが含まれます。
+ `region` は Amazon Neptune DB クラスターの AWS リージョンです。
+ `account-id` は DB クラスターの A AWS アカウント番号です。
+ `cluster-resource-id` は DB クラスターのリソース ID です。
**重要**  
`cluster-resource-id` はクラスター識別子とは異なります。Neptune でクラスターリソース ID を検索するには AWS マネジメントコンソール、該当する DB クラスター**の設定**セクションを参照してください。

# Amazon Neptune のデータにアクセスするための IAM 条件キー
<a name="iam-data-condition-keys"></a>

[条件キーを使用すると](security-iam-access-manage.md#iam-using-condition-keys)、IAM ポリシーステートメントで条件を指定して、条件が満たされた場合にのみステートメントが有効になるようにすることができます。

Neptune データアクセスポリシーステートメントで使用できる条件キーは、次のカテゴリに分類されます。
+ [グローバル条件キー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)   – Neptune   がデータアクセスポリシーステートメントでサポートする AWS グローバル条件キーのサブセットを[以下](#iam-data-global-condition-keys)に示します。
+ [サービス固有の条件キー](#iam-neptune-condition-keys) — これらは Neptune がデータアクセスポリシーステートメントで使用するために特別に定義したキーです。現在は [neptune-db:QueryLanguage](#neptune-db-query-language) の 1 つだけであり、特定のクエリ言語が使用されている場合にのみアクセスを許可します。

## AWS データアクセスポリシーステートメントで Neptune がサポートするグローバル条件コンテキストキー
<a name="iam-data-global-condition-keys"></a>

次の表は、Amazon Neptune がデータアクセスポリシーステートメントでの使用をサポートしている [AWS グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)のサブセットを示しています。


**データアクセスポリシーステートメントで使用できるグローバル条件キー**  

| 条件キー | 説明 | タイプ | 
| --- | --- | --- | 
| [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) | リクエストの現在日時によってアクセスをフィルタリングします。 | 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) | 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) | リクエスト元のプリンシパルが属するアカウントによってアクセスをフィルタリングします。 | 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) | リクエストを実行したプリンシパルの ARN によってアクセスをフィルタリングします。 | 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) | 呼び出しが 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) | リクエスト元のプリンシパルが属する AWS Organizations 内の組織の識別子でアクセスをフィルタリングします。 | 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) | リクエストを行うプリンシパルの AWS Organizations パスでアクセスをフィルタリングします。 | 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) | リクエストを行っているプリンシパルに付けられたタグによってアクセスをフィルタリングします。 | 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) | リクエストを行っているプリンシパルのタイプによってアクセスをフィルタリングします。 | 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) | リクエストで呼び出された AWS リージョンでアクセスをフィルタリングします。 | 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) | リクエストが 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) | リクエスタの IP アドレスによってアクセスをフィルタリングします。 | 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) | 一時的セキュリティ認証情報が発行された日付と時刻によってアクセスをフィルタリングします。 | 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) | リクエスタのクライアントアプリケーションによってアクセスをフィルタリングします。 | 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) | リクエスタのプリンシパル識別子によってアクセスをフィルタリングします。 | 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) |  AWS サービスがユーザーに代わってリクエストを行った場合にのみアクセスを許可します。 | Boolean | 

## Neptune サービス固有の条件キー
<a name="iam-neptune-condition-keys"></a>

Neptune は IAM ポリシーについて、以下のサービス固有の条件キーをサポートします。


**Neptune サービス固有の条件キー**  

| 条件キー | 説明 | タイプ | 
| --- | --- | --- | 
| neptune-db:QueryLanguage |  使用されているクエリ言語によってアクセスをフィルタリングします。 有効な値は、`Gremlin`、`OpenCypher`、`Sparql` です。 サポートされるアクションは、`ReadDataViaQuery`、`WriteDataViaQuery`、`DeleteDataViaQuery`、`GetQueryStatus`、および `CancelQuery` です。  | String | 

# Amazon Neptune での IAM データアクセスポリシーの作成
<a name="iam-data-access-examples"></a>

以下の例は、Neptune [エンジンリリースバージョン 1.2.0.0](engine-releases-1.2.0.0.md) で導入された、データプレーン API とアクションのきめ細かいアクセスコントロールを使用するカスタム IAM ポリシーを作成する方法を示しています。

## Neptune DB クラスター内のデータへの無制限アクセスを許可するポリシーの例
<a name="iam-auth-data-policy-example-general"></a>

次のサンプルポリシーは、IAM ユーザーが IAM データベース認証を使用して Neptune DB クラスターに接続し、「`*`」文字を使用して使用可能なすべてのアクションに一致するのを許可します。

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

****  

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

------

上記のリソースセクションには、Neptune の IAM 認証に固有の形式であるリソース ARN が含まれます。ARN を作成するには、「[データリソースの指定](iam-data-resources.md)」を参照してください。IAM 承認 `Resource` に使用される ARN は、クラスターの作成時に割り当てられる ARN とは異なることに注意してください。

## Neptune DB クラスターへの読み取り専用アクセスを許可するポリシーの例
<a name="iam-auth-data-policy-example-read-only"></a>

以下のポリシーは、Neptune DB クラスター内のデータへの完全な読み取り専用アクセスのためのアクセス許可を付与します。

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

------

## Neptune DB クラスターへのすべてのアクセスを拒否するポリシーの例
<a name="iam-auth-data-policy-example-deny"></a>

デフォルトの IAM アクションでは、`Allow` *Effect* が付与されない限り、DB クラスターへのアクセスが拒否されます。ただし、次のポリシーでは、特定の AWS アカウントとリージョンの DB クラスターへのすべてのアクセスを拒否します。このアクセスは、`Allow`効果よりも優先されます。

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

****  

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

------

## クエリを通じて読み取りアクセスを許可するポリシーの例
<a name="iam-auth-data-policy-example-read-query"></a>

次のポリシーは、クエリを使用して Neptune DB クラスターから読み取るアクセス許可のみを付与します。

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

****  

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

------

## Gremlin クエリのみを許可するポリシーの例
<a name="iam-auth-data-policy-example-gremlin-only"></a>

次のポリシーは、`neptune-db:QueryLanguage` 条件キーを使用して、Gremlin クエリ言語のみを使用して Neptune をクエリするアクセス許可を付与します。

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

------

## Neptune ML モデル管理を除くすべてのアクセスを許可するポリシーの例
<a name="iam-auth-data-policy-example-all-but-ml"></a>

次のポリシーは、Neptune ML モデル管理機能を除く Neptune グラフ操作へのフルアクセスを許可します。

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

------

## Neptune ML モデル管理へのアクセスを許可するポリシーの例
<a name="iam-auth-data-policy-example-ml"></a>

このポリシーは、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/*"
    }
  ]
}
```

------

## クエリのフルアクセスを許可するポリシーの例
<a name="iam-auth-data-policy-example-full-query"></a>

次のポリシーは、Neptune グラフクエリ操作へのフルアクセスを許可しますが、高速リセット、ストリーム、バルクローダー、Neptune ML モデル管理などの機能へのアクセスは許可しません。

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

------

## Gremlin クエリにのみフルアクセスを許可するポリシーの例
<a name="iam-auth-data-policy-example-full-gremlin-access"></a>

次のポリシーは、Gremlin クエリ言語を使用した Neptune グラフクエリ操作へのフルアクセスを許可しますが、他の言語でのアクセスや、高速リセット、ストリーム、バルクローダー、Neptune ML モデル管理などの機能へのアクセスは許可しません。

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

------

## 高速リセット以外のフルアクセスを許可するポリシーの例
<a name="iam-auth-data-policy-example-all-but-fast-reset"></a>

次のポリシーは、高速リセットの使用を除き、Neptune DB クラスターへのフルアクセスを付与します。

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

------