

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

# Amazon S3 中的政策和許可
<a name="access-policy-language-overview"></a>

此頁面提供 Amazon S3 中儲存貯體和使用者政策的概觀，並說明 AWS Identity and Access Management (IAM) 政策的基本元素。您可透過以下每個所列元素的連結，取得該元素的詳細資訊以及使用範例。

如需 Amazon S3 動作、資源和條件索引鍵的完整清單，請參閱服務授權參考**中的 [Amazon S3 的動作、資源和條件索引鍵](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazons3.html)。

如需依 S3 資源類型列出 S3 API 操作許可的詳細資訊，請參閱[Amazon S3 API 操作所需的許可](using-with-s3-policy-actions.md)。

就其最基本意義而言，政策包含下列元素：
+ [Resource](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources) – 要套用政策的 Amazon S3 儲存貯體、物件、存取點或作業。使用儲存貯體、物件、存取點或任務的 Amazon Resource Name (ARN) 識別資源。

  儲存貯體層級操作的範例：

  `"Resource": "arn:aws:s3:::bucket_name"`

  物件層級操作的範例：
  + `"Resource": "arn:aws:s3:::bucket_name/*"` 代表儲存貯體中的所有物件。
  + `"Resource": "arn:aws:s3:::bucket_name/prefix/*"` 代表儲存貯體中具有特定字首的物件。

  如需詳細資訊，請參閱[Amazon S3 的政策資源](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-resources)。
