

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

# 建立 IAM 政策來存取 Amazon S3 資源
<a name="AuroraMySQL.Integrating.Authorizing.IAM.S3CreatePolicy"></a>

Aurora 可以存取 Amazon S3 資源，以便從 Aurora 資料庫叢集載入資料或儲存資料。不過，您必須先建立 IAM 政策來提供儲存貯體和物件許可，以允許 Aurora 存取 Amazon S3。

下表列出可代表您存取 Amazon S3 儲存貯體的 Aurora 功能，以及每一項功能所需的最低儲存貯體和物件許可。


| 功能 | 儲存貯體許可 | 物件許可 | 
| --- | --- | --- | 
|  `LOAD DATA FROM S3`  |  `ListBucket`  |  `GetObject` `GetObjectVersion`  | 
| LOAD XML FROM S3 |  `ListBucket`  |  `GetObject` `GetObjectVersion`  | 
|  `SELECT INTO OUTFILE S3`  |  `ListBucket`  |  `AbortMultipartUpload` `DeleteObject` `GetObject` `ListMultipartUploadParts` `PutObject`  | 

下列政策會新增 Aurora 代您存取 Amazon S3 儲存貯體所需的許可。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowAuroraToExampleBucket",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:AbortMultipartUpload",
                "s3:ListBucket",
                "s3:DeleteObject",
                "s3:GetObjectVersion",
                "s3:ListMultipartUploadParts"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket/*",
                "arn:aws:s3:::amzn-s3-demo-bucket"
            ]
        }
    ]
}
```

------

**注意**  
 `Resource` 值務必包含這兩個項目。Aurora 需要儲存貯體本身和儲存貯體內所有對象的許可權限。  
根據您的使用案例，可能不需要在範例政策中新增所有許可。此外，還可能需要其他許可。例如，若您的 Amazon S3 儲存貯體經過加密，您便需要新增 `kms:Decrypt` 許可。

您可以使用下列步驟來建立 IAM 政策，以提供讓 Aurora 代您存取 Amazon S3 儲存貯體所需的最低許可。若要允許 Aurora 存取您的所有 Amazon S3 儲存貯體，您可以略過這些步驟，並使用 `AmazonS3ReadOnlyAccess` 或 `AmazonS3FullAccess` 預先定義的 IAM 政策，而不需自行建立。

**建立 IAM 政策以授權存取 Amazon S3 資源**

1. 開啟 [IAM 管理主控台](https://console.aws.amazon.com/iam/home?#home)。

1. 在導覽窗格中，選擇**政策**。

1. 選擇 **Create policy** (建立政策)。

1. 在 **Visual editor (視覺化編輯器)** 標籤中，選擇 **Choose a service (選擇服務)**，然後選擇 **S3**。

1. 請在 **Actions** (動作) 中選擇 **Expand all** (全部展開)，然後選擇 IAM 政策所需的儲存貯體許可和物件許可。

   物件許可是在 Amazon S3 中執行物件操作的許可，必須授予儲存貯體中的物件，而非儲存貯體本身。如需 Amazon S3 中執行物件操作所需許可的詳細資訊，請參閱[物件操作的許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-with-s3-actions.html#using-with-s3-actions-related-to-objects)。

1. 選擇 **Resources** (資源)，然後對 **bucket** (儲存貯體) 選擇 **Add ARN** (新增 ARN)。

1. 在 **Add ARN(s) (新增 ARN)** 對話方塊中，提供資源的詳細資訊，然後選擇 **Add (新增)**。

   指定允許存取的 Amazon S3 儲存貯體。例如，若要允許 Aurora 存取名為 *amzn-s3-demo-bucket* 的 Amazon S3 儲存貯體，請將 Amazon Resource Name (ARN) 值設為 `arn:aws:s3:::amzn-s3-demo-bucket`。

1. 如果 **object (物件)** 資源列出，請對 **object (物件)** 選擇 **Add ARN (新增 ARN)**。

1. 在 **Add ARN(s) (新增 ARN)** 對話方塊中，提供資源的詳細資訊。

   對於 Amazon S3 儲存貯體，請指定允許存取的 Amazon S3 儲存貯體。對於物件，您可以選擇 **Any (任何)**，以授權存取儲存貯體中的任何物件。
**注意**  
您可以將 **Amazon Resource Name (ARN)** 設為更具體的 ARN 值，以允許 Aurora 只能存取 Amazon S3 儲存貯體中的特定檔案或資料夾。如需如何為 Amazon S3 定義存取原則的詳細資訊，請參閱[管理 Amazon S3 資源的存取許可](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-access-control.html)。

1. (選用) 為 **bucket** (儲存貯體) 選擇 **Add ARN** (新增 ARN)，以將另一個 Amazon S3 儲存貯體新增至政策，並對此儲存貯體重複先前的步驟。
**注意**  
對於您想讓 Aurora 存取的每個 Amazon S3 儲存貯體，您可以重複此程序，在政策中新增對應的儲存貯體許可陳述式。(選擇性) 您也可以授權存取 Amazon S3 中的所有儲存貯體和物件。

1. 選擇 **Review policy (檢閱政策)**。

1. 在 **Name (名稱)** 輸入您的 IAM 政策名稱，例如 `AllowAuroraToExampleBucket`。當您建立要與 Aurora 資料庫叢集相關聯的 IAM 角色時，您可以使用此名稱。您也可以新增選用的 **Description (描述) **值。

1. 選擇 **Create policy** (建立政策)。

1. 完成「[建立 IAM 角色以允許 Amazon Aurora 存取 AWS 服務](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md)」中的步驟。