Amazon S3 서명 버전 4 인증 관련 정책 키
다음 표에는 Amazon S3 정책에 있을 수 있는 Amazon S3 서명 버전 4 인증과 관련된 정책 키가 나와 있습니다. 버킷 정책에서 이러한 조건을 추가하여 서명 버전 4를 사용하여 요청이 인증될 때 특정 동작을 적용할 수 있습니다. 예시 정책은 서명 버전 4 관련 조건 키를 사용하는 버킷 정책 예제 섹션을 참조하세요.
| 적용 가능한 키 |
설명 |
s3:signatureversion
|
인증된 요청에 대해 지원하려는 AWS Signature의 버전을 식별합니다. 인증된 요청의 경우 Amazon S3는 서명 버전 4와 서명 버전 2를 모두 지원합니다. 버킷 정책에 이 조건을 추가하여 특정 서명 버전을 요구할 수 있습니다.
유효한 값:
"AWS"는 서명 버전 2를 식별함
"AWS4-HMAC-SHA256"은 서명 버전 4를 식별함 |
s3:authType
|
Amazon S3는 다양한 인증 방법을 지원합니다(요청 인증(AWS 서명 버전 4) 참조). 특정 인증 방법을 사용하도록 수신 요청을 제한하려면 선택적으로 이 조건 키를 사용할 수 있습니다. 예를 들어 요청 인증에 HTTP Authorization 헤더만 사용하도록 허용할 수 있습니다.
유효한 값:
REST-HEADER
REST-QUERY-STRING
POST
|
s3:signatureAge
|
인증된 요청에서 서명이 유효한 시간(밀리초)입니다.
이 조건은 다음에 적용됩니다.
서명 버전 2에서는 이 값이 항상 0으로 설정됩니다.
서명 버전 4에서는 서명 키가 최대 7일간 유효합니다. 따라서 서명도 최대 7일간 유효합니다. 이 조건을 사용하여 서명 연령을 추가로 제한할 수 있습니다. 자세한 내용은 서명 요청 소개 섹션을 참조하세요.
예시 값: 100
|
s3:x-amz-content-sha256
|
이 조건 키를 사용하여 버킷에서 서명되지 않은 콘텐츠를 허용하지 않을 수 있습니다.
서명 버전 4를 사용할 때 Authorization 헤더를 사용하는 요청에 대해 서명 계산에 x-amz-content-sha256 헤더를 추가한 다음 해당 값을 해시 페이로드로 설정합니다. 이 조건 키는 x-amz-content-sha256 헤더를 쿼리 문자열 파라미터로 지원하지 않습니다.
버킷 정책에서 이 조건 키를 사용하여 페이로드에 서명하지 않은 업로드를 거부할 수 있습니다. 예를 들어 Authorization 헤더를 사용하여 요청을 인증하지만 페이로드에 서명하지 않는 업로드를 거부합니다. 자세한 내용은 Authorization 헤더에 대한 서명 계산: 페이로드를 단일 청크로 전송(AWS 서명 버전 4) 섹션을 참조하세요.
유효한 값: UNSIGNED-PAYLOAD
|
서명 버전 4 관련 조건 키를 사용하는 버킷 정책 예제
다음 버킷 정책은 서명이 10분 이상 지난 경우 examplebucket의 객체에 대한 Amazon S3 미리 서명된 URL 요청을 모두 거부합니다.
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "Deny a presigned URL request if the signature is more than 10 min old",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::examplebucket3/*",
"Condition": {
"NumericGreaterThan": {
"s3:signatureAge": 600000
}
}
}
]
}
다음 버킷 정책은 요청 인증에 Authorization 헤더를 사용하는 요청만 허용합니다. 모든 POST 또는 미리 서명된 URL 요청은 거부됩니다.
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "Allow only requests that use Authorization header for request authentication. Deny POST or presigned URL requests.",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::examplebucket3/*",
"Condition": {
"StringNotEquals": {
"s3:authType": "REST-HEADER"
}
}
}
]
}
다음 버킷 정책은 요청 인증에 미리 서명된 URL을 사용하는 요청을 거부합니다.
- JSON
-
-
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"DenyUploadsUsingPresignedURL",
"Effect":"Deny",
"Principal":"*",
"Action":"s3:*",
"Resource":"arn:aws:s3:::amzn-s3-demo-bucket1/*",
"Condition":{
"StringEquals":{
"s3:authType":"REST-query-string"
}
}
}
]
}
다음 버킷 정책은 서명되지 않은 페이로드가 있는 업로드를 거부합니다.
- JSON
-
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "Deny uploads with unsigned payloads that use the Authorization header.",
"Effect": "Deny",
"Principal": "*",
"Action": "s3:*",
"Resource": "arn:aws:s3:::examplebucket3/*",
"Condition": {
"StringEquals": {
"s3:x-amz-content-sha256": "UNSIGNED-PAYLOAD"
}
}
}
]
}