AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可以繼續正常使用服務。進一步了解"
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
跨帳戶儲存庫存取權:AccountB 中儲存庫使用者的動作
為了存取 AccountA 中的儲存庫,AccountB 群組的使用者必須設定其本機電腦來存取儲存庫。以下章節提供步驟和範例。
步驟 1:為 AccountB 使用者設定 AWS CLI 和 Git,以存取 AccountA 中的儲存庫
您不能使用SSH金鑰或 Git 憑證來存取另一個 Amazon Web Services 帳戶中的儲存庫。AccountB 使用者必須將其電腦設定為使用 git-remote-codecommit(建議) 或憑證協助程式,才能存取 AccountA 中的共用 CodeCommit 儲存庫。不過,在 AccountB 中存取儲存庫時,您可以繼續使用SSH金鑰或 Git 憑證。
請按照下列步驟使用 git-remote-codecommit 設定存取權。如果您尚未安裝 git-remote-codecommit,git-remote-codecommit
設定 AWS CLI 和 Git 進行跨帳戶存取
-
在本機 AWS CLI 電腦上安裝 。請參閱安裝 AWS CLI 中適用於您作業系統的指示。
-
在本機電腦上安裝 Git。若要安裝 Git,建議可使用 Git Downloads
或 Git for Windows 等網站。 注意
CodeCommit 支援 Git 1.7.9 版及更新版本。Git 2.28 版支援為初始遞交設定分支名稱。我們建議您使用最新版本的 Git。Git 是一個不斷發展且定期更新的平台。有時,功能變更可能會影響其使用 的方式 CodeCommit。如果您遇到特定版本的 Git 和 的問題 CodeCommit,請檢閱 中的資訊疑難排解。
-
從終端機或命令列,在您要複製儲存庫的目錄位置執行 git config --local user.name 和 git config --local user.email 命令,以針對您要對儲存庫所做的遞交,設定使用者名稱和電子郵件。例如:
git config --local user.name "Saanvi Sarkar" git config --local user.email saanvi_sarkar@example.com
這些命令不會傳回任何訊息,但您指定的電子郵件和使用者名稱,將會與您對 AccountA 中的儲存庫所做的遞交相關聯。
-
執行 aws configure --profile 命令,設定連線至 AccountB 中的資源時要使用的預設描述檔。出現提示時,請為您的IAM使用者提供存取金鑰和秘密金鑰。
注意
如果您已安裝 AWS CLI 並設定設定檔,您可以略過此步驟。
例如,執行下列命令來建立預設 AWS CLI 設定檔,讓您用來存取美國東部 (俄亥俄) (us-east-2) 中 AccountB 中的 AWS 資源:
aws configure
當出現提示時,請提供下列資訊:
AWS Access Key ID [None]:
Your-IAM-User-Access-Key
AWS Secret Access Key ID [None]:Your-IAM-User-Secret-Access-Key
Default region name ID [None]:us-east-2
Default output format [None]: json -
再次執行 aws configure --profile 命令,設定連線至 AccountA 中的儲存庫時要使用的指定描述檔。出現提示時,請為您的IAM使用者提供存取金鑰和秘密金鑰。例如,執行下列命令來建立名為 的 AWS CLI 設定檔
MyCrossAccountAccessProfile
用於存取美國東部 (俄亥俄) (us-east-2) 的 AccountA 儲存庫:aws configure --profile
MyCrossAccountAccessProfile
當出現提示時,請提供下列資訊:
AWS Access Key ID [None]:
Your-IAM-User-Access-Key
AWS Secret Access Key ID [None]:Your-IAM-User-Secret-Access-Key
Default region name ID [None]:us-east-2
Default output format [None]: json -
在純文字編輯器中,開啟
config
檔案,也稱為 AWS CLI 組態檔案。根據您的作業系統,此檔案可能位於 Linux、macOS 或 Unix~/.aws/config
上的 或 。drive
:\Users\USERNAME
Windows 上的 \.aws\config。 -
在檔案中,找出您已針對存取 AccountB 中的儲存庫所設定之對應預設描述檔的項目。其看起來與下列類似:
[default] region = us-east-2 output = json
將
account
新增到描述檔組態。提供 AWS AccountB 的帳戶 ID。例如:[default] account =
888888888888
region = us-east-2 output = json -
在 檔案中,尋找與 對應的項目
MyCrossAccountAccessProfile
您剛建立的設定檔。其看起來與下列類似:[profile
MyCrossAccountAccessProfile
] region = us-east-2 output = json將
account
、role_arn
和source_profile
新增到描述檔組態。提供 AccountA 的 Amazon Web Services 帳戶 ID、您在 AccountA 中用來存取其他帳戶中儲存庫ARN的角色 ID,以及 AccountB 中預設 AWS CLI 設定檔的名稱。例如:[profile
MyCrossAccountAccessProfile
] region = us-east-2 account =111122223333
role_arn = arn:aws:iam::111122223333
:role/MyCrossAccountRepositoryContributorRole
source_profile =default
output = json儲存您的變更並關閉純文字編輯器。
步驟 2:複製並存取 AccountA 中的 CodeCommit 儲存庫
執行 git clone、 git push和 git pull 以複製、推送至和提取跨帳戶 CodeCommit儲存庫。您也可以登入 AWS 管理主控台、切換角色,並使用 CodeCommit 主控台與其他帳戶中的儲存庫互動。
注意
根據IAM角色的設定方式,您可能可以在 的預設頁面上檢視儲存庫 CodeCommit。如果您無法檢視儲存庫,請要求儲存庫管理員透過電子郵件將 CodeCommit 主控台中共用儲存庫的程式碼頁面URL連結傳送給您。URL 類似於以下內容:
https://console.aws.amazon.com/codecommit/home?region=
us-east-2
#/repository/MySharedDemoRepo
/browse/HEAD/--/
將跨帳戶儲存庫複製到本機電腦
-
在命令列或終端機中,在您要複製儲存庫的目錄中,使用 HTTPS(GRC) 複製 執行git clone命令URL。例如:
git clone codecommit://
MyCrossAccountAccessProfile
@MySharedDemoRepo
除非您另外指定,否則儲存庫會複製到與儲存庫同名的子目錄。
-
切換到複製的儲存庫所在的目錄,然後新增檔案或變更檔案。例如,您可以新增名為 的檔案
NewFile.txt
. -
將檔案新增至本機儲存庫的追蹤變更、遞交變更,並將檔案推送至 CodeCommit 儲存庫。例如:
git add
NewFile.txt
git commit -m "Added a file to test cross-account access to this repository" git push如需詳細資訊,請參閱開始使用 Git 和 AWS CodeCommit。
現在您已新增檔案,請前往 CodeCommit 主控台檢視您的遞交、檢閱其他使用者對儲存庫的變更、參與提取請求等。
在 CodeCommit 主控台中存取跨帳戶儲存庫
-
在 AccountB AWS Management Console 中登入 (
888888888888
) 作為在 AccountA 中授予跨帳戶儲存庫存取權IAM的使用者。 -
在導覽列選擇您的使用者名稱,然後從下拉式清單中選擇 Switch Role (切換角色)。
注意
如果您是第一次選取此選項,請檢閱頁面上的資訊,然後再次選擇 Switch Role (切換角色)。
-
在 Switch Role (切換角色) 頁面上,執行下列動作:
-
在帳戶 中,輸入 AccountA 的帳戶 ID ( 例如,
111122223333
). -
在角色 中,輸入您要擔任的角色名稱,以存取 AccountA 中的儲存庫 (例如,
MyCrossAccountRepositoryContributorRole
). -
在 Display Name (顯示名稱) 中,輸入此角色的易記名稱。當您擔任此角色時,此名稱會出現在主控台。您下次在主控台想要切換角色時,此名稱也會出現在擔任的角色清單中。
-
(選用) 在 Color (顏色) 中,選擇顯示名稱的標籤。
-
選擇 Switch Role (切換角色)。
如需詳細資訊,請參閱切換到角色 (AWS Management Console)。
-
在 https://console.aws.amazon.com/codesuite/Codecommit/home
開啟 CodeCommit 主控台。 如果擔任的角色有許可檢視 AccountA 中儲存庫的名稱,您會看到儲存庫清單,也會出現錯誤訊息,指出您沒有許可檢視其狀態。這是預期的行為。從清單中選擇共享儲存庫的名稱。
如果擔任的角色沒有許可檢視 AccountA 中儲存庫的名稱,您會看到錯誤訊息和沒有儲存庫的空白清單。貼上儲存庫URL的連結或修改主控台連結
/list
,並變更為共用儲存庫的名稱 (例如/
)。MySharedDemoRepo
-
在 Code (程式碼) 中,找出您從本機電腦新增的檔案名稱。選擇此檔案以瀏覽檔案中的程式碼,然後瀏覽儲存庫的其餘部分,並開始使用其功能。
如需詳細資訊,請參閱開始使用 AWS CodeCommit。