本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为亚马逊 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"
        }
      }
    }
  ]
}