[AWS]S3限制只讓CloudFront存取
@ GordonWei · Wednesday, Apr 1, 2020 · 1 minute read · Update at Apr 1, 2020

弱弱自己的部落格圖庫是使用AWS S3 & AWS CloudFront

但基於安全性與最佳練習,弱弱不想讓該AWS S3 Bucket隨便公開給別人存取。

所以使用了CloudFront Origin Access Identity搭配AWS S3 Bucket Policy來限制存取。

S3 Bucket這部分就不多說明了,僅說明CloudFront OAICloudFront設定,並且修改S3 Policy

流程大概是:

  • 建立CloudFront OAI(Origin Access Identity)
  • 設定CloudFront ODN(Origin Domain Name)
  • 修改S3 Bucket Policy
  • 驗證

不多說,上圖!

oai01 進入到CloudFront Service後點選左下角的Origin Access Identity

oai02 點擊Create Origin Access Identity

oai03 在跳出的頁面輸入comment

oai04 OAI就建好囉

oai05 接著要建立CloudFront

oai06 新增一個Disreibutions並選擇Web

oai07 Origin Domain Name選擇S3 Bucket

oai08 這邊要稍微注意一下,不要又新增另一個OAI了。另外因為等等要演示S3 Policy的部分,所以這邊並沒有讓它自動更新Policy

oai09 接下來要設定以及調整一下CNAME跟預先申請好的ACM

到了這一部分,CloudFront的部分已經設定好了,在Status變成Deployed前,我們可以先去設定S3 Policy

oai10 主要要看Principal這個部分,要設定為"AWS":"arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity Your_OAI_ID"

oai11 接著我們來驗證一下,開啟S3 Static WebSite Hosting複製EndPoint

oai12 在瀏覽器貼上後會發現跳出AccessDenied的訊息

oai13 如果我們改用CNAME後(Route53或自管DNS)的URL,就會正常讀取

當然如果需要保護的更嚴謹一點,可以在CloudFront前面再加上AWS WAF

這部分弱弱就沒有設定了(因為費用問題XDDD)

GordonWei's blog

4g-dongle 4g-lte 518 active-directory activity ad alcatel always-free amd-apu apache arm associate aws aws-cdk aws-certified aws-cli aws-efs aws-lex aws-nuke aws-s3 aws-saa aws-security aws-ssm aws-sso bind bind-view blog brew catalina centos7 cfn-flip change-swap chatbot clean-cache clean-resources cloudfront cups deeplearning delete-sns developer directory-service dlink-dcs930l docker docker-error domain dvac01 ec2 ec2-mount-efs ec2-ssm error export-ovf fat32-to-ntfs freeradius gcloud gcp gcp-change-account git git-error github github-error google-adsens google-cloud-platform grub hh41 homebridge homekit homekit-ui http https huawei-e3372 hugo hugo-blog hugo-post ios ios-run-python iphone-backup ipv6-apt iso-to-usb job-bank json json-dumps keras lambda latin ldap ldap3 letsencrypt likecoin linux linux-vnc lte-dongle mac mac-backup mail-server mi-home migration ms-ad multiple-account mysql mysql-error mysql-federated netapp npm npm-upgrade ntfs oai on-premise openwebmail oracle-cloud orange-pi peering pip-error pip-install printer python python-access-ad python2 python3 radius radius-mysql radius3.0 raspberry-pi raspberry-pi-zero reset-password resize-img resize-sd-partition root router rpi-camera s3 s3-error s3-policy samba samba-error scs-c01 session-manage sns solution-architect-associate ssl ssm sysops system-manager systems-manager table-sync time-machine time_wait tls typeerror ubuntu ubuntu-18.04 ubuntu16.04 uniout update-error usb usb-install vmware-player volume-lock vpc web-server win10 windows xiaomi yaml zimbra 廣告 永久免費 無法更新索引 燒光碟 自動搶 阿爾卡特
aws
gcp
iot
mac
oci

© 2020 GordonWei's Blog

Powered by Hugo with theme Dream.

Experience

2019 - Now / 104人力銀行 - DevOps 工程師

2018 - 2019 / 104人力銀行 - Net 工程師

2016 - 2018 / 全林實業股份有限公司 - 系統部協理

2015 – 2016 / 恩據優資訊工作室 – 負責人

2014 – 2015 / 安盟科技股份有限公司 – 資深IT工程師

2013 – 2014 / 上海鷺豐農業科技有限公司 – 系統工程師

2010 – 2012 / 104 人力銀行 – 維護工程師

2008 - 2009 / 典匠資訊 – MIS

Projects

  • 2019/09 - now 104人力銀行 - AWS Account 回收暨IaC專案
  • 2018/10 - 2018/12 104人力銀行 - DR Site 協助建置
  • 2018/03 - 2018/05 全林實業 - 工研院人臉辨識與使用者行為分析專案
  • 2018/04 - 2018/05 全林實業 - 嘉義公車站無線網路專案
  • 2017/06 - 2018/05 全林實業 - 新加坡無線網路專案
  • 2017/05 - 2018/05 全林實業 - 捷運無線網路專案
  • 2017/01 - 2017/04 全林實業 - 弋楊科技遊覽車專案
  • 2016/12 - 2017/04 全林實業 - 亞太好行網重構、建置
  • 2016/12 - 2017/02 全林實業 - 愛巴士無線網路專案
  • 2016/11 - 2017/01 全林實業 - 泰國Free AD Wifi專案
  • 2016/10 - 2016/12 全林實業 - 桃園客運無線網路專案
  • 2016/09 - 2016/12 全林實業 - 怡客咖啡廳無線網路專案
  • 2016/07 - 2017/07 全林實業 - 主要系統規劃、重構與建置
  • 2014/09 - 2015/04 安盟科技 - 機房架構規劃rebuild / CRM系統開發客製
  • 2013/07 – 2014/07 上海鷺豐農業科技 - 研發農業環境監控系統(Arduino)
  • 2011/11 – 2012/06 104人力銀行 - 協助導入虛擬化技術專案 (Citrix Xen Server、Desktop)

About

GordonWei

小弟是一位沒錢又沒閒的普通人, 只能靠自學以及不斷的實作來吸取經驗。

希望可以把自己的經驗留存下來,讓彼此的能力更進一步!!

認證