如何讓完美的讓USER只能存取一個 S3 bucket - 使用AWS Organizations

前陣子遇到一個這樣的需求, 外部的USER想用傳輸軟體上傳一些圖檔到 S3 ,做為靜態網站使用。直覺上這不是什麼難事, IAM 權限設定一下即可。

但是實際研究了一下, 無論IAM Policy如何設計, 對於S3 第一層的Bucket 列表, 只有兩種選擇, 全部列表出來或是全部隱藏. 並不能列出某一個特定Bucket 給USER看, 這造成兩個問題:

  1. 我不想讓USER(可能是外部USER甚至包商等等), 從S3 Bucket列表名稱裡,猜到公司的一些資訊.
  2. 有些第三方的S3上下傳軟體,依賴著這個List功能, 如果你隱藏了S3 Bucket List, 軟體會判定登入有問題而拒絕進一步操作.

AWS 官方Forum也證明了這個限制(2017/03)

--

使用 AWS Organizations

AWS Organizations是在2016年底 re:Invent 推出的新功能, 簡單來說, 就是管理AWS多帳號的功能。這邊指的多帳號,並不是IAM帳號,而是AWS Root Account. 當公司組織很大, 可以使用這功能開幾個帳號給下面單位使用 …

more ...

AWS Tagging Strategies 筆記

2016年春天, AWS 推出一個小頻道叫做 AWS Answers , 它是 AWS 架構師撰寫的說明文件和解決方案的地方。您可以在這裡找到各種主題的常見問題解答,像是:如何防範DDOS、如何架一個直播平台等等. 是一個值得挖寶的好所在。

什麼是 AWS Tag

AWS 允許客戶對AWS的資源 (例如:EC2) 標記標籤, 你可以標記像是測試機、正式機, 或者研發部門、業務部門這樣的metadata, 當然你可以同時標記多種維度的標籤.

最後你會在你的Detail 帳單.CSV裡看到你標記的標籤, 只要用Excel 的自動篩選功能就可以用各種維度來分析你的成本.

cost-allocation.png

當然,這不只是分析成本才可以使用, 在維運的角度也可以用得上. 例如找出所有的EC2測試機、或者找出任何沒有標籤的EC2機器.

Best Practice 最佳做法

  • Tag 命名習慣要規範,例如大小寫.
  • Tag 的設計考量到以下幾個維度: 權限控制、成本追蹤、自動化、組織
  • 多一點Tag 比少一點Tag好 …
more ...

Optimizing the Data Tier in Serverless web Applications 課程筆記

繼續學習 re:Invent 2016 的 Serverless 系列課程. 這一堂內容主要是講Serverless架構中,有關於資料層這方面的一些重點提示.

Data tier options on AWS

選項

後端資料層的選項大概有這幾種, 依適合的場合來選擇.

  • DynamoDB
  • ElastiCache
  • RDS
  • Redshift

DynamoDB use cases

NoSQL 與 SQL 各有擅場, 這邊舉了一些DynamoDB適合的場景

  • 線上廣告: Ad serving, ID lookup ..
  • IoT: Tracking state, metadata and readings from millions of devices ..
  • Gaming: 排行榜, session information..
  • Mobile & Web …
more ...

練習題: 匯入IP國家資料庫至DynamoDB - Part 1 解析資料

IP與地理資訊對應資料庫,在很多場合都會用到, 例如網路廣告業、線上遊戲產業、各種影片、直播鎖區的需求等等. 以前知道有一些免費的這類資料可供下載, 我想試試看將資料灌到 NoSQL 也就是 AWS DynamoDB裡,並測試一下效能如何.

下載資料庫

根據 stackoverflow 鄉民的討論串: Best IP to Country Database , 免費資料庫有下列兩種, 大部分人都推薦 前者Maxmind 的產品. 這類資料庫的付費模式大都相同, 免費的資料庫涵蓋了各個國家的ip對照表, 而更詳細的城市、經緯度對照則要付費(年費超過1,000美金).

  • Maxmind 公司的 GeoIP2 資料庫
  • ip2nation

下載

http://dev.maxmind.com/geoip/geoip2/geolite2/ --

解壓縮

--

裡面的資料有三類:

  • IPv4 資料庫
  • IPv6 …
more ...