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
上的 ,或位於 Windows 上的drive
:\Users\USERNAME
\.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 主控台中存取跨帳戶儲存庫
-
以獲得 AccountA AWS Management Console 中儲存庫跨帳戶存取權的使用者身分,登入 AccountB (
888888888888
) 中的 。 IAM AccountA -
在導覽列選擇您的使用者名稱,然後從下拉式清單中選擇 Switch Role (切換角色)。
注意
如果您是第一次選取此選項,請檢閱頁面上的資訊,然後再次選擇 Switch Role (切換角色)。
-
在 Switch Role (切換角色) 頁面上,執行下列動作:
-
在 Account (帳戶) 中,輸入 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。