Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为亚马逊 Neptune 创建 IAM 管理政策声明
一般管理策略示例
以下示例说明如何创建 Neptune 管理策略,以授予对数据库集群执行各种管理操作的权限。
防止 IAM 用户删除指定数据库实例的策略
以下是防止 IAM 用户删除指定的 Neptune 数据库实例的策略示例:
- JSON
-
-
{
"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 数据库集群中创建数据库实例的示例策略:
- JSON
-
-
{
"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)中创建数据库实例。
- JSON
-
-
{
"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 资源的策略示例。
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "AllowDescribe",
"Effect": "Allow",
"Action": "rds:Describe*",
"Resource": "*"
}
]
}
基于标签的管理策略示例
以下示例说明如何创建 Neptune 管理策略,这些策略将进行标记,以筛选在数据库集群上执行各种管理操作的权限。
示例 1:使用可以取多个值的自定义标签,授予对资源执行操作的权限
以下策略允许在 env 标签设置为 dev 或 test 的任何数据库实例上使用 ModifyDBInstance、CreateDBInstance 或 DeleteDBInstance API:
- JSON
-
-
{ "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 且值为 test、qa 或 dev 的标签添加到资源中:
- JSON
-
-
{ "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:
- JSON
-
-
{ "Version":"2012-10-17",
"Statement": [
{
"Sid": "AllowFullAccessToDev",
"Effect": "Allow",
"Action": [
"rds:*"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"aws:ResourceTag/env": "dev",
"rds:DatabaseEngine": "neptune"
}
}
}
]
}