在 Amazon S3 儲存貯體上強制執行條件式刪除 - Amazon Simple Storage Service

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

在 Amazon S3 儲存貯體上強制執行條件式刪除

透過使用 Amazon S3 儲存貯體政策,您可以針對一般用途儲存貯體中的物件強制執行具有條件式刪除的If-Match標頭。如果If-Match標頭不存在,則會使用 拒絕請求403 Access Denied。儲存貯體政策是以資源為基礎的政策,您可以使用這些政策來將存取許可授予儲存貯體及其中物件。只有儲存貯體擁有者可建立政策與儲存貯體的關聯。如需儲存貯體政策的詳細資訊,請參閱「Amazon S3 的儲存貯體政策」。

下列範例示範如何使用儲存貯體政策中的條件,強制用戶端使用 If-Match HTTP 標頭。

範例 1:僅允許使用具有 ETag值的 If-Match 標頭進行條件式刪除

您可以使用此儲存貯體政策,僅允許使用 DeleteObjectDeleteObjects請求的條件式刪除,其中包含具有 ETag值的 If-Match 標頭。所有非條件式刪除都會遭到拒絕,並且會通過條件式刪除。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConditionalDeletes", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:DeleteObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "Null": { "s3:if-match": "false" } } }, { "Sid": "AllowGetObjectBecauseConditionalDeleteIfMatchETag", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*" } ] }

範例 2:僅允許使用具有 *值的 If-Match 標頭進行條件式刪除

您可以使用此儲存貯體政策,僅允許使用 DeleteObjectDeleteObjects請求的條件式刪除,其中包含具有 *值的 If-Match 標頭。所有非條件式刪除都會遭到拒絕,並且會通過條件式刪除。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowConditionalDeletes", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/Alice" }, "Action": "s3:DeleteObject", "Resource": "arn:aws:s3:::amzn-s3-demo-bucket/*", "Condition": { "Null": { "s3:if-match": "false" } } } ] }