AWS Config 규칙 s3-bucket-ssl-requests-only 준수를 위해 어떤 S3 버킷 정책을 사용해야 합니까?

최종 업데이트 날짜: 2019년 10월 29일

Amazon Simple Storage Service(Amazon S3) 버킷 정책에 데이터 전송 중 암호화가 필요하도록 AWS Config 규칙 s3-bucket-ssl-requests-only를 활성화했습니다. 이 규칙을 준수하는 버킷 정책을 생성하려면 어떻게 해야 합니까? 

해결 방법

기본적으로 Amazon S3는 HTTP 요청과 HTTPS 요청을 모두 허용합니다. s3-bucket-ssl-requests-only 규칙을 준수하려면 버킷 정책이 HTTP 요청에 대한 액세스를 명시적으로 거부하는지 확인하십시오. HTTP 요청을 명시적으로 거부하지 않고 HTTPS 요청을 허용하는 버킷 정책은 규칙을 준수하지 않을 수 있습니다.

버킷 정책에서 HTTP 또는 HTTPS 요청을 확인하려면 키 "aws: SecureTransport"를 확인하는 조건을 사용합니다. 이 키가 true이면 요청이 HTTPS를 통해 전송됨을 의미합니다. s3-bucket-ssl-requests-only 규칙을 준수하려면 요청이 "aws: SecureTransport": "false"조건을 충족할 때 액세스를 명시적으로 거부하는 버킷 정책을 생성합니다. 이 정책은 HTTP 요청에 대한 액세스를 명시적으로 거부합니다.

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:::awsexamplebucket",
        "arn:aws:s3:::awsexamplebucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false"
        }
      },
      "Principal": "*"
    }
  ]
}

s3-bucket-ssl-requests-only 규칙을 준수하지 않는 버킷 정책

반면에 다음 버킷 정책은 규칙을 준수하지 않습니다. 이 정책은 명시적 거부문을 사용하는 대신 "aws: SecureTransport": "true" 조건을 충족하는 요청에 대한 액세스를 허용합니다. 이 문은 요청에 HTTPS를 사용하는 경우 버킷의 모든 객체에 대해 s3: GetObject에 대한 익명 액세스를 허용합니다. 사용 사례에 HTTPS를 통한 익명 액세스가 필요한 경우가 아니라면 이 유형의 버킷 정책을 피하십시오.

{
  "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:::awsexamplebucket/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }
      },
      "Principal": "*"
    }
  ]
}

이 문서가 도움이 되었습니까?

AWS에서 개선해야 할 부분이 있습니까?


도움이 필요하십니까?