

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

# 在 Aurora 中建立、修改和刪除資源的許可政策
<a name="security_iam_id-based-policy-examples-create-and-modify-examples"></a>

下列各節提供授予和限制資源存取權的許可政策範例：

## 允許使用者在 AWS 帳戶中建立資料庫執行個體
<a name="security_iam_id-based-policy-examples-create-db-instance-in-account"></a>

以下是允許 ID 為您的帳戶為 AWS 您的帳戶`123456789012`建立資料庫執行個體的範例政策。此政策需要新資料庫執行個體的名稱以 `test` 開頭。新的資料庫執行個體也須使用 MySQL 資料庫引擎和 `db.t2.micro` 資料庫執行個體類別。此外，新的資料庫執行個體還須使用選項群組，以及以 `default` 開頭的資料庫參數群組，而且它還須使用 `default` 子網路群組。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "AllowCreateDBInstanceOnly",
         "Effect": "Allow",
         "Action": [
            "rds:CreateDBInstance"
         ],
         "Resource": [
            "arn:aws:rds:*:123456789012:db:test*",
            "arn:aws:rds:*:123456789012:og:default*",
            "arn:aws:rds:*:123456789012:pg:default*",
            "arn:aws:rds:*:123456789012:subgrp:default"
         ],
         "Condition": {
            "StringEquals": {
               "rds:DatabaseEngine": "mysql",
               "rds:DatabaseClass": "db.t2.micro"
            }
         }
      }
   ]
}
```

------

政策包括單一陳述式，指定 使用者的下列許可：
+ 此政策允許帳戶使用 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) API 操作建立資料庫執行個體 （這也適用於 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) AWS CLI 命令和 AWS 管理主控台)。
+ `Resource` 元素指定使用者可對資源或搭配資源執行動作。您可以使用 Amazon Resource Name (ARN) 來指定資源。此 ARN 包含資源所屬的服務名稱 (`rds`)、區域 AWS (`*` 表示此範例中的任何區域）、 AWS 帳戶號碼 (`123456789012` 是此範例中的帳戶號碼），以及資源類型。如需建立 ARN 的詳細資訊，請參閱[Amazon RDS 中的 Amazon Resource Name (ARN)](USER_Tagging.ARN.md)。

  範例中的 `Resource` 元素對使用者的資源指定下列政策限制：
  + 新資料庫執行個體的資料庫執行個體識別符必須以 `test`開頭 (例如，`testCustomerData1`、`test-region2-data`)。
  + 新資料庫執行個體的選項群組必須以`default` 開頭。
  + 新資料庫執行個體的資料庫參數群組必須以`default` 開頭。
  + 新資料庫執行個體的子網路群組必須是`default` 子網路群組。
+ `Condition` 元素指定資料庫引擎必須是 MySQL，而且資料庫執行個體類別必須是 `db.t2.micro`。`Condition` 元素指定政策應該生效時的條件。您可以使用 `Condition` 元素來新增其他許可或限制。如需指定條件的詳細資訊，請參閱[Aurora 的政策條件金鑰](security_iam_service-with-iam.md#UsingWithRDS.IAM.Conditions)。此範例指定 `rds:DatabaseEngine` 和 `rds:DatabaseClass` 條件。如需 `rds:DatabaseEngine` 有效條件值的相關資訊，請參閱 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) 中的 `Engine` 參數下的清單。如需 `rds:DatabaseClass` 的有效條件值的相關資訊，請參閱 [資料庫執行個體類別的支援資料庫引擎](Concepts.DBInstanceClass.SupportAurora.md)。

此政策不指定 `Principal` 元素，因為您不會在以身分為基礎的政策中，指定取得許可的主體。當您將政策連接至使用者時，這名使用者即為隱含主體。當您將許可政策連接至 IAM 角色，該角色的信任政策中所識別的主體即取得許可。

若要查看 Aurora 動作的清單，請參閱*服務授權參考*中的 [Amazon RDS 定義的動作](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonrds.html#amazonrds-actions-as-permissions)。

## 允許使用者對任何 RDS 資源執行任何描述動作
<a name="IAMPolicyExamples-RDS-perform-describe-action"></a>

下列許可政策會授予使用者執行開頭為 `Describe` 之所有動作的許可。這些動作會顯示 RDS 資源 (如資料庫執行個體) 的相關資訊。`Resource` 元素中的萬用字元 (\$1) 表示可對帳戶擁有的所有 Amazon Aurora 資源執行動作。

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

****  

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

------

## 允許使用者建立可使用指定資料庫參數群組和子網路群組的資料庫執行個體
<a name="security_iam_id-based-policy-examples-create-db-instance-specified-groups"></a>

以下許可政策授予許可，以允許使用者只能建立一個必須使用 `mydbpg` 資料庫參數群組和 `mydbsubnetgroup` 資料庫子網路群組的資料庫執行個體。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Sid": "VisualEditor0",
         "Effect": "Allow",
         "Action": "rds:CreateDBInstance",
         "Resource": [
            "arn:aws:rds:*:*:pg:mydbpg",
            "arn:aws:rds:*:*:subgrp:mydbsubnetgroup"
         ]
      }
   ]
}
```

------

## 利用具有兩個不同值的特定標籤，對資源上的動作授予許可
<a name="security_iam_id-based-policy-examples-grant-permissions-tags"></a>

您可以在身分類型政策中使用條件，根據標籤來控制存取 Aurora 資源。下列政策允許在 `stage` 標籤設為 `development` 或 `test` 的資料庫執行個體上執行 `CreateDBSnapshot` API 操作的許可。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowAnySnapshotName",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:snapshot:*"
      },
      {
         "Sid":"AllowDevTestToCreateSnapshot",
         "Effect":"Allow",
         "Action":[
            "rds:CreateDBSnapshot"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
                "rds:db-tag/stage":[
                  "development",
                  "test"
               ]
            }
         }
      }
   ]
}
```

------

下列政策允許在 `stage` 標籤設為 `development` 或 `test` 的資料庫執行個體上執行 `ModifyDBInstance` API 操作的許可。

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement":[
      {
         "Sid":"AllowChangingParameterOptionSecurityGroups",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
         ],
         "Resource": [
            "arn:aws:rds:*:123456789012:pg:*",
            "arn:aws:rds:*:123456789012:secgrp:*",
            "arn:aws:rds:*:123456789012:og:*"
         ]
      },
      {
         "Sid":"AllowDevTestToModifyInstance",
         "Effect":"Allow",
         "Action":[
            "rds:ModifyDBInstance"
         ],
         "Resource":"arn:aws:rds:*:123456789012:db:*",
         "Condition":{
            "StringEquals":{
                "rds:db-tag/stage":[
                  "development",
                  "test"
               ]
            }
         }
      }
   ]
}
```

------

## 防止使用者刪除資料庫執行個體
<a name="IAMPolicyExamples-RDS-prevent-db-deletion"></a>

以下許可政策授予許可，以防止使用者刪除特定的資料庫執行個體。例如，您可能想拒絕給予任何非管理員使用者刪除生產資料庫執行個體的能力。

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

****  

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

------

## 拒絕對資源的所有存取
<a name="IAMPolicyExamples-RDS-deny-all-access"></a>

您可以明確拒絕對資源的存取權。拒絕政策優先於允許政策。下列政策明確拒絕使用者管理資源的能力：

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

****  

```
{
   "Version":"2012-10-17",		 	 	 
   "Statement": [
      {
         "Effect": "Deny",
         "Action": "rds:*",
         "Resource": "arn:aws:rds:us-east-1:123456789012:db:mydb"
      }
   ]
}
```

------