雲端物件儲存 (Cloud Object Service, COS) 可與 Amazon S3 相容之物件儲存系統,並支援加密上傳與下載。用戶可透過s3cmd setpolicy 指令或 S3 Browser 圖形化介面等工具設定存取儲存體的存取規則,僅讓允許的來源 IP 存取,加強用戶的儲存體與檔案安全性。本文將教學如何以 s3cmd、S3 Browser 限制可存取儲存體的來源 IP。
前置作業
1. 建立 COS
建立方式請參考建立、刪除儲存體
2. 連線 COS
s3cmd 和 S3 Browser 安裝方式與連線 COS 儲存體設定方式請參考以下文件
3. 確認 COS 儲存體名稱、允許存取的來源 IP
- 您可以 (1) 透過
s3cmd ls指令 (2) S3 Browser 檢視所有公共/私有空間的儲存體名稱 - 確認您允許使用該儲存體的來源 IP 位址
操作步驟
Step 1. 編輯 JSON 規則檔案
JSON 規則檔案範本如下,僅允許 (Allow) 來源 IP 為 203.145.219.99/32 對 your-bucket-name 儲存體進行讀取和下載 (s3:GetObject) 的動作:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::your-bucket-name/*",
"Condition": {
"IpAddress": {
"aws:SourceIp": "203.145.219.99/32"
}
}
}
]
}
請將規則檔以下的項目更換成您適用的內容:
your-bucket-name更換成您的儲存體名稱203.145.219.99/32更換成您允許存取的 IP 位址範圍。- 更多 JSON 設定檔說明請參考此文件
Step 2. 對 bucket 設定 JSON 規則
-
s3cmd
- 建立名為 policy 的規則檔 (檔案名稱可自行定義),並進入編輯畫面:
nano policy.json - 複製貼上 Step 3 JSON 設定檔內容
- 建立名為 policy 的規則檔 (檔案名稱可自行定義),並進入編輯畫面:

-
- 點選
ctrl + O、Enter儲存並確認設定檔名稱 - 點選
ctrl + X離開編輯畫面 - 執行以下指令設定規則,
your-bucket-name請更換成您的儲存體名稱,即可設定成功s3cmd setpolicy policy.json s3://your-bucket-name
- 點選
-
S3 Browser
- 對 bucket 點選右鍵 > 選擇 Edit Bucket Policy

-
- 複製貼上 Step 1 JSON 設定檔內容 > 點選 Apply,即可設定成功

Step 3. 測試:非允許的 IP 無法檢視檔案
- COS 檔案 URL:https://your-bucket-name.cos.twcc.ai/your-file-name.extention
your-bucket-name:更換成 bucket 名稱your-file-name.extention:更換成 [檔案名稱.副檔名]
- 若是由非 Step 2 設定的 IP 範圍來連結檔案的 URL,就無法檢視檔案內容的,僅能看到 Access Denied 的畫面,確認規則設定成功!
