

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 Amazon Neptune 的 IAM 管理政策陳述式
<a name="iam-admin-policy-examples"></a>

## 一般管理政策範例
<a name="iam-admin-policy-general-examples"></a>

以下範例說明如何建立 Neptune 管理政策，授與對資料庫叢集執行各種管理動作的許可。

### 防止 IAM 使用者刪除所指定資料庫執行個體的政策
<a name="iam-admin-policy-not-delete-instance"></a>

以下是防止 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"
    }
  ]
}
```

------

### 授與許可來建立新資料庫執行個體的政策
<a name="iam-admin-policy-to-create-instances"></a>

以下是允許 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"
    }
  ]
}
```

------

### 授與許可來建立使用特定資料庫參數群組之新資料庫執行個體的政策
<a name="iam-admin-policy-to-create-instances-with-pg"></a>

以下範例政策允許 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"
      ]
    }
  ]
}
```

------

### 授與許可來描述任何資源的政策
<a name="iam-admin-policy-to-describe"></a>

以下是允許 IAM 使用者描述任何 Neptune 資源的範例政策。

------
#### [ JSON ]

****  

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

------

## 標籤型管理政策範例
<a name="iam-admin-policy-tagging-examples"></a>

以下範例說明如何建立 Neptune 管理政策，使用標籤來篩選資料庫叢集上各種管理動作的許可。

### 範例 1：使用可以採取多個值的自訂標籤，對資源上的動作授與許可
<a name="security-iam-tag-examples-1"></a>

以下政策允許在 `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：限制可用來標記資源的一組標籤金鑰和值
<a name="security-iam-tag-examples-2"></a>

此政策會使用 `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 資源
<a name="security-iam-tag-examples-3"></a>

以下政策與上述第一個範例類似，但會改用 `aws:ResourceTag`：

------
#### [ JSON ]

****  

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

------