Neptune 的 IAM 管理策略语句示例 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Neptune 的 IAM 管理策略语句示例

一般管理策略示例

以下示例说明如何创建 Neptune 管理策略,以授予对数据库集群执行各种管理操作的权限。

防止 IAM 用户删除指定数据库实例的策略

以下是防止 IAM 用户删除指定的 Neptune 数据库实例的策略示例:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDeleteOneInstance", "Effect": "Deny", "Action": "rds:DeleteDBInstance", "Resource": "arn:aws:rds:us-west-2:123456789012:db:my-instance-name" } ] }

授予创建新数据库实例的权限的策略

以下是允许 IAM 用户在指定的 Neptune 数据库集群中创建数据库实例的示例策略:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateInstance", "Effect": "Allow", "Action": "rds:CreateDBInstance", "Resource": "arn:aws:rds:us-west-2:123456789012:cluster:my-cluster" } ] }

授予创建新数据库实例(使用特定数据库参数组)的权限的策略

以下是一个策略示例,它允许 IAM 用户仅使用指定的数据库参数组,在指定的 Neptune 数据库集群的指定数据库集群(此处为 us-west-2)中创建数据库实例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCreateInstanceWithPG", "Effect": "Allow", "Action": "rds:CreateDBInstance", "Resource": [ "arn:aws:rds:us-west-2:123456789012:cluster:my-cluster", "arn:aws:rds:us-west-2:123456789012:pg:my-instance-pg" ] } ] }

授予描述任何资源的权限的策略

以下是允许 IAM 用户描述任何 Neptune 资源的策略示例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDescribe", "Effect": "Allow", "Action": "rds:Describe*", "Resource": * } ] }

基于标签的管理策略示例

以下示例说明如何创建 Neptune 管理策略,这些策略将进行标记,以筛选在数据库集群上执行各种管理操作的权限。

示例 1:使用可以取多个值的自定义标签,授予对资源执行操作的权限

以下策略允许在 env 标签设置为 devtest 的任何数据库实例上使用 ModifyDBInstanceCreateDBInstanceDeleteDBInstance API:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowDevTestAccess", "Effect": "Allow", "Action": [ "rds:ModifyDBInstance", "rds:CreateDBInstance", "rds:DeleteDBInstance" ], "Resource": "*", "Condition": { "StringEquals": { "rds:db-tag/env": [ "dev", "test" ], "rds:DatabaseEngine": "neptune" } } } ] }

示例 2:限制可用于对资源进行标记的一组标签键和值

此策略使用 Condition 键来允许将键 env 且值为 testqadev 的标签添加到资源中:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowTagAccessForDevResources", "Effect": "Allow", "Action": [ "rds:AddTagsToResource", "rds:RemoveTagsFromResource" ], "Resource": "*", "Condition": { "StringEquals": { "rds:req-tag/env": [ "test", "qa", "dev" ], "rds:DatabaseEngine": "neptune" } } } ] }

示例 3:允许基于 aws:ResourceTag 对 Neptune 资源进行完全访问

以下策略与上面的第一个示例类似,但改为使用 aws:ResourceTag

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowFullAccessToDev", "Effect": "Allow", "Action": [ "rds:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/env": "dev", "rds:DatabaseEngine": "neptune" } } } ] }