Amazon Simple Storage Service(Amazon S3) 버킷 정책에서 전송 중 데이터의 암호화를 요구하도록 s3-bucket-ssl-requests-only AWS Config 규칙을 활성화했습니다. 내 버킷 정책이 이 규칙을 준수하는지 확인하고 싶습니다.
해결 방법
Amazon S3는 HTTP 요청과 HTTPS 요청을 모두 허용합니다. 기본적으로 Amazon S3는 AWS Management Console, AWS Command Line Interface(AWS CLI) 또는 HTTPS를 통해 요청을 보냅니다.
s3-bucket-ssl-requests-only 규칙을 준수하려면 버킷 정책이 HTTP 요청에 대한 액세스를 명시적으로 거부하는지 확인하십시오. HTTPS 요청을 허용하지만 HTTP 요청을 명시적으로 거부하지 않는 버킷 정책은 규칙을 준수하지 않을 수 있습니다.
버킷 정책에서 HTTP 또는 HTTPS 요청을 결정하려면 aws:SecureTransport 키를 확인하는 조건을 사용하십시오. 키 조건을 true로 설정하면 Amazon S3는 HTTPS를 통해 요청을 전송합니다. s3-bucket-ssl-requests-only 규칙을 준수하려면 요청이 "aws:SecureTransport": "false" 조건을 충족할 경우 HTTP 요청에 대한 액세스를 명시적으로 거부하는 버킷 정책을 생성하십시오.
s3-bucket-ssl-requests-only 규칙을 준수하는 버킷 정책
다음 예시 버킷 정책은 s3-bucket-ssl-requests-only 규칙을 준수합니다. 이 정책은 요청이 "aws:SecureTransport": "false" 조건을 충족하는 경우 버킷 및 객체에 대한 모든 작업을 명시적으로 거부합니다.
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowSSLRequestsOnly",
"Action": "s3:*",
"Effect": "Deny",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET",
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "false"
}
},
"Principal": "*"
}
]
}
s3-bucket-ssl-requests-only 규칙을 준수하지 않는 버킷 정책
다음 버킷 정책은 s3-bucket-ssl-requests-only 규칙을 준수하지 않습니다. 이 정책은 명시적인 거부 설명 대신 "aws:SecureTransport": "true" 조건을 충족하는 요청에 대한 액세스를 허용합니다. 이 명령문은 요청이 HTTPS를 사용하는 경우 버킷의 모든 객체에 대해 GetObject에 대한 익명 액세스를 허용합니다.
{
"Id": "ExamplePolicy",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "NOT-RECOMMENDED-FOR__AWSCONFIG-Rule_s3-bucket-ssl-requests-only",
"Action": "s3:GetObject",
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
],
"Condition": {
"Bool": {
"aws:SecureTransport": "true"
}
},
"Principal": "*"
}
]
}
참고: 사용 사례에 HTTPS를 통한 익명 액세스가 필요한 경우에만 위의 버킷 정책을 사용하십시오.
관련 정보
버킷 정책을 사용하고 심층 방어를 적용하여 Amazon S3 데이터를 보호하는 방법