本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
管理 neptune.read () 的权限
所需的 IAM 策略
要执行使用的 OpenCypher 查询neptune.read(),您必须具有访问您的 Neptune 数据库中数据的相应权限。只读查询需要执行ReadDataViaQuery操作。修改数据的查询WriteDataViaQuery需要插入或删除DeleteDataViaQuery。以下示例允许在指定集群上执行所有三个操作。
此外,您需要访问包含您的数据文件的 S3 存储桶的权限。Neptunes3Access 策略声明授予所需的 S3 权限:
-
s3:ListBucket:验证存储桶是否存在并列出内容所必需的。 -
s3:GetObject:需要访问指定对象,以便可以读取其内容以集成到 OpenCypher 查询中。
如果您的 S3 存储桶使用服务器端加密 Amazon KMS,则还必须授予 KMS 权限。Neptunes3 KMSAccess 策略声明允许 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" ] } } }
重要先决条件
这些权限和先决条件可确保将 S3 数据安全可靠地集成到 OpenCypher 查询中,同时保持适当的访问控制和数据保护措施。
-
IAM 身份验证:仅启用了 IAM 身份验证的 Neptune 集群支持此功能。有关如何创建和连接支持 IAM 身份验证的集群的详细说明,请参阅保护您的 Amazon Neptune 数据库。
-
VPC 终端节点:
-
Amazon S3 需要网关类型 VPC 端点,才能支持 Neptune 与 Amazon S3 进行通信。
-
要在查询中使用自定义 Amazon KMS 加密,需要接口类型的 VPC 终端节点,以允许 Amazon KMS Neptune 与之通信。 Amazon KMS
-
有关如何配置此终端节点的详细说明,请参阅创建 Amazon S3 VPC 终端节点。
-