### S3 S3 (Simple Storage Service) 是 AWS 其中一個服務,主要用來儲存一些東西,可以是檔案,可以是文字,可以是什麼都可以。 當然雖然佢個名話自己係 simple... 但佢其實真係一 D 都唔 simple。又或者 simple 只係解作佢個功能好單純只係儲存東西。而東西可以被什麼人存取,怎樣寫入,權限等等... 就可以玩到好複雜。 ### Cloudfront Cloudfront 是一個由 AWS 提供的 CDN 服務,可以將你的資源 cache 去佢地既 edge location 度,等每個地區的人都可以用最少既時間去取得佢想要既資源。 ### S3 檔案可以在 Public access 每一個放到 S3 的 Object 也是會有自己的 ACL (Access control list) 來控制權限,可以做得到一些很細緻的調整。不過在新版的 S3 內,就加入了 Bucket Policy 這個東西,這個可以說是整個 Bucket 內的權限描述。 不過上面要用到 Bucket Policy 的是有個前設,就是只可以套用到 Object owner 是 Bucket owner 的 Object 上。 我們可以通過 Cloudfront 設立新的 Distribution,在 origin 選取現有的 S3 Bucket。然後設定一個 OAI (Origin access identity),而這個 identity 就可以加入到 S3 的 Bucket Policy 內的 Principal 來限制 Cloudfront 存取 : ```js "Principal": { "AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity EH1HDMB1FH2TC" } ``` 這樣就可以無痛把 S3 的內容經 Cloudfront public 出街了。