해당 기사에서는 S3 Presigned URL을 정책의 조건문으로 구별하는 방안에 대해서 설명합니다.
사용 사례:
S3 Presiged URL로 들어오는 특정 요청을 구별하여 허용하거나 거부하고 싶을 경우, 타 조건문과 연계하여 Presigned URL로 접근하는 Access를 제한할 수 있습니다.
해결:
S3 Presigned URL은 SigV4 서명과 함께 Querystring으로 인증받습니다. 따라서, "s3:signatureversion": "AWS4-HMAC-SHA256", "s3:authType": "REST-QUERY-STRING" 조건 키를 사용할 수 있으며, 이 조건키는 IAM policy와 S3 bucket policy 모두에서 사용 가능합니다. [1]
예제 정책:
본 정책은 S3 Presigned URL을 통해 접근한 요청에 대해서 GetObject를 허용하는 IAM 정책입니다. 같은 방식으로 S3 Bucket policy, Deny 문에도 적용할 수 있습니다.
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":"s3:GetObject",
"Resource":"{S3-BUCKET-ARN}/*",
"Condition":{
"StringEquals":{
"s3:signatureversion":"AWS4-HMAC-SHA256",
"s3:authType":"REST-QUERY-STRING"
}
}
}
]
}
관련 정보
[1] Amazon S3 Signature Version 4 Authentication Specific Policy Keys - https://docs.aws.amazon.com/AmazonS3/latest/API/bucket-policy-s3-sigv4-conditions.html