昨天我們討論IAM, 並且以主體為出發點, 討論誰該有什麼權限
不過以權限管理的角度, 會有個常見的制度是設定好一些角色, 賦予角色權限
根據要進入專案的人 給予這些人對應的角色
舉一個例子 我今天是project-A的主要owner, 我應該有設定專案機器的權限
不過這個專案其實可以參照另一個既存專案project-B, 很多設定我不需要從頭開始而是可以參照project-B的架構, 那我就需要申請觀看proj-B的內容但不進行修改
從管理的角度 每次有人提出申請要經歷
像在以上的需求就可以在proj-B建立一個cutomized-viewer角色, 但不是整個專案的viewer, 可能只要有cloud-run相關的觀看權限就好 當需要參照專案內容這種常見的需求被提出, 就直接assign這個run-viewer角色給他省下操作賦予權限的時間
本日作業 建立一個custom role, 並且把role賦予給角色
去到IAM > Role, 點選create role

建立一個可以重啟和觀看cloud run細節的角色 叫做 BFF cloud run operator
其中 permission是從add permission裏搜尋run.services, run.revisions, 來新增

建立後我們在IAM > Roles就可以看到我們新增的custom role ‘BFF cloud run operator’

接著把這個role加到開發人員身上
去到IAM view by principle 編輯開發者個帳號去新增role
我們可以在role搜尋關鍵字bff, 就會找到剛才定義的role並新增這個身份給開發人員

這樣就完成custom role的賦予

到目前為止我們的設定都是在console介面上手動操作
當專案小的時候還沒問題
如果假設今天專案規模很大 可能有數十個人在裡面
這些管理和設定光憑手動就不大容易
接下來我們要看如何用程式管理這些設定 進入IaC(Infrastructure as Code)的範疇
終於要出現codebase, 身為一個工程師還是要有一個資料夾放code才習慣啊