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 헤더를 사용하는 조건부 삭제만 허용

이 버킷 정책을 사용하면 ETag 값이 포함된 If-Match 헤더가 있는 DeleteObjectDeleteObjects 요청을 사용하는 조건부 삭제만 허용할 수 있습니다. 모든 비조건부 삭제는 거부되고 조건부 삭제는 통과됩니다.

{ "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 헤더를 사용하는 조건부 삭제만 허용

이 버킷 정책을 사용하면 * 값이 포함된 If-Match 헤더가 있는 DeleteObjectDeleteObjects 요청을 사용하는 조건부 삭제만 허용할 수 있습니다. 모든 비조건부 삭제는 거부되고 조건부 삭제는 통과됩니다.

{ "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" } } } ] }