Amazon S3 中的政策和許可 - Amazon Simple Storage Service

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

Amazon S3 中的政策和許可

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

如需 Amazon S3 動作、資源和條件的完整清單,請參閱服務授權參考適用於 Amazon S3 的動作、資源和條件金鑰

如需 S3 資源類型對 S3 API 操作的許可的詳細資訊,請參閱Amazon S3 API 操作所需的許可

就其最基本意義而言,政策包含下列元素:

  • Resource— 政策適用的 Amazon S3 儲存貯體、物件、存取點或任務。使用儲存貯體、物件、存取點或任務的 Amazon 資源名稱 (ARN) 來識別資源。

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

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

    物件層級操作的範例:

    • "Resource": "arn:aws:s3:::bucket_name/*"對於存儲桶中的所有對象。

    • "Resource": "arn:aws:s3:::bucket_name/prefix/*"用於存儲桶中某個前綴下的對象。

    如需詳細資訊,請參閱Amazon S3 的政策資源

  • Actions— 對於每個資源,Amazon S3 支援一組操作。您可使用動作關鍵字,來識別允許 (或拒絕) 資源操作。

    例如,該s3:ListBucket權限允許用戶使用 Amazon S3 ListObjectsV2操作。s3:ListBucket權限是動作名稱不會直接對應至作業名稱的情況。) 如需有關使用 Amazon S3 動作的詳細資訊,請參閱 Amazon S3 的政策動作。如需 Amazon S3 動作的完整清單,請參閱 Amazon 簡單儲存服務API參考中的動作

  • Effect-當用戶請求特定操作時會產生什麼影響-這可以是或AllowDeny

    如果您未明確授予存取 (允許) 資源,則隱含地拒絕存取。您也可以明確拒絕存取資源。您可以這樣做以確保使用者無法存取資源,即使不同的原則授予存取權限也一樣。如需詳細資訊,請參閱《IAM使用指南》中的「IAMJSON策略元素:效果」。

  • Principal— 允許存取陳述式中動作和資源的帳戶或使用者。在儲存貯體政策中,委託人是身為此許可收件人的使用者、帳戶、服務或其他實體。如需詳細資訊,請參閱值區政策的主體

  • Condition— 政策生效時的條件。您可以使用... AWS用於在 Amazon S3 存取政策中指定條件的全金鑰和 Amazon S3 特定金鑰。如需詳細資訊,請參閱使用條件鍵值區政策範例

下列值區政策範例顯示EffectPrincipalAction、和Resource元素。此政策允許Akua帳戶中的使用者 123456789012 s3:GetObjects3:GetBucketLocation,以及儲存貯體上的 s3:ListBucket amzn-s3-demo-bucket1 Amazon S3 許可。

{ "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使用指南》中的《IAMJSON策略IAM和權限》以及《策略參考

許可委派

如果 AWS 帳戶 擁有一個資源,它可以將這些權限授予另一個 AWS 帳戶。 然後,該帳戶可以將這些權限或其子集委派給帳戶中的使用者。這稱為權限委派。但是從另一個帳戶接收權限的帳戶無法將權限跨帳戶委派給另一個帳戶 AWS 帳戶.

Amazon S3 儲存貯體和物件擁有權

儲存貯體與物件都是 Amazon S3 資源。依預設,只有資源擁有者可以存取這些資源。資源擁有者指的是 AWS 帳戶 創建資源。例如:

  • 所以此 AWS 帳戶 您用來建立值區和上傳物件的資源擁有這些資源。

  • 如果您使用上載物件 AWS Identity and Access Management (IAM) 使用者或角色認證, AWS 帳戶 使用者或角色所屬的物件擁有。

  • 值區擁有者可以將跨帳戶權限授予其他人 AWS 帳戶 (或其他帳戶中的用戶)上傳對象。在本案例中, AWS 帳戶 上傳物件擁有這些物件。值區擁有者對其他帳戶所擁有的物件沒有權限,但下列情況例外:

    • 儲存貯體擁有者支付帳單。儲存貯體擁有者可拒絕對任何物件之存取,或刪除儲存貯體中的任何物件,而無須考慮其擁有者為何。

    • 儲存貯體擁有者可封存任何物件或是還原封存的物件,而無須考慮擁有者為誰。封存指的是指用於存放物件的儲存體方案。如需詳細資訊,請參閱管理物件的生命週期

擁有者和請求身分驗證

對儲存貯體的所有請求可能是已驗證或未驗證。已驗證的請求,必須包含能驗證要求傳送者身分的簽章值,未驗證的請求則沒有。如需請求身分驗證的詳細資訊,請參閱「提出要求」。

儲存貯體擁有者可以允許未驗證的請求。例如,未經身份驗證 PutObject當值區具有公用值區政策,或是儲存貯體特別ACL授予或FULL_CONTROL存取All Users群組WRITE或匿名使用者時,就會允許要求。如需有關公用值區政策和公用存取控制清單 (ACLs) 的詳細資訊,請參閱「公有」的意義

所有未驗證的請求是由匿名使用者提出。此使用者會以特定ACLs的規範使用者 ID 來表示。65a011a29cdf8ec533ec3d1ccaae921c如果物件是透過未驗證的請求上傳至儲存貯體,則匿名使用者會擁有該物件。預設物件會ACL授與FULL_CONTROL匿名使用者做為物件的擁有者。因此,Amazon S3 允許未經驗證的請求擷取物件或修改物件。ACL

為了防止匿名使用者修改物件,建議您不要實作值區政策,允許匿名公開寫入值區,或使用允ACLs許匿名使用者寫入值區的存取權。您可以使用 Amazon S3 封鎖公開存取來強制此建議的行為。

如需封鎖公開存取的詳細資訊,請參閱 封鎖對 Amazon S3 儲存體的公開存取權。如需有關的更多資訊ACLs,請參閱存取控制清單 (ACL) 概觀

重要

我們建議您不要使用 AWS 帳戶 根使用者認證,以提出已驗證的要求。請改為建立IAM角色並授與該角色完整存取權。我們稱擁有此角色的使用者為管理員使用者。您可以使用指派給系統管理員角色的認證,而不是 AWS 帳戶 root 使用者認證, 與之互動 AWS 並執行工作,例如建立值區、建立使用者,以及授與權限。如需詳細資訊,請參閱 AWS 「IAM使用者指南中IAM的安全性登入資料和安全性最佳作法