생성 이틀 차에 1,000달러가 넘는 AWS S3 청구서가 발행되었습니다

AWS S3 사용자의 게시물로, 이 사용자는 2일 차에 비어 있는 버킷으로 인해 1,000달러짜리 청구서를 받게 되었습니다.

문제의 원인은 주로 비용이 발생하는 버킷 호출에 있었으며, 해당 사용자는 "bucket-crap"과 같은 이름의 버킷을 생성한 것이 문제였습니다. 이 이름은 기업들이 널리 사용하는 것으로 보이는 어떤 애플리케이션의 기본 이름이었습니다.

그러나 이 사례는 해당 서비스가 심각한 문제를 가지고 있을 수 있음을 드러냈습니다. 악성 사용자가 해당 버킷의 이름을 알고 있다면 수천 번의 호출을 생성할 수 있기 때문입니다. 이를 통해 과도한 비용이 발생할 수 있으며, 이는 현재 “DoW”(Denial of Wallet, 지갑 거부)라고 불리는 현상입니다. 버킷에 대한 접근 권한이 없더라도, 거부된 호출조차도 비용을 발생시키기 때문입니다.

상세 정보는 아래 링크에서 확인하세요:
https://medium.com/@maciej.pocwierz/how-an-empty-s3-bucket-can-make-your-aws-bill-explode-934a383cb8b1

AWS가 이 문제를 조사하고 있는 것으로 보입니다:

S3를 업로드로 사용하는 Discourse 사이트에서 이런 일이 발생한 보고는 아직 받지 못했습니다.

사실 그렇게 생각하지는 않지만, 몇 가지 예방 조치를 취해두는 것이 나쁘지는 않습니다.

그래서 CDN 사용을 권장하는 또 다른 이유가 되겠네요. 적어도 버킷 이름을 확인하는 것을 더 어렵게 만들어 주니까요.

실제로 저도 이 문제를 확인했고, 많은 불평이 쏟아졌습니다.

Discourse는 기본적으로 업로드 버킷 이름을 숨기도록 설계되어 있지 않으며, 그 사이 며칠간 아무도 저희 버킷을 사용하지 않기를 바라고 있었습니다.

가장 나쁜 점은 공격을 관찰하더라도 그것을 막을 수 있는 방법이 전혀 없다는 것입니다.

via Jeff Barr on Twitter: Jeff Barr ☁️ on X: "Update: S3 engineers are working to make unauthorized requests that customers did not initiate free of charge. This change will cover a range of HTTP 3xx/4xx status codes, including all of those cited in the article. We're moving quickly and we plan to share more details this … / X

업데이트: S3 엔지니어들은 고객이 시작하지 않은 무단 요청에 대해 무료로 처리할 수 있도록 작업 중입니다.

이 변경 사항은 기사에서 언급된 모든 코드를 포함하여 HTTP 3xx/4xx 상태 코드 범위를 적용합니다. 우리는 빠르게 진행 중이며 이번 주에 더 많은 세부 정보를 공유할 계획입니다.