AWS 安全登入資料 - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AWS 安全登入資料

當您與 AWS 互動時,您可以指定您的 AWS 安全登入資料 來驗證您的身分,以及您是否有權存取您所請求的資源。AWS 使用安全登入資料來驗證和授權您的請求。

例如,如果要從 Amazon Simple Storage Service (Amazon S3) 儲存貯體下載受保護的檔案,您的憑證必須允許此存取動作。如果您的憑證沒有顯示您有權下載檔案,AWS 會拒絕您的請求。不過,在公開共用的 Amazon S3 儲存貯體中下載檔案不需要 AWS 安全憑證。

AWS 中有不同的使用者類型。所有 AWS 使用者都有安全憑證。包含帳戶擁有者 (根使用者)、AWS IAM Identity Center 的使用者、聯合身分使用者和 IAM 使用者。

使用者擁有長期或暫時安全憑證。根使用者、IAM 使用者和存取金鑰具有不會過期的長期安全憑證。若要保護長期憑證,您應有現成的程序以管理存取金鑰變更密碼啟用 MFA

IAM 角色、AWS IAM Identity Center 的使用者 和聯合身分使用者具有暫時安全憑證。暫時安全憑證會在定義的一段時間或使用者結束工作階段後過期。暫時憑證的作用幾乎與長期憑證完全相同,而其差異如下:

  • 暫時安全憑證是「短期」的,如其名稱所暗示。其可設定為在任何地方持續幾分鐘到幾小時不等。在憑證到期後,AWS 不再辨識它們,或允許從 API 請求對其進行的任何類型的存取。

  • 暫時性安全憑證不會與使用者一起儲存,但會動態產生並在請求時提供給使用者。當暫時性安全憑證到期時 (或者即使在此之前),使用者可以請求新的憑證,只要使用者的請求仍具有可這麼做的許可。

因此,相較於長期憑證,暫時性憑證具有下列優點:

  • 您不必隨應用程式散發或內嵌長期 AWS 安全憑證。

  • 您可以提供 AWS 資源存取給使用者,而不必為其定義 AWS 身分。暫時憑證是角色和聯合身分的基礎。

  • 臨時安全憑證的存留期有限,因此當不再需要時,您不需要更新它們或明確予以撤銷。暫時性安全憑證到期之後,就無法重複使用。您可以指定憑證的有效期,達到最長限制。

安全考量

建議您在決定適用於 AWS 帳戶 的安全規定時,考量下列資訊:

  • 當您建立 AWS 帳戶 時,我們會建立帳戶根使用者。根使用者 (帳戶擁有者) 的憑證可以完整存取帳戶中的所有資源。您對根使用者執行的第一項任務是為 AWS 帳戶 授予其他使用者管理許可,以便將根使用者的使用量降到最低。

  • 您無法使用 IAM 政策來明確拒絕根使用者存取權。您只能使用 AWS Organizations 服務控制政策 (SCP) 來限制根使用者的許可。

  • 如果您忘記或遺失根使用者密碼,則必須擁有與您帳戶相關聯之電子郵件地址的存取權,才能重設密碼。

  • 如果遺失根使用者存取金鑰,則您必須能夠以根使用者身分登入您的帳戶,才能建立新的金鑰。

  • 請勿將您的根使用者用於日常任務。請將其用來執行只能由根使用者執行的任務。如需檢視需要您以根使用者身分登入的任務完整清單,請參閱 需要根使用者憑證的任務

  • 安全登入資料是帳戶專屬的資料。如果您可以存取多個 AWS 帳戶,則每個帳戶都有單獨憑證。

  • 政策會決定使用者、角色或使用者群組成員可以對哪些 AWS 資源執行什麼動作,以及在哪些情況下執行。使用政策可安全地控制對 AWS 帳戶 中 AWS 服務 與資源的存取權限。如果您必須修改或撤銷許可以回應安全性事件,則您可以刪除或修改政策,而不是直接變更身分。

  • 請務必將緊急存取 IAM 使用者的登入憑證,以及為程式設計存取而建立的任何存取金鑰儲存在安全的位置。如果您遺失存取金鑰,則必須登入帳戶建立新金鑰。

  • 強烈建議您使用 IAM 角色和聯合身分使用者提供的暫時憑證,而不要使用 IAM 使用者和存取金鑰提供的長期憑證。

