本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
授予 Gremlin Amazon S3 匯出功能的存取權
必要的 IAM 政策
-
Neptune 查詢讀取存取
{ "Sid": "NeptuneQueryRead", "Effect": "Allow", "Action": ["neptune-db:Read*"], "Resource": "arn:aws:neptune-db:us-east-1:123456789012:cluster-ABCD12/*" }為什麼需要:此許可允許從 Neptune 資料庫讀取資料,這對於執行將匯出的 Gremlin 查詢是必要的。上一個範例允許讀取查詢。對於讀取/寫入查詢,需要寫入/刪除許可。
-
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:作為安全措施的必要項目,以在匯出資料之前驗證儲存貯體不是公有的。
-
-
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 查詢結果匯出,同時維持適當的存取控制和資料保護措施。