原來是分身攻擊啊
- 現在 Hugo/public 資料夾下的內容很忙碌,一下要 push 到 github 一下又要上傳到 S3 bucket,我們希望可以把這些通通串起來,而且用比較複雜的方法
- 我們可以使用
git
&aws cli
在本機分別把兩件事做好做完,但懶惰使人進步,我希望可以只用單一的git push
就能觸發後續的動作,此時可以使用 Github Actions 來達成這個目的 - 在此之前,要先給 Github repo 一個 AWS 分身權限 IAM user
該怎麼做
- 在 IAM 選擇 Users/ Create user
- 輸入 User name,例如
github_upload_s3
,並勾選 Next - 選擇
Attach Policies Directly
,並搜尋關鍵字S3
,將S3FullAccess
勾選起來並完成 - 完成後點擊
Create access key
- 你可以紀錄 Access key
ID
,Secret
在安全的地方,或是下載.csv
檔案,儲存在本機位置 - 請不要把 Access key
ID
,Secret
放在公開的地方,例如 Github repo,就算是 private repo 也不建議存放,且 Github 偵測到該內容也會發出警告
其他延伸
- IAM 用來管理 AWS 資源的存取權限,我們可以給不同分身(第三方服務、應用程式等等)不同的權限,限縮可能被存取的範圍
- 一旦 IAM 身分被假冒使用,受影顯得資源有限,也可以從 IAM 端將該身分停用,避免被繼續濫用
- IAM 的管理方式有更多細緻的處理,除了 user groups/ users/ roles,對應 Policy 的允許或禁止方式也相當值得研究