聯合身分

聯合身分是指具有外部身分的使用者,其被授予可用來存取安全 AWS 帳戶 資源的暫時 AWS 憑證。外部身分可以是來自公司身分存放區 (例如 LDAP 或 Windows Active Directory) 或來自第三方 (例如 Login with Amazon, Facebook, or Google)。聯合身分不會使用 AWS Management Console 或 AWS 存取入口網站登入。

若要啟用聯合身分登入 AWS,您必須建立包含 https://signin.aws.amazon.com/federation 的自訂 URL。如需更多詳細資訊,請參閱 啟用自訂身分識別代理存取主 AWS 控台

如需聯合身分的詳細資訊,請參閱 身分提供者與聯合

多重要素驗證 (MFA)

多重要素驗證 (MFA) 為可以存取 AWS 帳戶 的使用者提供多一層級的安全防護。若要提升安全性,我們建議您要求對 AWS 帳戶根使用者 憑證和所有 IAM 使用者進行 MFA。如需更多詳細資訊,請參閱 在中使用多因素身份驗證(MFA) AWS

當您啟用 MFA 並登入 AWS 帳戶 時,系統會提示您輸入登入憑證,以及 MFA 裝置產生的回應,例如代碼、觸控或輕觸或生物特征掃描。當您新增 MFA 時,您的 AWS 帳戶 設定和資源會更加安全。

預設情況下,MFA 未激活。您可以前往安全憑證頁面或 AWS Management Console 中的 IAM 儀表板,針對 AWS 帳戶根使用者 啟用並管理 MFA 裝置。如需針對 IAM 使用者啟用 MFA 的詳細資訊,請參閱 為中的使用者啟用 MFA 裝置 AWS

如需有關使用多重要素驗證 (MFA) 裝置登入的詳細資訊,請參閱 透過您的 IAM 登入頁面來使用 MFA 裝置

程式設計存取權

您提供 AWS 存取金鑰,以便對 AWS 進行程式設計呼叫,或使用 AWS Command Line Interface 或 AWS Tools for PowerShell。建議盡可能使用短期存取金鑰。

當您建立長期存取金鑰時,會將存取金鑰 ID (例如 AKIAIOSFODNN7EXAMPLE) 和私密存取金鑰 (例如 wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY) 建立為一個集合。只有在您建立的時候才可使用私密存取金鑰進行下載。如果您沒有下載私密存取金鑰,或者遺失,則必須重新建立。

在許多情況下,您不需要永遠不會過期的長期存取金鑰 (就像您為 IAM 使用者建立存取金鑰時一樣)。反之,您可以建立 IAM 角色並產生暫時安全憑證。暫時安全憑證包含存取金鑰 ID 和私密存取金鑰,但其中也包含指出憑證何時到期的安全權杖。臨時安全資料過期之後即不再有效。

開頭為 AKIA 的存取金鑰 ID 是 IAM 使用者或 AWS 帳戶 根使用者的長期存取金鑰。開頭為 ASIA 的存取金鑰 ID 是使用 AWS STS 操作建立的暫時憑證存取金鑰。

若使用者想要與 AWS Management Console 之外的 AWS 互動,則需要程式設計存取權。授予程式設計存取權的方式取決於存取 AWS 的使用者類型。

若要授予使用者程式設計存取權,請選擇下列其中一個選項。

哪個使用者需要程式設計存取權? To By

人力身分

(IAM Identity Center 中管理的使用者)

使用臨時憑證簽署對 AWS CLI、AWS SDK 或 AWS API 的程式請求。

請依照您要使用的介面所提供的指示操作。

IAM 使用臨時憑證簽署對 AWS CLI、AWS SDK 或 AWS API 的程式請求。 請遵循《IAM 使用者指南》使用臨時憑證搭配 AWS 資源中的指示。
IAM

(不建議使用)

使用長期憑證簽署 AWS CLI 或 AWS API 的程式設計要求 (直接或使用 AWS SDK)。

