AWS CodeCommit 使用小記
OS: openSUSE Leap 15.2
git: 2.26.2
最近因為使用 GitLab 的關係, 所以有些資料原本是使用 share folder 的方式, 現在也會考慮使用 git 的方式儲存.
今天來寫 AWS CodeCommit 的使用紀錄
目前使用的方式是參考
官方文件 在 Linux, MacOS, or Unix 上設定CodeCommit
Youtube Video
Introduction to AWS CodeCommit: Setting Up Permissions https://youtu.be/W-SM4m19JMA
Introduction to AWS CodeCommit: Creating a Repo https://youtu.be/SWqh7LvxKqI
連接 AWS CodeCommit 有很多方式, 我是採取 SSH Key 的方式, 網路上有人反應這樣的做法比較穩妥, 比較不會出現奇怪的現象.
實作的方式
建立 IAM Group, 綁定相關權限, 將使用者加入到 Group
這邊的 Policy 我使用的的是 AWSCodeCommitPowerUser, 他與 AWSCodeCommitFullAccess 差異主要就是可否刪除儲存庫, 相關細節可以參考 https://docs.aws.amazon.com/zh_tw/codecommit/latest/userguide/auth-and-access-control-iam-identity-based-access-control.html
將使用者的 SSH Public Key 上傳到 IAM 使用者的 SSH Keys for AWS CodeCommit
設定 ~/.ssh/config 檔案, 指定 User ID 與相關檔案
建立 CodeCommit Repository, 使用 git clone 測試操作
接下來就讓我們開始吧
首先登入 AWS IAM console
點選左方的 Groups -- > 點選 Create New Group
群組名稱輸入: CodeCommitPowerUser -- > 點選 Next Step
在 Attach Policy 頁面
搜尋 CodeCommit -- > 勾選 AWSCodeCommitPowerUser
點選 Next Step
檢閱相關設定
點選 Create Group
接下來加入使用者
點選剛剛建立的 CodeCommitPowerUser 群組
在 Users 頁籤 -- > 點選 Add Users to Group
勾選要加入的使用者 -- > Add Users
接下來要將使用者的 SSH Public Key 上傳到 IAM 使用者的 SSH Keys for AWS CodeCommit
點選 IAM console 左方的 Users
點選 剛剛被加入的使用者
點選 Security credentials 頁籤
點選 Upload SSH public key 按鈕
將 SSH 公鑰貼上
點選 Upload SSH public Key
如果沒有已經存在的 SSH Key, 或是想要額外建立 Key 可以參考官方文件的方式建立
將 SSH key ID 記錄下來, 等等這個 ID 就是 SSH User ID
再來建立 ~/.ssh/config
使用自己習慣的編輯器 建立 ~/.ssh/config 檔案, 內容如下
User 後面那串字元, 請換成之前的 SSH key ID
IdentityFile 請換成 自己的 SSH Private Key, 如 id_rsa
將 ~/.ssh/config 檔案設定相關權限
> chmod 600 ~/.ssh/config
最後階段, 建立 CodeCommit Repository, 使用 git clone 測試操作
登入 AWS CodeCommit 主控台 https://console.aws.amazon.com/codesuite/codecommit/home
CodeCommit 也是 Region 服務, 所以可以先選取你要建立的 Region, 我這邊的例子是使用 Ohio ( us-east-2 )
點選 Create repository
輸入 儲存庫名稱
點選 Create
建立完成之後, 其實會有不同的頁籤來說明如何連接
點選 SSH 頁籤
展開你要的 OS 選項, 我是用 openSUSE Leap 15.2 , 所以展開 Linux
點選 Step 4 的 Copy
他會複製 git clone ssh 的指令
接下來進行 git clone 的測試
切換到要進行 git clone 的目錄
貼上與執行剛剛複製的 git clone 指令
> git clone ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/test20210405
正複製到 'test20210405'...
warning: 您似乎複製了一個空版本庫。
進入到相關目錄
> cd test20210405/
接下來嘗試建立檔案進行 commit 測試
> echo "CodeCommit Test" > README.md
> git add .
> git commit -m "20210405"
[master (根提交) 6381ea1] 20210405
1 file changed, 1 insertion(+)
create mode 100644 README.md
> git push -u origin master
Warning: Permanently added the RSA host key for IP address '52.95.17.51' to the list of known hosts.
枚舉物件: 3, 完成.
物件計數中: 100% (3/3), 完成.
寫入物件中: 100% (3/3), 227 位元組 | 227.00 KiB/s, 完成.
總共 3 (差異 0),復用 0 (差異 0),重用包 0
To ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/test20210405
* [new branch] master -> master
分支 'master' 設定為追蹤來自 'origin' 的遠端分支 'master'。
回到 AWS CodeCommit 觀察
這樣又多了一個 git 存儲的去處, 也多向 AWS 服務邁向一步
~ enjoy it
Reference:
沒有留言:
張貼留言