iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0
DevOps

我獨自升級:從水管工走向 DataOps系列 第 20

【Day 20】Data Pipeline CI / CD - AWS CodeCommit

  • 分享至 

  • xImage
  •  

CodeCommit 介紹

CodeCommit是一項安全、高度可擴展、可受管私有的 Git 儲存庫。CodeCommit您無需管理自己的原始檔控制系統,也不必擔心擴充其基礎架構。從程式碼到二進位檔,CodeCommit 都可以儲存。它支援 Git 的標準功能,可以完美搭配以 Git 為基礎的現有工具一起運作。

上面是官方介紹,但對我來說簡單說就是 AWS 版要付費的 GitHub,當然過去如果大多服務都在 AWS 上, 服務整合會比 GitHub 更好,其中一個點是 AWS CloudTrail 和 AWS CloudWatch 對於整個庫的監控會更方便,不可否認的,GitHub、Gitlab、BitBucket 的社群討論和資源肯定是更豐富,但後續應該也不用考慮了,詳情請往下看↓/images/emoticon/emoticon20.gif

建立 CodeCommit Repo 停止維護!

AWS CodeCommit is no longer available to new customers. Existing customers of AWS CodeCommit can continue to use the service as normal

從 2024/07 之後, AWS 公佈說如果是新使用者,不提供 AWS CodeCommit 服務了,我想建立的部分應該就不太重要了/images/emoticon/emoticon02.gif,如果是已經在使用的朋友是可以繼續使用的。

或是這邊也有官方教學說明如何將 Repo 搬走

連接的部分還是可以說一下,畢竟短期內應該很多專案搬不走~/images/emoticon/emoticon06.gif

連接 CodeCommit 的 Repo

1.本機新增 ssh key

ssh-keygen
  • 執行後結果
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/{your_user_name}/.ssh/id_rsa):

可以直接一路 enter 往下,最終就會創建出公鑰和私鑰
公鑰:/Users/{your_user_name}/.ssh/id_rsa.pub
私鑰:/Users/{your_user_name}/.ssh/id_rsa

或是也可以跟我一樣修改名稱,以免後續有多把鑰匙需要分辨

https://ithelp.ithome.com.tw/upload/images/20241004/20135427EN6UazCn8V.png

結束之後可以進到 /Users/{your_user_name}/.ssh/ 路徑就能看到了

2. 複製 public key

cat /Users/{your_user_name}/.ssh/id_rsa.pub

如果跟我一樣有修改名稱的話要執行下方

cat /Users/{your_user_name}/.ssh/codecommit_id_rsa.pub

會拿到這一整段,只需要全選複製就好了(下方只是範例😂)

ssh-rsa AAAAB3NzaIUOIHCDO<K98LKKj
AAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjAAAAB3NzaIUOIHCDO<K98LKKjnfmoNm8uXsdfj8Kbr2s

3. 將 ssh key 公鑰加到 AWS IAM User 的憑證

進到 IAM 的 user 後,選擇 security credentials,往下滑就能找到 SSH public keys for AWS CodeCommit 的區塊,剛開始還沒新增前會像下圖:
https://ithelp.ithome.com.tw/upload/images/20241004/20135427qIKYwILeq3.png

將剛剛複製的 ssh key 放上去儲存即可
https://ithelp.ithome.com.tw/upload/images/20241004/20135427h8dae0RDkh.png

接著應該會拿到一組公鑰的 SSH KEY ID

https://ithelp.ithome.com.tw/upload/images/20241004/20135427M6Cv7aEY3E.png

以上方為例大概會像這樣 APYWTEU6EWWEUOUIFFRF
有了這組之後就能回到本機設定了

4. 設定 config

/Users/{your_user_name}/.ssh/ 當中,我們需要創一個 config 檔案紀錄連接的資訊

範例如下:

Host git-codecommit.*.amazonaws.com
  User APYWTEU6EWWEUOUIFFRF
  IdentityFile ~/.ssh/codecommit_id_rsa
  • Host 的部分可以用* 代表全部的 region 或是指定你目前的 region
  • User:要放剛剛複製的公鑰 ID
  • IdentityFile:要放剛剛產生的私鑰

修改 config 權限

chmod 600 config
  • 擁有者(User):具有讀取(read)和寫入(write)的權限 => 6
  • 群組(Group)和其他用戶(Others):沒有任何權限 => 0

通常用於保護敏感文件(如 SSH 金鑰、配置文件),確保只有文件的擁有者能夠訪問該文件,從而提高安全性。

到底這些數字怎麼計算的可以參考鳥哥的 Linux 基礎檔案權限與基礎帳號管理

執行測試連接

ssh git-codecommit.us-east-1.amazonaws.com

5. 修改 AWS User 權限

  • 把 user 的許可政策加入 CodeCommitPowerUser
    https://ithelp.ithome.com.tw/upload/images/20241004/20135427A1OyfRBnzk.png

  • 按 add permissions
    https://ithelp.ithome.com.tw/upload/images/20241004/201354271Rlv51KFcC.png

  • 就可以看到CodeCommitPowerUser新增上去了
    https://ithelp.ithome.com.tw/upload/images/20241004/20135427H6PXVTCU5J.png

6. clone repo

  • 接下來直接 clone 就可以像平常一樣用 git 操作並推到 Codecommit 了
git clone ssh://git-codecommit.{your region}.amazonaws.com/v1/repos/{your repo name}

上一篇
【Day 19】Data Pipeline CI / CD - 基礎介紹
下一篇
【Day 21】Data Pipeline CI / CD - AWS CodeBuild
系列文
我獨自升級:從水管工走向 DataOps21
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言