請依照您要使用的介面所提供的指示操作。

長期存取金鑰的替代方案

對於許多常見使用案例,有可以替代長期存取金鑰的方案。為了提高帳戶安全性,請考慮以下事項。

  • 請勿在應用程式程式碼或程式碼儲存庫中內嵌長期存取金鑰和私密存取金鑰 - 而是使用 AWS Secrets Manager 或其他密碼管理解決方案,因此您不必以純文字形式對金鑰進行硬式編碼。然後,應用程式或用戶端可以在需要時擷取密碼。如需詳細資訊,請參閱《AWS Secrets Manager 使用者指南》中的什麼是 AWS Secrets Manager?

  • 盡可能使用 IAM 角色產生暫時安全憑證 - 務必盡可能使用機制頒發暫時安全憑證,而非長期存取金鑰。暫時安全憑證更加安全,因為它們不會與使用者一起儲存,但會動態產生並在請求時提供給使用者。臨時安全憑證的生命週期有限,因此您不必對其進行管理或更新。提供暫時存取金鑰的機制包含 IAM 角色或 IAM Identity Center 使用者的身分驗證。對於在 AWS 以外執行的機器,您可以使用 AWS Identity and Access Management Roles Anywhere

  • 針對 AWS Command Line Interface (AWS CLI) 或 aws-shell 使用長期存取金鑰的替代方案 – 替代方案包含以下內容。

    • AWS CloudShell 是以瀏覽器為基礎、預先驗證身分的 Shell,您可以直接從 AWS Management Console 啟動。您可以透過偏好的 Shell (Bash、PowerShell 或 Z shell),對 AWS 服務 執行 AWS CLI 命令。當您這樣做時,無需下載或安裝命令列工具。如需詳細資訊,請參閱《AWS CloudShell 使用者指南》中的什麼是 AWS CloudShell?

    • AWS CLI Version 2 與 AWS IAM Identity Center (IAM Identity Center) 整合。您可以驗證使用者並提供短期憑證來執行 AWS CLI 命令。若要進一步了解,請參閱《AWS IAM Identity Center 使用者指南》中的整合 AWS CLI 與 IAM Identity Center,以及《AWS Command Line Interface 使用者指南》中的設定 AWS CLI 以使用 IAM Identity Center

  • 請勿為需要存取應用程式或 AWS 服務 的人類使用者建立長期存取金鑰 – IAM Identity Center 可以產生暫時存取憑證供外部 IdP 使用者存取 AWS 服務。這樣就不需要在 IAM 中建立和管理長期憑證。在 IAM Identity Center 中,建立可授予外部 IdP 使用者存取權的 IAM Identity Center 許可集。然後,將 IAM Identity Center 的群組指派給所選 AWS 帳戶 中的許可集。如需詳細資訊,請參閱《AWS IAM Identity Center 使用者指南》中的 AWS IAM Identity Center 是什麼連接至外部身分提供者以及許可集

  • 不要將長期存取金鑰存放在 AWS 運算服務中 - 而是將 IAM 角色指派給運算資源。這會自動提供暫時憑證以授予存取權。例如,當建立連接至 Amazon EC2 執行個體的執行個體設定檔時,可以將 AWS 角色指派給執行個體,並使其可用於所有應用程式。執行個體設定檔包含該角色,並且可讓 Amazon EC2 執行個體上執行的程式取得臨時憑證。若要進一步了解,請參閱利用 IAM 角色來授予許可給 Amazon EC2 執行個體上執行的應用程式

使用您的 AWS 憑證存取 AWS

AWS 需要不同類型的安全憑證,具體取決於您存取 AWS 的方式以及您是哪種 AWS 使用者類型。例如,在使用存取金鑰對 AWS 進行程式設計呼叫時,使用 AWS Management Console 的登入憑證。此外,您使用的每個身分,無論是帳戶根使用者、AWS Identity and Access Management (IAM) 使用者、AWS IAM Identity Center 使用者或聯合身分,在 AWS 中都有唯一的憑證。

如需有關如何根據您的使用者類型登入 AWS 的逐步說明,請參閱《AWS 登入使用者指南》中的如何登入 AWS