Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

AWS IAM 設定教學:生成訪問密鑰以用於 S3 配置

最後更新:2025年3月4日架構

本文為 圖片上傳 AWS S3 系列教學,第 13 篇:

  1. AWS S3 是什麼?
  2. boto3 與 django-storages:如何在 Django 中對接 AWS S3
  3. AWS S3 與 IAM:圖片上傳功能的權限管理指南
  4. S3 與 Postgres 的比較與應用
  5. Amazon S3 物件所有權設定解析
  6. AWS S3「阻止所有公開訪問」設定說明
  7. Amazon S3 儲存桶版本控制完整指南
  8. 如何設定 S3 儲存桶的「預設加密」?—— 初學者指南
  9. S3 儲存桶標籤(Tags)簡單介紹:讓你的 S3 管理更輕鬆!
  10. AWS S3 物件鎖定功能入門指南
  11. AWS S3 公開存取權完整指南
  12. AWS CORS 預檢請求與設定指南
  13. AWS IAM 設定教學:生成訪問密鑰以用於 S3 配置 👈 所在位置
  14. django-storages 基本配置:讓應用程式連接 S3 存儲桶
  15. Django-storages 的完整配置教學:從隱密性到快取控制
  16. Django-storages 完整配置指南:從文件存儲到訪問路徑
  17. Django-storages 配置:環境變數設定
  18. Django-storages 與 STORAGES 配置:未來相容性的最佳實踐
  19. 如何在 Django 中移除 DEBUG URL 的靜態檔案配置

建議閱讀本文前,先閱讀完 圖片上傳功能 系列文

AWS S3 是一個用於存儲靜態文件和其他資源的雲端服務。

為了讓應用程式能夠安全地與 AWS S3 通信,我們需要通過 AWS IAM(身份與訪問管理)創建一個專屬用戶,並分配適當的權限。

此用戶的主要目的,是允許應用程式使用 訪問密鑰(Access Key ID 和 Secret Access Key) 來上傳圖片或執行其他 S3 操作,而不是使用 AWS 管理控制台進行手動管理。

以下是生成這些密鑰的具體步驟。


如何生成 AWS 訪問密鑰

登入 AWS 管理控制台

  1. 打開瀏覽器,進入 AWS 官方網站
  2. 點擊右上角的 「登入」,輸入你的 AWS 帳號與密碼進入管理控制台主頁面。

進入 IAM 服務

  1. 在 AWS 管理控制台的頂部搜索欄中,輸入 「IAM」,點擊進入「身份與訪問管理」服務頁面。
  2. IAM 是 AWS 的身份與訪問管理服務,用於控制用戶和資源的訪問權限。

創建一個新用戶

  1. 在左側選單中,點擊 「用戶(Users)」,然後點擊 「添加用戶(Add users)」。
  2. 輸入用戶名稱:
    • 這個名稱可以描述該用戶的用途,例如 django_s3_user。
  3. 提供 AWS 管理控制台訪問權限的選擇:

注意:在創建用戶過程中,會出現「向用戶提供 AWS 管理控制台的訪問權限」的選項。以下是選擇的建議:

  1. 不勾選(推薦)
    • 如果這個用戶只需要程序化地與 AWS S3 進行交互(例如通過 API 操作 S3 存儲桶),不需要登入 AWS 管理控制台,則可以不勾選此選項。安全性優點:該用戶將無法登入 AWS 控制台,降低帳號被攻擊的風險。
    勾選(可選)
    • 如果你希望該用戶能夠登入 AWS 控制台來手動管理 S3 資源,則可以勾選此選項,並設置一個登入密碼。

推薦選擇:如果你只是為 Django 專案配置 S3 上傳功能,建議選擇 不勾選,使該用戶只用於程序化訪問。

分配用戶權限

在這個步驟,你需要選擇如何分配該用戶的權限。以下是三種常見的權限分配方式:

選項 1:直接附加策略(簡單快速)

  1. 在「直接附加現有策略」選項中,搜索並選擇 AmazonS3FullAccess 策略。
  2. AmazonS3FullAccess 的作用:
    • 允許用戶對所有 S3 存儲桶進行完整的操作,包括上傳、下載和刪除文件。

選項 2:添加用戶到組(適合多用戶管理)

  1. 如果你有多個用戶需要共享同樣的權限,建議創建一個「用戶組」。
  2. 在「添加用戶到組」中,創建一個組並附加 AmazonS3FullAccess 策略。
  3. 將新用戶分配到這個組中。

選項 3:自定義策略(進階安全設置)

如果你只希望該用戶訪問特定的 S3 存儲桶,或者限制某些操作,可以使用自定義策略。以下是一個只允許訪問特定存儲桶的範例:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::my-django-bucket",
        "arn:aws:s3:::my-django-bucket/*"
      ]
    }
  ]
}
  • 解析:
    • s3:* 表示允許所有 S3 操作(上傳、下載、刪除)。
    • Resource 限定該用戶僅對名為 my-django-bucket 的存儲桶及其內部文件擁有操作權限。

推薦選擇

  • 對於新手或需要快速部署的情況,選擇 AmazonS3FullAccess 策略 是最簡單的方式。
  • 如果有安全需求,可以稍後調整為自定義策略。

確認並創建用戶

  1. 檢查用戶名稱、訪問類型(是否允許登入控制台)和分配的策略是否正確。
  2. 點擊 「創建用戶(Create user)」。

保存訪問密鑰(Access Key 和 Secret Key)

  1. 在用戶創建完成後,你將看到該用戶的 Access Key ID 和 Secret Access Key。
  2. 保存密鑰:
    • 點擊 「下載 .csv 文件」,將密鑰文件保存到安全的位置。
    • 或者手動複製密鑰並保存到一個安全的密鑰管理工具中。
  3. 注意:
    • 這些密鑰只會顯示一次,若遺失則需要重新生成。

這部分完成後,你已經成功創建了一個具備 S3 訪問權限的用戶,並生成了其訪問密鑰。

這些密鑰將在接下來配置 Django 或其他應用程式時使用。

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

架構

目錄

  • 如何生成 AWS 訪問密鑰
  • 登入 AWS 管理控制台
  • 進入 IAM 服務
  • 創建一個新用戶
  • 分配用戶權限
  • 確認並創建用戶
  • 保存訪問密鑰(Access Key 和 Secret Key)