SEC02-BP02 使用暫時憑證
當進行任何類型的驗證時,最好是使用臨時憑證,而不是長期憑證,以降低或消除風險,例如憑證遭到意外洩露、共用或遭竊。
預期成果:為了降低長期憑證的風險,對於人員和機器身分,請盡可能使用臨時憑證。長期憑證會產生許多風險,例如,經由上傳到公有儲存庫而暴露。透過使用臨時憑證,您可大幅降低憑證遭到入侵的可能性。
常見的反模式:
-
開發人員使用取自 IAM 使用者的長期存取金鑰,而不是使用聯合從 CLI 取得暫時憑證。
-
開發人員將長期存取金鑰內嵌在程式碼中,並將該程式碼上傳到公有 Git 儲存庫。
-
開發人員將長期存取金鑰內嵌在行動應用程式中,之後在應用程式商店中提供該行動應用程式。
-
使用者與其他使用者共用長期存取金鑰,或是擁有長期存取金鑰的離職員工仍持有金鑰。
-
對機器身分可以使用暫時憑證時,卻使用長期存取金鑰。
未建立此最佳實務時的曝險等級:高
實作指引
對所有 AWS API 和 CLI 請求使用暫時安全憑證,而不是長期憑證。幾乎在任何情況下,對 AWS 服務的 API 和 CLI 請求都必須使用 AWS 存取金鑰簽署。您可以使用暫時或長期憑證簽署這些請求。您唯一應使用長期憑證 (又稱為長期存取金鑰) 的時候是在使用 IAM 使用者或 AWS 帳戶 根使用者時。當您聯合至 AWS 或透過其他方法擔任 IAM 角色時,系統會產生暫時憑證。每當您使用登入憑證存取 AWS 管理主控台 時,系統會為您產生暫時憑證以呼叫 AWS 服務。在幾種情況下,您將需要長期憑證,並能夠使用暫時憑證完成幾乎所有任務。
避免使用長期憑證而改用暫時憑證,同時實行減少使用 IAM 使用者並支持聯合和 IAM 角色的策略。雖然對人類和機器身分過去以來都是使用 IAM 使用者,我們現在建議不要使用它們以避免使用長期存取金鑰的風險。
實作步驟
真人身分
對於人力資源身分,例如員工、管理員、開發人員、操作員和客戶:
-
您應仰賴集中式身分提供者並要求人類使用者以聯合搭配身分提供者,使用臨時憑證存取 AWS。您可以直接聯合至各個 AWS 帳戶
或使用 AWS IAM Identity Center 和您選擇的身分提供者,為您的使用者進行聯合。與使用 IAM 使用者相比,聯合除了可消除長期憑證外,還提供一些優勢。您的使用者也可以從命令列進行直接聯合 ,或使用 IAM Identity Center 請求暫時憑證。這表示有少數使用案例會需要 IAM 使用者,或使用者需要長期憑證。
對於第三方身分:
-
當授權讓第三方 (例如軟體即服務 (SaaS) 提供者) 存取 AWS 帳戶 中的資源時,您可以使用跨帳戶角色和以資源為基礎的政策。此外,您可以針對 B2B SaaS 客戶或合作夥伴,使用 Amazon Cognito OAuth 2.0 授權用戶端憑證流程。
透過 Web 瀏覽器、用戶端應用程式、行動應用程式或互動式命令列工具存取您的 AWS 資源的使用者身分。
-
如果需要授權應用程式供消費者或客戶存取您的 AWS 資源,您可以使用 Amazon Cognito 身分集區或 Amazon Cognito 使用者集區來提供臨時憑證。憑證的許可是透過 IAM 角色來設定。您也可以為未驗證的訪客使用者,另外定義有限許可的 IAM 角色。
機器身分
對於機器身分,您可能需要使用長期憑證。在這些情況下,您應要求工作負載使用暫時憑證,並以 IAM 角色存取 AWS。
-
對於 Amazon Elastic Compute Cloud
(Amazon EC2),您可以使用適用於 Amazon EC2 的角色。 -
AWS Lambda
可讓您設定 Lambda 執行角色,授予服務許可以使用暫時憑證執行 AWS 動作。有許多其他類似的模型可供 AWS 服務使用 IAM 角色授予暫時憑證。 -
對於 IoT 裝置,您可以使用 AWS IoT Core 憑證提供者來請求暫時憑證。
-
對於內部部署系統或是在 AWS 之外執行並需要存取 AWS 資源的系統,您可以使用 IAM Roles Anywhere。
在某些情況下不支援臨時憑證,因此需要使用長期憑證。在這些情況下,定期稽核和輪換這些憑證並定期輪換存取金鑰。對於有嚴格限制的 IAM 使用者存取金鑰,請考慮下列其他安全措施:
-
授予有嚴格限制的許可:
-
遵守最低權限原則 (具體指定動作、資源和條件)。
-
考慮僅授予 IAM 使用者一個特定角色的 AssumeRole 操作。根據內部部署架構而定,此方法有助於隔離和保護長期 IAM 憑證。
-
-
在 IAM 角色信任政策中,限制允許的網路來源和 IP 位址。
-
監控用量並設定未使用許可或濫用的警示 (使用 AWS CloudWatch Logs 指標篩選器和警報)。
-
強制執行許可界限 (服務控制政策 (SCP) 和許可界限來彼此互補 - SCP 較為粗略,而許可界限較為精細。
-
實作程序來佈建並安全地儲存 (在內部部署保存庫中) 憑證。
其他適用於需要長期憑證的案例的選項包括:
-
建置自己的權杖供應 API (使用 Amazon API Gateway)。
-
在您必須使用長期憑證,或是使用 AWS 存取金鑰以外的憑證 (例如資料庫登入) 的情況下,您可以使用專為管理機密而設計的服務,例如 AWS Secrets Manager
。Secrets Manager 可簡化加密、輪換及安全儲存加密機密的工作。許多 AWS 服務都可使用 Secrets Manager 支援直接整合。 -
對於多重雲端整合,您可以根據來源憑證服務提供者 (CSP) 憑證使用聯合身分 (請參閱 AWS STS AssumeRoleWithWebIdentity)。
如需有關輪換長期憑證的詳細資訊,請參閱輪換存取金鑰。
資源
相關的最佳實務:
相關文件:
相關影片: