

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

# neptune.read() のアクセス許可の管理
<a name="access-graph-opencypher-21-extensions-s3-read-permissions"></a>

## 必要な IAM ポリシー
<a name="access-graph-opencypher-21-extensions-s3-read-permissions-iam"></a>

を使用する openCypher クエリを実行するには`neptune.read()`、Neptune データベースのデータにアクセスするための適切なアクセス許可が必要です。読み取り専用クエリには `ReadDataViaQuery`アクションが必要です。データを変更するクエリでは、`WriteDataViaQuery`挿入または削除が必要です`DeleteDataViaQuery`。次の の例では、指定されたクラスターに対する 3 つのアクションすべてを許可します。

さらに、データファイルを含む S3 バケットにアクセスするためのアクセス許可が必要です。NeptuneS3Access ポリシーステートメントは、必要な S3 アクセス許可を付与します。
+ **`s3:ListBucket`**: バケットの存在を検証し、コンテンツを一覧表示するために必要です。
+ **`s3:GetObject`**: コンテンツを openCypher クエリに統合するために読み取ることができるように、指定されたオブジェクトにアクセスするために必要です。

S3 バケットが でサーバー側の暗号化を使用している場合は AWS KMS、KMS アクセス許可も付与する必要があります。NeptuneS3KMSAccess ポリシーステートメントにより、Neptune は暗号化された S3 オブジェクトにアクセスするときにデータを復号し、データキーを生成できます。この条件は、リージョン内の S3 および RDS サービスから送信されるリクエストに KMS オペレーションを制限します。
+ **`kms:Decrypt`**: Neptune がデータを読み取ることができるように、暗号化されたオブジェクトの復号を実行するために必要です。
+ **`kms:GenerateDataKey`**: 読み取り対象のオブジェクトを取得するために使用される S3 API でも必要です。

```
{
  "Sid": "NeptuneQueryAccess",
  "Effect": "Allow",
  "Action": [
      "neptune-db:ReadDataViaQuery",
      "neptune-db:WriteDataViaQuery",
      "neptune-db:DeleteDataViaQuery"
  ],
  "Resource": "arn:aws:neptune-db:<REGION>:<AWS_ACCOUNT_ID>:<CLUSTER_RESOURCE_ID>/*"
},
{
  "Sid": "NeptuneS3Access",
  "Effect": "Allow",
  "Action": [
      "s3:ListBucket",
      "s3:GetObject"
  ],
  "Resource": [
      "arn:aws:s3:::neptune-read-bucket",
      "arn:aws:s3:::neptune-read-bucket/*"
  ]
},
{
  "Sid": "NeptuneS3KMSAccess",
  "Effect": "Allow",
  "Action": [
      "kms:Decrypt",
      "kms:GenerateDataKey"
  ],
  "Resource": "arn:aws:kms:<REGION>:<AWS_ACCOUNT_ID>:key/<KEY_ID>",
  "Condition": {
      "StringEquals": {
        "kms:ViaService": [
            "s3.<REGION>.amazonaws.com",
            "rds.<REGION>.amazonaws.com"
        ]
      }
  }
}
```

## インポートの前提条件
<a name="access-graph-opencypher-21-extensions-s3-read-permissions-prerequisites"></a>

これらのアクセス許可と前提条件により、適切なアクセスコントロールとデータ保護対策を維持しながら、S3 データを openCypher クエリに安全かつ確実に統合できます。
+ **IAM 認証**: この機能は、IAM 認証が有効になっている Neptune クラスターでのみサポートされています。IAM 認証対応クラスターを作成して接続する方法の詳細については、[Amazon Neptune データベースの保護](security.md)」を参照してください。
+ **VPC エンドポイント**:
  + Neptune が Amazon S3 と通信できるようにするには、Amazon S3 のゲートウェイタイプの VPC エンドポイントが必要です。
  + クエリでカスタム AWS KMS 暗号化を使用するには、Neptune が と通信できるようにするには、 のインターフェイスタイプの VPC エンドポイント AWS KMS が必要です AWS KMS。
  + このエンドポイントの設定方法の詳細については、[Amazon S3 VPC エンドポイントの作成](bulk-load-tutorial-IAM.md)」を参照してください。