使用 AWS IAM Policy 設定 S3 Bucket 底下特定目錄權限

如何有效控制 AWS User 能看到哪些功能,以及執行哪些操作,最仰賴的就是 AWS Identity and Access Management (簡稱 IAM),IAM 可以讓管理者透過 UI 或自定義 JSON 格式來客製化使用者權限。剛好最近跟其他團隊合作到一個專案,需求就是開發者透過 Web 進行 AI Model 訓練,訓練前 SageMaker 會將使用者的 Dataset 下載到容器內,接著開始訓練,而團隊將此下載 Dataset 動作記錄到 AWS S3 Bucket 的 syslog 目錄內,確保檔案存取紀錄。最後將目錄底下的檔案,開權限給客戶進行查看,避免管理者或其他 User 不小心存取到別人的 Dataset 資料。

log

一般來說在 Bucket 內會有許多 Sub-Folder,而 AWS 透過 IAM 方式設定 User 只能存取特定的目錄。可以參考 AWS 官方這篇文章『Writing IAM Policies: Grant Access to User-Specific Folders in an Amazon S3 Bucket』。

[Read More]

Minio 從 Docker 容器移除 healthcheck 腳本

minio golang

Minio 是一套開源專案的 Object 儲存容器,如果你有使用 AWS S3,相信要找一套代替 S3 的替代品,一定會想到這套用 Go 語言開發的 Minio 專案。讓您在公司內部也可以享有 S3 的儲存容器,不需要變動任何程式碼就可以無痛從 AWS S3 搬到公司內部。剛好最近在整合 Traefik 搭配 Minio,由於 Minio 原先已經內建 healthcheck 腳本,所以當運行 Minio 時,使用 docker ps 正常來說可以看到類似 Up 7 weeks (healthy) 字眼,但是 Minio 運行了三分鐘之後,狀態就會從 healthy 變成 unhealthy,造成 Traefik 會自動移除 frontend 的對應設定,這樣 Web 就無法顯示了。我在 Udemy 上面有介紹如何用 Golang 寫 healthcheck,大家有興趣可以參考看看,coupon code 可以輸入 GOLANG2019

[Read More]