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

최종 업데이트 날짜: 2021년 4월 27일

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

해결 방법

참고: Amazon S3는 전송 중 암호화와 유휴 시 암호화를 제공합니다. 전송 중 암호화는 HTTPS를 나타내고 유휴 시 암호화는 클라이언트 측 또는 서버 측 암호화를 나타냅니다.

Amazon S3는 HTTP 요청과 HTTPS 요청을 모두 허용합니다. 기본적으로 요청은 AWS 관리 콘솔, AWS 명령줄 인터페이스(AWS CLI) 또는 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:::DOC-EXAMPLE-BUCKET",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ],
      "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:::DOC-EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "true"
        }
      },
      "Principal": "*"
    }
  ]
}

이 문서가 도움이 되었나요?


결제 또는 기술 지원이 필요합니까?