+ [Actions](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions) – 針對每個資源，Amazon S3 支援一組操作。您可使用動作關鍵字，來識別允許 (或拒絕) 資源操作。

  例如，`s3:ListBucket` 許可允許使用者使用 Amazon S3 [https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) 操作 (`s3:ListBucket` 許可是動作名稱未直接映射到操作名稱的情況)。如需有關使用 Amazon S3 動作的詳細資訊，請參閱 [Amazon S3 的政策動作](security_iam_service-with-iam.md#security_iam_service-with-iam-id-based-policies-actions)。如需 Amazon S3 動作的完整清單，請參閱 Amazon Simple Storage Service API 參考**中的[動作](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.html)。
+ [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html) – 當使用者請求特定動作時會產生什麼效果，可能是 `Allow` 或 `Deny`。

  如果您未明確授予存取 (允許) 資源，則隱含地拒絕存取。您也可以明確拒絕存取資源。您可以這樣做以確保使用者無法存取資源，即使不同的原則授予存取權限也一樣。如需詳細資訊，請參閱 *IAM 使用者指南*中的 [IAM JSON 政策元素︰效果](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_effect.html)。
+ [Principal](security_iam_service-with-iam.md#s3-bucket-user-policy-specifying-principal-intro) – 允許存取陳述式中動作與資源的帳戶或使用者。在儲存貯體政策中，委託人是身為此許可收件人的使用者、帳戶、服務或其他實體。如需詳細資訊，請參閱[儲存貯體政策的主體](security_iam_service-with-iam.md#s3-bucket-user-policy-specifying-principal-intro)。
+ [Condition](amazon-s3-policy-keys.md) – 政策何時生效的條件。您可以使用 AWS通用金鑰和 Amazon S3 特定的金鑰，在 Amazon S3 存取政策中指定條件。如需詳細資訊，請參閱[使用條件索引鍵的儲存貯體政策範例](amazon-s3-policy-keys.md)。

下列範例儲存貯體政策顯示 `Effect`、`Principal`、`Action` 和 `Resource` 元素。此政策允許帳戶 `123456789012` 中的使用者 `Akua` 具有 `amzn-s3-demo-bucket1` 儲存貯體的 `s3:GetObject`、`s3:GetBucketLocation` 和 `s3:ListBucket` Amazon S3 許可。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Id": "ExamplePolicy01",
    "Statement": [
        {
            "Sid": "ExampleStatement01",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/Akua"
            },
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation",
                "s3:ListBucket"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket1/*",
                "arn:aws:s3:::amzn-s3-demo-bucket1"
            ]
        }
    ]
}
```

------

如需完整的政策語言資訊，請參閱《IAM 使用者指南》**中的 [IAM 中的政策和許可](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)以及 [IAM JSON 政策參考](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)。

## 許可委派
<a name="permission-delegation"></a>

如果 AWS 帳戶 擁有資源，則可以將這些許可授予另一個 AWS 帳戶。該帳戶則可以將這些許可或其中的一些許可，委派給帳戶中的使用者。這稱為「許可委派」**。但從另一個帳戶收到許可的帳戶，無法將許可跨帳戶委派給另一個 AWS 帳戶。

## Amazon S3 儲存貯體和物件擁有權
<a name="about-resource-owner"></a>

儲存貯體與物件都是 Amazon S3 資源。依預設，只有資源擁有者可以存取這些資源。資源擁有者是指 AWS 帳戶 建立資源的 。例如：
+ 您用來建立儲存貯體和上傳物件 AWS 帳戶 的 擁有這些資源。
+  如果您使用 AWS Identity and Access Management (IAM) 使用者或角色登入資料上傳物件， AWS 帳戶 則該使用者或角色所屬的 會擁有該物件。
+ 儲存貯體擁有者可將跨帳戶許可授予其他 AWS 帳戶 (或其他帳戶中的使用者)，允許其上傳物件。在此情況下，上傳物件的 AWS 帳戶 便擁有那些物件。儲存貯體擁有者沒有其他帳戶所擁有物件的許可，但以下例外：
  + 儲存貯體擁有者支付帳單。儲存貯體擁有者可拒絕對任何物件之存取，或刪除儲存貯體中的任何物件，而無須考慮其擁有者為何。
  + 儲存貯體擁有者可封存任何物件或是還原封存的物件，而無須考慮擁有者為誰。封存指的是指用於存放物件的儲存體方案。如需詳細資訊，請參閱[管理物件的生命週期](object-lifecycle-mgmt.md)。

### 擁有者和請求身分驗證
<a name="about-resource-owner-requests"></a>

對儲存貯體的所有請求可能是已驗證或未驗證。已驗證的請求，必須包含能驗證要求傳送者身分的簽章值，未驗證的請求則沒有。如需請求驗證詳細資訊，請參閱 Amazon S3 API 參考**中的[提出請求](https://docs.aws.amazon.com/AmazonS3/latest/API/MakingRequests.html)。

儲存貯體擁有者可以允許未驗證的請求。例如，當儲存貯體具有公有儲存貯體政策，或儲存貯體 ACL 明確授予 `WRITE` 或 `FULL_CONTROL` 存取權給 `All Users` 群組或匿名使用者時，就允許未驗證的 [https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectPUT.html) 請求。如需公有儲存貯體政策和公開存取控制清單 (ACL) 的詳細資訊，請參閱「[「公有」的意義](access-control-block-public-access.md#access-control-block-public-access-policy-status)」。

所有未驗證的請求是由匿名使用者提出。此使用者在 ACL 中是以特定的正式使用者 ID `65a011a29cdf8ec533ec3d1ccaae921c` 呈現。如果物件是透過未驗證的請求上傳至儲存貯體，則匿名使用者會擁有該物件。預設的 ACL 會授與 `FULL_CONTROL` 給匿名使用者作為物件的擁有者。因此，Amazon S3 會允許未驗證的請求擷取物件或修改其 ACL。

為了防止物件遭到匿名使用者修改，建議您不要實作會允許對您的儲存貯體進行匿名寫入的政策，或是使用會允許匿名使用者對您的儲存貯體的寫入存取權的 ACL。您可以使用 Amazon S3 封鎖公開存取來強制此建議的行為。

如需封鎖公開存取的詳細資訊，請參閱 [封鎖對 Amazon S3 儲存體的公開存取權](access-control-block-public-access.md)。如需 ACL 的詳細資訊，請參閱「[存取控制清單 (ACL) 概觀](acl-overview.md)」。

**重要**  
建議您不要使用 AWS 帳戶 根使用者登入資料提出已驗證的請求。而是建立 IAM 角色，然後授予該角色完整的存取。我們稱擁有此角色的使用者為*管理員使用者*。您可以使用指派給管理員角色的登入資料，而不是 AWS 帳戶 根使用者登入資料，來與 互動 AWS 和執行任務，例如建立儲存貯體、建立使用者和授予許可。如需詳細資訊，請參閱《IAM 使用者指南》**中的[AWS 安全憑證](https://docs.aws.amazon.com/general/latest/gr/root-vs-iam.html)和 [IAM 中的安全最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。