Amazon S3 버킷에 TLS 1.2 이상을 적용하려면 어떻게 해야 하나요?

2분 분량
0

고객이 이전 버전의 TLS를 사용합니다. Amazon Simple Storage Service(S3) 버킷의 콘텐츠에 액세스할 때 고객이 최신 TLS 버전을 사용하도록 적용하고 싶습니다.

간략한 설명

전송 중 데이터에는 최신 암호화 프로토콜을 사용하는 것이 좋습니다. Amazon S3에 연결할 때 TLS 버전 1.2 이상을 사용하도록 하려면 버킷 보안 정책을 업데이트하세요.

참고: 고객이 TLS 버전 1.2 이상을 사용하여 사용자 S3 버킷에 저장된 콘텐츠에 액세스해야 합니다.

AWS용 TLS 버전 지원 중단에 관한 자세한 내용을 보려면 모든 AWS API 엔드포인트에 대한 최소 TLS 프로토콜 수준이 되는 TLS 1.2를 참고하세요.

해결 방법

사용자가 S3 버킷에 연결할 때 TLS 버전 1.2 이상을 사용하도록 하려면 사용자의 버킷에 연결된 리소스 기반 정책을 사용하세요.

TLS 버전 1.2 이상이 필요한 버킷 정책을 연결하려면 다음 단계를 완료하세요.

  1. Amazon S3 콘솔을 엽니다.

  2. 목록에서 버킷을 선택합니다.

  3. 권한 탭을 선택합니다.

  4. 버킷 정책에서 편집을 선택합니다.

  5. 차단하려는 암호화 프로토콜에 액세스를 거부하는 정책을 추가합니다. 예를 들어 다음 정책을 사용해 1.2 이전 버전의 TLS를 사용하는 모든 HTTPS 요청을 거부할 수 있습니다.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "EnforceTLSv12orHigher",
          "Principal": {
            "AWS": "*"
          },
          "Action": [
            "s3:*"
          ],
          "Effect": "Deny",
          "Resource": [
            "arn:aws:s3:::DOC_EXAMPLE_BUCKET/*",
            "arn:aws:s3:::DOC_EXAMPLE_BUCKET"
          ],
          "Condition": {
            "NumericLessThan": {
              "s3:TlsVersion": 1.2
            }
          }
        }
      ]
    }

    이 정책은 HTTPS를 적용하여 전송 중 데이터의 보안을 강화합니다.

    워크로드에 Amazon S3 HTTP 트래픽이 필요한 경우 다음 정책을 사용합니다. 이 정책은 HTTP 트래픽을 허용하고 TLS 1.2 이전 버전의 HTTPS 트래픽을 차단합니다.

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "UpdateTLSv12",
          "Effect": "Deny",
          "Principal": {
            "AWS": "*"
          },
          "Action": "s3:*",
          "Resource": "arn:aws:s3:::DOC_EXAMPLE_BUCKET/*",
          "Condition": {
            "Bool": {
              "aws:SecureTransport": "true"
            },
            "NumericLessThan": {
              "s3:TlsVersion": "1.2"
            }
          }
        }
      ]
    }

S3에 최신 암호화 프로토콜을 사용하고 있는지 확인

새 정책을 테스트하려면 다음 curl 명령 예시를 실행해 특정 레거시 프로토콜을 사용하는 HTTPS 요청을 만듭니다.

curl https://${BUCKET\_NAME}.s3.us-east-1.amazonaws.com/image.png -v --tlsv1.0 --tls-max 1.0

예제 curl 명령은 Amazon S3에서 요청이 TLS 버전 1.2 이상을 사용하지 않는다고 감지하므로 액세스 거부됨을 반환합니다.

참고: 기본적으로 curl은 요청을 익명으로 보냅니다. 버킷이 비공개인 경우 모든 TLS 버전에 403 액세스 거부 오류가 발생합니다. curl을 사용해 테스트할 때는 Amazon S3의 사전 서명된 URL을 생성하여 프라이빗 개체에 액세스하세요.

AWS 서비스 엔드포인트에 대한 이전 TLS 연결을 식별하는 AWS CloudTrail Lake를 사용하는 것이 좋습니다. CloudTrail Lake 이벤트 데이터 저장소를 구성하여 관리 이벤트 또는 데이터 이벤트를 캡처할 수 있습니다.

AWS 공식
AWS 공식업데이트됨 7달 전