搭配 CodeCommit 使用 IAM:Git 憑證、SSH 金鑰和 AWS 存取金鑰 - AWS Identity and Access Management

搭配 CodeCommit 使用 IAM:Git 憑證、SSH 金鑰和 AWS 存取金鑰

CodeCommit 是一項受管版本控制服務,可在 AWS 雲端中託管私有的 Git 儲存庫。若要使用 CodeCommit,請將 Git 用戶端設定為與 CodeCommit 儲存庫通訊。作為此組態的一部分,您提供 CodeCommit 可用於對您進行身分驗證的 IAM 憑證。IAM 支援 CodeCommit 有三種類型的憑證:

  • Git 憑證,一種 IAM 產生的使用者名稱和密碼對,可用於透過 HTTPS 與 CodeCommit 儲存庫進行通訊。

  • SSH 金鑰,一種本機產生的公有私有金鑰對,您可以將其與 IAM 使用者關聯,以透過 SSH 與 CodeCommit 儲存庫進行通訊。

  • AWS 存取金鑰,您可以與隨附於 AWS CLI 的憑證協助程式一起使用,透過 HTTPS 與 CodeCommit 儲存庫通訊。

注意

您無法使用 SSH 金鑰或 Git 憑證來存取另一個 AWS 帳戶中的儲存庫。若要了解如何為另一個 AWS 帳戶中的 IAM 使用者和群組設定置對 CodeCommit 儲存庫的存取權,請參閱 AWS CodeCommit 使用者指南中的使用角色設定 AWS CodeCommit 儲存庫的跨帳戶存取

如需有關每個選項的詳細資訊,請參閱下列各節。

與 CodeCommit 一起使用 Git 憑證和 HTTPS (建議)

使用 Git 憑證後,您可以為 IAM 使用者產生靜態的使用者名稱和密碼對,然後將這些憑證用於 HTTPS 連線。您還可以將這些憑證用於支援靜態的 Git 憑證的任何第三方工具或整合開發環境 (IDE)。

由於這些憑證對於所有受支援的作業系統都是通用的,並且與大多數憑證管理系統、開發環境和其他軟體開發工具相容,因此建議使用此方法。您可以隨時重設 Git 憑證的密碼。您還可以使憑證處於非作用中,或者在不再需要時刪除它們。

注意

您無法為 Git 憑證選擇自己的使用者名稱或密碼。IAM 為您產生這些憑證,有助於確保它們符合 AWS 的安全標準和 CodeCommit 中的安全儲存庫。您只能在產生憑證時作一次下載。請確定將憑證儲存在安全的位置。如有需要,您可以隨時重設密碼,但這樣做會使用舊密碼設定的任何連線無效。在連線之前,必須重新設定連線以使用新密碼。

如需詳細資訊,請參閱下列主題:

注意

產生 Git 憑證後變更 IAM 使用者的名稱不會變更 Git 憑證的使用者名稱。使用者名稱和密碼保持不變,且仍然有效。

若要輪換服務特定的憑證

  1. 除了目前正在使用的設定之外,還要建立第二個特定於服務的憑證設定。

  2. 更新您的所有應用程式,以使用新設定的憑證並驗證應用程式是否正常工作。

  3. 將原始憑證的狀態變更為「非作用中」。

  4. 確認您的所有應用程式仍在運作。

  5. 刪除非作用中特定於服務的憑證

與 CodeCommit 一起使用的 SSH 金鑰和 SSH

使用 SSH 連接,您可以在本機電腦上建立 Git 和 CodeCommit 用於 SSH 身分驗證的公有和私有金鑰檔案。您將公有金鑰與 IAM 使用者關聯,並將私有金鑰存放在本機電腦上。如需詳細資訊,請參閱下列主題:

注意

公有金鑰必須以 ssh-rsa 格式或 PEM 格式編碼。公有金鑰的最小位元長度為 2048 位元,最長為 16384 位元。這與您上傳的檔案大小不同。例如,您可以產生 2048 位元索引鍵,產生的 PEM 檔案長度為 1679 位元組。如果以其他格式或大小提供公有金鑰,則會看到錯誤訊息,指出該金鑰格式無效。

搭配 AWS CLI 憑證協助程式和 CodeCommit 使用 HTTPS

作為使用 Git 憑證進行 HTTPS 連線的替代方法,只要 Git 需要透過 AWS 進行身分驗證以和 CodeCommit 儲存庫進行互動,您就可以允許 Git 使用 IAM 使用者憑證或 Amazon EC2 執行個體角色的密碼編譯簽章版本。這是 CodeCommit 儲存庫不需要 IAM 使用者的唯一連線方法。這也是使用聯合身分存取和臨時憑證的唯一方法。除非您的業務需要需要聯合身分存取或使用臨時憑證,否則強烈建議建立和使用 IAM 使用者進行存取。如需詳細資訊,請參閱下列主題:

AWS CLI 憑證協助程式與其他憑證協助程式系統不相容,例如 Keychain Access 或 Windows Credential Management。當使用憑證協助程式設定 HTTPS 連線時,會有額外的組態考量。如需詳細資訊,請參閱 AWS CodeCommit 使用者指南中的在 Linux、macOS 或 Unix 上使用 AWS CLI 憑證協助程式的 HTTPS 連線在 Windows 上使用 AWS CLI 憑證協助程式的 HTTPS 連線