Internal Notes : Public S3 bucket
S3 Bucket yang diset public dari bucket policy saat ini untuk beberapa product AFAIK ada 2 tipe:
- Static assets tiap product (product images dll)
- Product Voucher
Untuk tipe 1
- Sekarang sebagian besar (atau malah semua) diakses end users via productasset cluster karena disana ada image processing dll.
Flow nya :
end users -> productassets cloudfront E2DHAXFK8Q9J10 [1] -> productasset-lb (lbext) -> productasset-app
- Beberapa bucket baru ada yang non public dan hanya role nya productasset-app yang digrant untuk get object. Ini berarti productassets harus buat presigned url supaya cloudfront bisa ambil object nya.
- kenapa gak direct S3 bucket -> Cloudfront? karena product team rely ke image processing di productasset-app
- productasset-app ini juga dipakai untuk ambil resource dari 3rd party, dan URL nya Public
- Dengan cara sekarang di productasset jadi ada dua tipe URl public dan non public
- Ada S3 bucket yang publicly accessible cnt-atr-image, TOSD-3695 [2] warning nya [3]. Bucket ini contain public static asset, plan nya di serve sama imgix. imgix.com support private access ke s3 bucket tapi cuma support IAM credential dan gak support IAM role. Karena public asset, instead of nambahin resource IAM user dan overhead untuk rotate IAM user bucket ini dibuat public.
Untuk tipe 2
Ada beberapa bucket salah satunya https://tvlk.slack.com/archives/G0448T5NH/p1532577827000087
Ini dibuat public karena naming nya ada yang random kayak uuid jadi relatif susah diguess (meskipun tetap bisa).
Afaik Link ke voucher ini ada di email yang dikirim ke customer waktu booking. Selain bucket-bucket baru yang kita provision, object voucher yang di bucket traveloka
juga publicly accessible untuk beberapa path (dari bucket policy).
Untuk tipe 1 mungkin bisa diskusi sama content team plan mereka gimana kalau mau decom productasset-app. Apakah mau ganti image resize pakai lambda@edge [4] atau pakai imgix.com.
Kalau pakai imgix.com apakah kita akan support manage IAM user untuk akses private ke s3 bucket atau open public kayak sekarang aja.
Referensi :
[1] https://console.aws.amazon.com/cloudfront/home#distribution-settings:E2DHAXFK8Q9J10
[2] https://29022131.atlassian.net/browse/TOSD-3695
[3] https://tvlk.slack.com/archives/G0448T5NH/p1532005368000157
[4] https://aws.amazon.com/blogs/networking-and-content-delivery/resizing-images-with-amazon-cloudfront-lambdaedge-aws-cdn-blog/