與 AWS SDK 結合使用的 AWS IAM 存取金鑰的最佳實踐

與 AWS SDK 結合使用的 AWS IAM 存取金鑰的最佳實踐

我想知道大公司用於以程式設計方式存取多個 AWS 服務的最佳實踐,因為有多個程式需要存取 different-2 服務,那麼如何管理它?他們是否為不同的 2 個服務的每個程式創建了多個存取密鑰,還是創建了一個可以存取所有服務的存取密鑰?

答案1

AWS資源(例如EC2 / Lambda /等)的最佳實踐是使用IAM角色,詳細這裡。簡而言之,您不是為伺服器建立用戶,而是建立一個角色,該服務可以假設該角色具有一組與 EC2 伺服器關聯的權限。

具有角色的伺服器在運行時會獲得「臨時」憑證,以便它可以存取 IAM 角色允許的任何服務。當我說「臨時」時,提供給服務的憑證的有效期很短,可能是 24 小時,但當它們過期時,會頒發新的憑證。這通常是透明的,除非您正在編寫使用它們的軟體,在這種情況下您必須偶爾檢查它們。我可能不太清楚細節,但或多或​​少是正確的。

AWS 具有預先定義的策略,可以讓定義角色變得更容易。

例如,您可以定義角色“具有此角色的 EC2 伺服器可以推送到 SQS、從 SQS 拉取、執行此 lambda 函數”,並且任何未明確授予的操作都會被拒絕。有時需要進行一些試驗才能獲得所需的權限。最小權限是最好的,這樣如果 EC2 伺服器等資源受到損害,它就沒有 AWS 的管理員權限,也無法刪除所有內容或開始加密挖掘。

如果您在一家大公司從事 AWS 工作,我建議您接受一些 AWS 培訓。 AWS 架構師線上培訓 您至少需要與 Cloud Guru 等機構合作。 AWS 很複雜。我已經在 AWS 全職工作多年,但我每天都能學到新東西。

答案2

首先,您需要預先定義資源存取策略(如 SQS、EC2、ElastiCache 等)。之後,您可以新增具有程式存取權限的使用者並以安全的方式儲存憑證,或使用角色將其指派給服務以進行存取。例如:建立 IAM 角色來存取 RDS 並將其指派給 ec2 實例,然後嘗試從 ec2 實例存取我們的資料庫。

相關內容