如何建立 AWS IAM 角色並將 S3 與 EC2 連接?
如何建立 AWS IAM 角色並將 S3 與 EC2 連接?

了解如何建立 AWS IAM 角色,並將 Amazon S3 與 Amazon EC2 連接,實現服務間順暢且安全的資料處理。

AWS IAM 提供多種方法來安全地管理其所提供的雲端服務。其中之一就是 IAM 角色(IAM Role),它讓使用者無需儲存憑證,從而降低未經授權存取的風險。在這種角色機制下,AWS 服務會被動態指派臨時憑證,以執行特定操作,確保安全性與彈性兼具。

在本文中,我們將介紹如何使用 IAM 角色讓 EC2 執行個體存取 S3。值得一提的是,將 S3 與 EC2 結合是最常見的雲端部署方式之一,廣泛應用於各種資料儲存與處理情境中。

使用 IAM 角色將 S3 與 EC2 整合有多項明顯優勢:
首先,它提供細緻的權限控管,可確保 EC2 執行個體只能執行明確授權的 S3 操作,強化安全性。
其次,它自動化憑證管理,無需手動更新或在程式碼中嵌入金鑰,大幅降低管理負擔與風險。
最後,透過 IAM 角色的權限分離機制,能提升 AWS 架構的可擴展性與可維護性,讓你在環境擴充或調整時,更容易管理資源存取權限。

先決條件

在設定 IAM 角色以整合 S3 與 EC2 之前,需要先完成以下幾項準備工作:

  1. 你必須擁有一個有效的 AWS 帳號,並能成功登入 AWS 管理主控台。此外,你還需要具備建立與管理 IAM 角色、啟動與設定 EC2 執行個體,以及建立與管理 S3 儲存貯體的權限,才能順利完成後續的整合與操作。
  2. 你必須在 AWS 帳號中至少擁有一個 EC2 執行個體和一個 S3 儲存貯體,這些資源將用於示範 IAM 角色如何協助這兩項服務之間的互動。

建立 IAM 角色

在 AWS 管理主控台中建立 IAM 角色包含幾個步驟。以下是建立一個專門讓 EC2 執行個體存取 S3 儲存貯體的角色方法:

首先,從 AWS 管理主控台進入 IAM 儀表板。進入後,從左側選單中選擇「角色」。

IAM 儀錶板

接著,你會看到目前使用者帳號下的所有現有角色。根據你的帳號設定,這些角色可能會有所不同。現在請點選「建立角色」按鈕。

IAM 角色

接著,你會看到目前使用者帳號下的所有現有角色。根據你的帳號設定,這些角色可能會有所不同。現在請點選「建立角色」按鈕。

IAM 角色建立:選擇受信任的實體類型

接下來,在「使用案例(Use case)」中選擇 EC2,然後點選「下一步」。為了讓這次示範更簡潔,我將僅專注於與示範直接相關的部分。

IAM 角色建立:選擇使用案例

在下一個畫面中,您將看到所有為 IAM 角色預先建立的政策。請在搜尋欄中輸入「s3read」,並選擇「AmazonS3ReadOnlyAccess」這項政策,這將賦予角色繼承者讀取 S3 檔案的權限。忽略「設定權限邊界(Set permissions boundary)」,然後點選「下一步」。

IAM 角色建立:新增權限政策

現在,請輸入角色名稱及簡短描述。

IAM 角色建立:命名角色

最後,請檢查所有設定內容,然後點選「建立角色(Create role)」。

IAM 角色建立:新增標籤

此操作將建立該角色。

將 IAM 角色附加至 EC2 執行個體

在 IAM 角色建立完成後,接下來要將該角色的權限附加至 EC2 執行個體。請前往 EC2 執行個體儀表板,選取目標 EC2 執行個體,接著在「動作(Actions)」下拉選單中選擇「安全性(Security)」,並點擊「修改 IAM 角色(Modify IAM Role)」。

將 IAM 角色附加至 EC2 執行個體

在此處,選擇我們剛剛建立的 IAM 角色,然後點選「更新 IAM 角色(Update IAM role)」。

選取新建立的 IAM 角色

因此,該 EC2 執行個體現在已擁有存取 S3 儲存貯體所需的所有權限。

從 EC2 執行個體存取 S3 儲存貯體

現在,讓我們從 EC2 執行個體存取 S3 儲存貯體。首先,登入您的 EC2 執行個體。如果您不是使用 AWS AMI 的 Amazon Linux,可能需要先安裝 AWS CLI 才能存取 S3 儲存貯體。

若要確認是否已安裝 AWS CLI,請執行以下指令:

aws –version

使用 IAM 角色從 EC2 存取 S3 儲存貯體

確認後,請執行以下指令:

aws s3 ls

此指令會列出您帳戶中、該區域內所有可用的 S3 儲存貯體。

成功存取 S3 儲存貯體

我們可以透過在 S3 控制台中查看,來確認這些儲存貯體的存在。

S3 儲存貯體儀表板

另外,讓我們也使用以下指令來查看該儲存貯體中的內容:

aws s3 ls s3://bucketname

讀取特定 S3 儲存貯體內容

憑藉我們擁有的權限,我們可以讀取檔案,也能將檔案複製到本地系統。若要複製檔案,您可以使用以下指令:

aws s3 cp s3://bucket/file

請將 bucket 替換為您的 S3 儲存貯體名稱,file 替換為檔案名稱。

從 S3 儲存貯體複製檔案

如果我們嘗試將檔案上傳至該儲存貯體,會發現出現「存取遭拒(Access Denied)」的錯誤訊息。

上傳檔案至 S3 儲存貯體

接著,前往我們先前建立的 IAM 角色,點選「新增權限(Add permissions)」,然後選擇「附加政策(Attach policies)」。

將新政策附加至角色

之後,新增「AmazonS3FullAccess」這項政策,這樣即可賦予我們的 EC2 執行個體寫入 S3 的權限。

新增權限

完成後,再次執行複製指令。這次操作將順利完成,不會出現任何問題。

上傳檔案至 S3 儲存貯體

這就是使用 IAM 角色的好處之一:您可以隨時變更其權限、將其附加至多個 EC2 執行個體或其他 AWS 服務,並且也能輕鬆刪除該角色。

如何卸除並刪除 IAM 角色

首先,若要卸除角色,請選擇相同的路徑:「動作(Actions)」>「安全性(Security)」>「修改 IAM 角色(Modify IAM role)」。

卸除 IAM 角色

接著,選擇「無 IAM 角色(No IAM Role)」,然後點選「更新 IAM 角色(Update IAM role)」。

從 EC2 移除 IAM 角色

接下來,輸入「Detach」作為確認。此操作將從 EC2 執行個體中移除該 IAM 角色的存取權限。

確認卸除 IAM 角色

接下來,若要刪除該角色,請前往先前建立的 IAM 角色頁面,然後點選「刪除(Delete)」按鈕。

刪除 IAM 角色

最後,再次點選「刪除(Delete)」以確認刪除操作。

進行刪除確認操作

這樣即可成功刪除該角色。

☁️ 準備好全面發揮 AWS 的強大功能,卻不知道從哪裡開始嗎?
從基礎架構建置、成本優化,到資安防護與自動化管理,Elite Cloud 協助您自信打造、擴展並掌握您的 AWS 環境。
👉 立即預約 Elite Cloud 專家諮詢,讓我們幫您高效又安全地實現 AWS 部署目標!

AWS AWS EC2 AWS IAM AWS S3 AWS 資安