제 고객은 이전 TLS 버전을 사용합니다. Amazon Simple Storage Service(S3) 버킷에 저장된 콘텐츠에 액세스할 때 최신 TLS 버전을 사용하도록 적용하고 싶습니다. Amazon S3 버킷에 TLS 1.2 이상을 사용하도록 적용하려면 어떻게 해야 하나요?
간략한 설명
전송 중인 데이터에 최신 암호화 프로토콜을 사용하는 것이 가장 좋습니다. 버킷의 보안 정책을 업데이트하여 Amazon S3에 연결할 때 TLS 1.2 이상을 사용하도록 적용할 수 있습니다.
참고: 고객이 TLS 1.2 이상을 사용하지 않는 경우 S3 버킷에 저장된 콘텐츠에 액세스할 수 없습니다.
해결 방법
버킷에 연결된 리소스 기반 정책을 사용하여 S3 버킷에 대한 모든 연결에 TLS 1.2 이상을 사용하도록 적용할 수 있습니다.
TLS 버전 1.2 이상이 필요한 버킷 정책을 설정하려면
- S3 콘솔로 이동합니다.
- 목록에서 버킷을 선택합니다.
- 권한(Permissions) 탭으로 이동합니다.
- 버킷 정책에서 **편집(Edit)**을 선택합니다.
- 차단하려는 암호화 프로토콜에 대한 액세스를 거부하는 정책을 추가합니다. 예를 들어, 다음 정책을 사용하여 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
}
}
}
]
}
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 이상을 사용하지 않는 요청을 감지하면 액세스 거부를 반환합니다.
AWS CloudTrail Lake를 사용하여 AWS 서비스 엔드포인트에 대한 이전 TLS 연결을 식별하는 것이 가장 좋습니다. CloudTrail Lake 이벤트 데이터 저장소를 구성하여 관리 이벤트 또는 데이터 이벤트를 캡처할 수 있습니다. CloudTrail Lake의 해당 CloudTrail 이벤트는 TLS 버전 1.2를 표시하여 고객이 최신 보안 정책을 사용해 Amazon S3에 연결함을 확인합니다.