本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon S3 中的政策和許可
本頁提供 Amazon S3 中儲存貯體和使用者政策的概觀,並說明 AWS Identity and Access Management (IAM) 政策的基本元素。您可透過以下每個所列元素的連結,取得該元素的詳細資訊以及使用範例。
如需 Amazon S3 動作、資源和條件的完整清單,請參閱服務授權參考中適用於 Amazon S3 的動作、資源和條件金鑰。
就其最基本意義而言,政策包含下列元素:
-
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-當用戶請求特定操作時會產生什麼影響-這可以是或
Allow
。Deny
如果您未明確授予存取 (允許) 資源,則隱含地拒絕存取。您也可以明確拒絕存取資源。您可以這樣做以確保使用者無法存取資源,即使不同的原則授予存取權限也一樣。如需詳細資訊,請參閱《IAM使用指南》中的「IAMJSON策略元素:效果」。
-
Principal— 允許存取陳述式中動作和資源的帳戶或使用者。在儲存貯體政策中,委託人是身為此許可收件人的使用者、帳戶、服務或其他實體。如需詳細資訊,請參閱 值區政策的主體。
-
Condition— 政策生效時的條件。您可以使用 AWS全金鑰和 Amazon S3 特定金鑰,在 Amazon S3 存取政策中指定條件。如需詳細資訊,請參閱 使用條件鍵值區政策範例。
下列值區政策範例顯示Effect
Principal
、Action
、和Resource
元素。此政策允許
帳戶中的使用者 Akua
123456789012
s3:GetObject
s3:GetBucketLocation
,以及儲存貯體上的 s3:ListBucket
Amazon S3 許可。amzn-s3-demo-bucket1
{ "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 帳戶 便擁有那些物件。值區擁有者對其他帳戶所擁有的物件沒有權限,但下列情況例外:
-
儲存貯體擁有者支付帳單。儲存貯體擁有者可拒絕對任何物件之存取,或刪除儲存貯體中的任何物件,而無須考慮其擁有者為何。
-
儲存貯體擁有者可封存任何物件或是還原封存的物件,而無須考慮擁有者為誰。封存指的是指用於存放物件的儲存體方案。如需詳細資訊,請參閱 管理儲存生命週期。
-
擁有者和請求身分驗證
對儲存貯體的所有請求可能是已驗證或未驗證。已驗證的請求,必須包含能驗證要求傳送者身分的簽章值,未驗證的請求則沒有。如需請求身分驗證的詳細資訊,請參閱「提出要求」。
儲存貯體擁有者可以允許未驗證的請求。例如,當值區具有公用值區政策,或者當值區特別ACL授予WRITE
或FULL_CONTROL
存取All
Users
群組或匿名使用者時,便會允許未驗證的PutObject要求。如需有關公用值區政策和公用存取控制清單 (ACLs) 的詳細資訊,請參閱「公有」的意義。
所有未驗證的請求是由匿名使用者提出。此使用者會以特定ACLs的規範使用者 ID 來表示。65a011a29cdf8ec533ec3d1ccaae921c
如果物件是透過未驗證的請求上傳至儲存貯體,則匿名使用者會擁有該物件。預設物件會ACL授與FULL_CONTROL
匿名使用者做為物件的擁有者。因此,Amazon S3 允許未經驗證的請求擷取物件或修改物件。ACL
為了防止匿名使用者修改物件,建議您不要實作值區政策,以允許匿名公開寫入值區,或使用允ACLs許匿名使用者寫入值區的存取權。您可以使用 Amazon S3 封鎖公開存取來強制此建議的行為。
如需封鎖公開存取的詳細資訊,請參閱 封鎖對 Amazon S3 儲存體的公開存取權。如需有關 ACLs 的詳細資訊,請參閱 存取控制清單 (ACL) 概觀。