AWS攻略——使用CodeCommit托管代码
? ? ? ? 除了我們熟悉的github,各大云廠商也有自己的代碼托管服務。本文講解如何在Amazon的CodeCommit中托管代碼。(轉載請指明出于breaksoftware的csdn博客)
根賬戶登錄
? ? ? ? AWS有兩種賬戶登錄界面。
- IAM賬戶登錄界面
?
- ? ?根賬戶登錄界面
? ? ? ? 我們先使用根賬戶登錄。
IAM
? ? ? ? 我們需要定義一些IAM(Identity and Access Management)用戶,這些用戶將可以訪問我們的代碼庫。這些操作可以通過https://console.aws.amazon.com/iam/home訪問到。
? ? ? ? 為了更加貼近實際,我們假設有三種角色:
- 項目經理,擁有代碼庫全部權限,名字是Leader
- 研發工程師,擁有代碼的寫權限,名字是RD
- 測試工程師,擁有代碼的讀權限,名字是QA
新建組? ? ? ??
? ? ? ? 我們以“項目經理”為例,創建的組名叫“Managers”。在附加策略頁面,我們選擇“AWSCodeCommitFullAccess”
? ? ? ? 然后把組創建出來。
? ? ? ? 相似的方式,我們把“研發工程師”和“測試工程師”的組創建出來。它們的名字分別是"Developers"和“Testers”,對應的附加策略是“AWSCodeCommitPowerUser”和“AWSCodeCommitReadOnly”。
新建用戶
? ? ? ? 以“項目經理”為例,我們新建一個用戶名叫“Leader”,并勾選“AWS管理控制臺訪問”,并讓其自己設置密碼。
? ? ? ? 然后把該用戶編到擁有最高權限的“Managers”組中。
? ? ? ? 可以忽略掉“標簽”頁,直接創建用戶。
? ? ? ? 最后這個頁面非常重要。我們可以把該CSV下載下來,交給名字叫Leader的用戶。其中包含了用戶名、密碼、以及IAM登錄的地址。? ? ? ??
生成git憑證
? ? ? ? 在“用戶”頁點擊剛創建的Leader
? ? ? ? 然后進入“安全證書”頁,點擊“生成憑證”
? ? ? ?然后將生成的憑證下載下來提供給Leader
CodeCommit新建代碼庫
? ? ? ? 進入https://console.aws.amazon.com/codesuite/codecommit/repositories。我們創建一個測試代碼庫“Test”
IAM用戶登錄
? ? ? ? 將“新建用戶”最后一步生成的文件交給Leader妥善管理。他需要訪問Console login link地址(如果你是在和根賬戶登錄的同一臺電腦上操作,建議啟動一個其他內核的瀏覽器打開,否則將會把根賬戶踢出)。Account ID or alias將會被自動填好,只要填寫上面文件中的用戶名和密碼即可。
? ? ? ? 因為我們讓Leader自己設置密碼,所以他會進入修改密碼界面
? ? ? ? 此時Leader進入CodeCommit將會看到Test工程
? ? ? ? Leader獲取Https地址后,使用之前提供的“Git Https 憑證”中的用戶名和密碼,就可以將代碼庫clone下來了。
限制權限
? ? ? ? 目前,我們創建的用戶都可以訪問CodeCommit中的代碼庫。但是大部分時候,我們希望部分人不要擁有一些代碼權限,包括拉取代碼。
? ? ? ? 為了解決這個問題,我們需要在“策略”中做一些定制。
? ? ? ? 因為我們是對CodeCommit服務做限制,所以先在“服務”欄選擇它。然后在“操作”欄勾選“ListRepositories”。這樣可以保證Leader可以看到所有項目。然后添加一個限制策略
? ? ? ? 這兒我們需要將其切換到“拒絕”狀態。
? ? ? ? 我們在“操作”欄勾選所有操作。然后在“資源”處添加我們要禁止Leader獲取的庫。
? ? ? ? 最后一步我們給策略取個名字“DenyAccessTest”。
? ? ? ? 現在我們只要把該策略綁定到用戶上即可。
? ? ? ? 在沒有限制權限之前,Leader查看CodeCommit的頁面如下。它顯示了下載地址。
? ? ? ? 而限制了權限之后,我們看到下載地址已經不出現了。
另
? ? ? ? 像Leader我們給了他很高的權限,但是像“研發工程師”和“測試工程師”則不需要這么高的權限。我們以“研發工程師”為例,創建用戶RD。此時我們只給他“編程訪問”權限。
? ? ? ? 用戶添加成功后,我們也不用把該頁面的CSV文件提供給他。只要把“安全證書”頁面中生成的憑證給他即可。他可以使用其中的用戶名和密碼拉取代碼庫。
?
總結
以上是生活随笔為你收集整理的AWS攻略——使用CodeCommit托管代码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bug诞生记——信号(signal)处理
- 下一篇: AWS攻略——使用S3托管静态网页