使用輪換憑證連線至 AWS CodeCommit 儲存庫 - AWS CodeCommit

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 執行個體已設定為代表您將臨時存取憑證傳達給 CodeCommit。

注意

您可以在 Amazon EC2 執行個體git-remote-codecommit上設定和使用 。

若要讓使用者暫時存取 CodeCommit 儲存庫,請完成下列步驟。

步驟 1:完成先決條件

完成設定步驟,以使用輪換憑證為使用者提供 CodeCommit 儲存庫的存取權:

使用 中的資訊AWS CodeCommit的身分驗證與存取控制來指定您要授予使用者的 CodeCommit 許可。

步驟 2:取得角色名稱或存取登入資料

如果您要讓使用者擔任角色以存取儲存庫,請提供使用者該角色的 Amazon Resource Name (ARN)。否則,根據您設定存取的方式而定,使用者可以透過下列其中一種方法取得輪換登入資料:

步驟 3:安裝 git-remote-codecommit 並設定 AWS CLI

您必須在 中安裝git-remote-codecommit和設定設定檔,將本機電腦設定為使用存取憑證 AWS CLI。

  1. 遵循設定 中的指示來設定 AWS CLI。使用 aws configure 命令設定一或多個描述檔。當您使用輪換憑證連線至 CodeCommit 儲存庫時,請考慮建立要使用的具名設定檔。

  2. 您可以透過下列其中一種方式,將登入資料與使用者的 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 --profile CodeAccess aws configure set source_profile default --profile CodeAccess aws configure set role_session_name "Maria_Garcia" --profile CodeAccess

      若要驗證變更,請手動檢視或編輯 ~/.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=~/my-credentials/my-token-file role_session_name = Maria_Garcia

    如需詳細資訊,請參閱《 使用者指南》中的設定 AWS Command Line Interface 和使用 IAM 角色 AWS CLIAWS Command Line Interface

步驟 4:存取 CodeCommit 儲存庫

假設您的使用者已遵循 中的指示連接到儲存庫連線至 CodeCommit 儲存庫,則使用者接著會使用 git-remote-codecommit和 Git 提供的擴充功能來呼叫 git clonegit push和 ,git pull以複製、推送和提取其可存取的 CodeCommit 儲存庫。例如,若要複製儲存庫:

git clone codecommit://CodeAccess@MyDemoRepo

Git 遞交、推送和提取命令會使用常規 Git 語法。

當使用者使用 AWS CLI 並指定與輪換存取登入資料相關聯的 AWS CLI 具名設定檔時,會傳回範圍限定於該設定檔的結果。