AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可以繼續正常使用服務。進一步了解」
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用輪換憑證連線至 AWS CodeCommit 儲存庫
您可以讓使用者存取 AWS CodeCommit 您的儲存庫,而無需為其設定 IAM 使用者或使用存取金鑰和私密金鑰。若要將許可指派給聯合身分,您可以建立角色並定義角色的許可。當聯合身分進行身分驗證時,該身分會與角色建立關聯,並獲授予由角色定義的許可。如需有關聯合角色的相關資訊,請參閱《IAM 使用者指南》中的為第三方身分提供者 (聯合) 建立角色。如果您使用 IAM Identity Center,則需要設定許可集。為控制身分驗證後可以存取的內容,IAM Identity Center 將許可集與 IAM 中的角色相關聯。如需有關許可集的資訊,請參閱 AWS IAM Identity Center 使用者指南中的許可集。您也可以為 IAM 使用者設定角色型存取,以存取個別 Amazon Web Services 帳戶中的 CodeCommit 儲存庫 (稱為跨帳戶存取的技術)。如需設定儲存庫跨帳戶存取的逐步解說,請參閱 使用 角色設定 AWS CodeCommit 儲存庫的跨帳戶存取權。
您可以為想要或必須透過下列方法來驗證身分的使用者設定存取:
-
安全性聲明標記語言 (SAML)
-
多重要素驗證 (MFA)
-
聯合
-
登入 Amazon
-
Amazon Cognito
-
Facebook
-
Google
-
OpenID Connect (OIDC) 相容的身分提供者
注意
下列資訊僅適用於使用 git-remote-codecommit或 AWS CLI 登入資料協助程式來連線至 CodeCommit 儲存庫。由於建議的 CodeCommit 暫時或聯合存取方法是設定 git-remote-codecommit,因此本主題提供使用該公用程式的範例。如需詳細資訊,請參閱AWS CodeCommit 使用 git-remote-codecommit 對 HTTPS 連線的設定步驟。
您無法使用 SSH 或 Git 登入資料和 HTTPS 來使用輪換或暫時存取登入資料來連線至 CodeCommit 儲存庫。
如果符合下列所有要求,您不需要完成這些步驟:
-
您已登入 Amazon EC2 執行個體。
-
您使用 Git 和 HTTPS 搭配 AWS CLI 登入資料協助程式,從 Amazon EC2 執行個體連線至 CodeCommit 儲存庫。
-
Amazon EC2 執行個體具有連接的 IAM 執行個體描述檔,其中包含 對於 Linux、macOS 或 Unix 上的 HTTPS 連線,使用 AWS CLI 登入資料協助程式或 中所述的存取許可對於 Windows 上使用 AWS CLI 登入資料協助程式的 HTTPS 連線。
-
您已在 Amazon EC2 執行個體上安裝並設定 Git 登入資料協助程式,如 對於 Linux、macOS 或 Unix 上的 HTTPS 連線,使用 AWS CLI 登入資料協助程式或 中所述對於 Windows 上使用 AWS CLI 登入資料協助程式的 HTTPS 連線。
符合上述要求的 Amazon EC2 執行個體已設定為代表您將臨時存取憑證傳達給 CodeCommit。
注意
您可以在 Amazon EC2 執行個體git-remote-codecommit上設定和使用 。
若要讓使用者暫時存取 CodeCommit 儲存庫,請完成下列步驟。
步驟 1:完成先決條件
完成設定步驟,以使用輪換憑證為使用者提供 CodeCommit 儲存庫的存取權:
-
如需跨帳戶存取權,請參閱演練:使用 IAM 角色和 委派跨 Amazon Web Services 帳戶的存取權使用 角色設定 AWS CodeCommit 儲存庫的跨帳戶存取權。
-
對於 SAML 和聯合身分,請參閱使用組織的身分驗證系統授予 AWS 資源的存取權和關於 AWS STS SAML 2.0 型聯合身分。
-
對於 MFA,請參閱搭配 Multi-Factor Authentication (MFA) 裝置 AWS和建立暫時安全登入資料,以啟用 IAM 使用者的存取。
-
如需 Login with Amazon、Amazon Cognito、Facebook、Google 或任何與 OIDC 相容的身分提供者,請參閱關於 AWS STS Web Identity Federation。
使用 中的資訊AWS CodeCommit的身分驗證與存取控制來指定您要授予使用者的 CodeCommit 許可。
步驟 2:取得角色名稱或存取登入資料
如果您要讓使用者擔任角色以存取儲存庫,請提供使用者該角色的 Amazon Resource Name (ARN)。否則,根據您設定存取的方式而定,使用者可以透過下列其中一種方法取得輪換登入資料:
-
如需跨帳戶存取,請呼叫 the AWS CLI assume-role 命令或呼叫 AWS STS AssumeRole API。
-
對於 SAML,請呼叫 the AWS CLI assume-role-with-saml 命令或 AWS STS AssumeRoleWithSAML API。
-
對於聯合,請呼叫 the AWS CLI assume-role 或 get-federation-token 命令或 AWS STS AssumeRole 或 GetFederationToken APIs。
-
對於 MFA,請呼叫 the AWS CLI get-session-token 命令或 AWS STS GetSessionToken API。
-
對於 Login with Amazon、Amazon Cognito、Facebook、Google 或任何 OIDC 相容身分提供者,請呼叫 AWS CLI assume-role-with-web-identity 命令或 AWS STS AssumeRoleWithWebIdentity API。
步驟 3:安裝 git-remote-codecommit 並設定 AWS CLI
您必須在 中安裝git-remote-codecommit
-
遵循設定 中的指示來設定 AWS CLI。使用 aws configure 命令設定一或多個描述檔。當您使用輪換憑證連線至 CodeCommit 儲存庫時,請考慮建立要使用的具名設定檔。
-
您可以透過下列其中一種方式,將登入資料與使用者的 AWS CLI 具名設定檔建立關聯。
-
如果您要擔任角色來存取 CodeCommit,請使用擔任該角色所需的資訊來設定具名設定檔。例如,如果您想要在 Amazon Web Services 帳戶 111111111111 中擔任名為
CodeCommitAccess
的角色,您可以設定預設描述檔,以便在使用其他 AWS 資源時使用 ,以及在擔任該角色時使用具名描述檔。下列命令會建立名為CodeAccess
的具名設定檔,該設定檔會擔任名為CodeCommitAccess
的角色。使用者名稱Maria_Garcia
與工作階段相關聯,且預設設定檔設定為其 AWS 登入資料的來源:aws configure set role_arn arn:aws:iam::111111111111:role/
CodeCommitAccess
--profileCodeAccess
aws configure set source_profile default --profileCodeAccess
aws configure set role_session_name "Maria_Garcia
" --profileCodeAccess
若要驗證變更,請手動檢視或編輯
~/.aws/config
檔案 (若為 Linux) 或%UserProfile%.aws\config
檔案 (若為 Windows),並檢閱具名描述檔下的資訊。例如,您的檔案看起來可能會類似以下內容:[default] region = us-east-1 output = json [profile CodeAccess] source_profile = default role_session_name = Maria_Garcia role_arn = arn:aws:iam::111111111111:role/
CodeCommitAccess
設定具名設定檔之後,您可以使用具名設定檔,透過 git-remote-codecommit公用程式複製 CodeCommit 儲存庫。例如,若要複製名為
MyDemoRepo
的儲存庫:git clone codecommit://
CodeAccess
@MyDemoRepo
-
如果您使用的是 Web 聯合身分和 OpenID Connect (OIDC),請設定具名設定檔,以代表您進行 AWS Security Token Service (AWS STS)
AssumeRoleWithWebIdentity
API 呼叫來重新整理臨時憑證。使用 aws configure set命令或手動編輯~/.aws/credentials
檔案 (適用於 Linux) 或%UserProfile%.aws\credentials
檔案 (適用於 Windows),以新增具有必要設定值的 AWS CLI 具名設定檔。例如,若要建立擔任CodeCommitAccess
角色並使用 Web 身分字符檔案 ~/my-credentials
/my-token-file
的設定檔:[
CodeCommitWebIdentity
] role_arn = arn:aws:iam::111111111111:role/CodeCommitAccess
web_identity_token_file=~/
role_session_name = Maria_Garciamy-credentials
/my-token-file
如需詳細資訊,請參閱《 使用者指南》中的設定 AWS Command Line Interface 和使用 IAM 角色 AWS CLI。 AWS Command Line Interface
-
步驟 4:存取 CodeCommit 儲存庫
假設您的使用者已遵循 中的指示連接到儲存庫連線至 CodeCommit 儲存庫,則使用者接著會使用 git-remote-codecommit和 Git 提供的擴充功能來呼叫 git clone、 git push和 ,git pull以複製、推送和提取其可存取的 CodeCommit 儲存庫。例如,若要複製儲存庫:
git clone codecommit://
CodeAccess
@MyDemoRepo
Git 遞交、推送和提取命令會使用常規 Git 語法。
當使用者使用 AWS CLI 並指定與輪換存取登入資料相關聯的 AWS CLI 具名設定檔時,會傳回範圍限定於該設定檔的結果。