

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

# 授予 Gremlin Amazon S3 匯出功能的存取權
<a name="granting-access-gremlin"></a>

 **必要的 IAM 政策** 

1.  **Neptune 查詢讀取存取** 

   ```
   {
     "Sid": "NeptuneQueryRead",
     "Effect": "Allow",
     "Action": ["neptune-db:Read*"],
     "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD12/*"
   }
   ```

    **為什麼需要：**此許可允許從 Neptune 資料庫讀取資料，這對於執行將匯出的 Gremlin 查詢是必要的。上一個範例允許讀取查詢。對於讀取/寫入查詢，需要寫入/刪除許可。

1.  **Amazon S3 匯出許可** 

   ```
   {
     "Sid": "NeptuneS3Export",
     "Effect": "Allow",
     "Action": [
       "s3:ListBucket",
       "s3:PutObject",
       "s3:AbortMultipartUpload",
       "s3:GetBucketPublicAccessBlock"
     ],
     "Resource": "arn:aws:s3:::neptune-export-bucket/*"
   }
   ```

    **為什麼需要每個許可：**
   +  `s3:ListBucket`：驗證儲存貯體是否存在並列出內容時需要。
   +  `s3:PutObject`：將匯出的資料寫入 Amazon S3 時需要。
   +  `s3:AbortMultipartUpload`：在匯出失敗時清除未完成的分段上傳時需要。
   +  `s3:GetBucketPublicAccessBlock`：作為安全措施的必要項目，以在匯出資料之前驗證儲存貯體不是公有的。

1.  **AWS KMS許可 **- 選用。只有在使用自訂AWS KMS加密時才需要。

   ```
   {
     "Sid": "NeptuneS3ExportKMS",
     "Effect": "Allow",
     "Action": [
       "kms:Decrypt",
       "kms:GenerateDataKey",
       "kms:DescribeKey"
     ],
     "Resource": "arn:aws:kms:<REGION>:<AWS_ACCOUNT_ID>:key/mrk-48971c37"
       "Condition": {
       "StringEquals": {
         "kms:ViaService": [
           "s3.<REGION>.amazonaws.com",
           "rds.<REGION>.amazonaws.com"
         ]
       }
     }
   }
   ```

    **為什麼需要每個許可：**
   +  `kms:Decrypt`：解密資料加密的AWS KMS金鑰時需要。
   +  `kms:GenerateDataKey`：產生用於加密匯出資料的資料金鑰時需要。
   +  `kms:DescribeKey`：驗證和擷取AWS KMS金鑰的相關資訊時需要。
   +  `kms:ViaService`：強制此角色不可將此金鑰用於任何其他 AWS服務，以提高安全性。

**重要先決條件**
+  **IAM 身分驗證：**必須在 Neptune 叢集上啟用，才能強制執行這些許可。
+  **VPC 端點：**
  +  需要 Amazon S3 的閘道類型 VPC 端點，才能允許 Neptune 與 Amazon S3 通訊。
  +  若要在查詢中使用自訂AWS KMS加密，AWS KMS需要 的界面類型 VPC 端點，才能允許 Neptune 與 通訊AWS KMS。
+  **Amazon S3 儲存貯體組態：**
  +  不得為公有。
  +  應該有生命週期規則來清除未完成的分段上傳。
  +  將自動加密新物件。

 這些許可和先決條件可確保安全可靠的 Gremlin 查詢結果匯出，同時維持適當的存取控制和資料保護措施。