

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 管理 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`的查詢。以下範例會授予指定叢集上所有三個動作。

此外，您需要許可才能存取包含資料檔案的 S3 儲存貯體。NeptuneS3Access 政策陳述式會授予必要的 S3 許可：
+ **`s3:ListBucket`**：驗證儲存貯體存在並列出內容時需要。
+ **`s3:GetObject`**：需要存取指定的物件，才能讀取其內容以整合到 openCypher 查詢。

如果您的 S3 儲存貯體搭配 伺服器端加密使用 AWS KMS，您還必須授予 KMS 許可。NeptuneS3KMSAccess 政策陳述式允許 Neptune 在存取加密的 S3 物件時解密資料並產生資料金鑰。條件會將 KMS 操作限制為來自您區域中 S3 和 RDS 服務的請求。
+ **`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 端點**：
  + 需要 Amazon S3 的閘道類型 VPC 端點，才能允許 Neptune 與 Amazon S3 通訊。
  + 若要在查詢中使用自訂 AWS KMS 加密， AWS KMS 需要 的界面類型 VPC 端點，才能允許 Neptune 與 通訊 AWS KMS。
  + 如需如何設定此端點的詳細說明，請參閱[建立 Amazon S3 VPC 端點](bulk-load-tutorial-IAM.md)。