今天介紹一下Cloud Storage如何使用專案角色認證來給予權限... 首先,我們需要到要請求存取的專案中,找出一些專案的資訊... 包含專案ID與專案的Role ID,這兩個直可以對應在Bucket權限設定中的Project與Group兩個Entity上,簡單的設定說明如下:
讀取專案ID,然後複製下來...
在權限授與的地方,可以用文字owners-, editors-, viewers-等字眼,後面加上project id作為授與權限的對象,再給予Access的權限對應,即可將bucket授與對象專案的相對角色相關權限。
例如,給予project 288********的所有editor角色具備write的權限,則可以使用
ENTITY = project
NAME = 288********
ACCESS = Writer
這樣的一組設定來完成
另外,如果透過專案的Role ID來做權限授與的話,也可以達到相似的效果,這邊可以在Storage的setting頁面找到這個專案的對應role id
這邊可以直接複製role id直接貼到NAME欄位,然後ENTITY選擇Group,在給予對應的Access權限...
在存完檔案之後,重新瀏覽後,可以發現該設定會被轉換成專案的對應權限...
透過這樣的設定,我們可以簡單的讓專案之間彼此可以互相傳遞資料,而不用特別去auth個人的帳戶給執行主機,也可以避免一些存取上的風險 :D
最後,可能有人會想到使用vm instance的service account來做權限授與...
下面是一個GCE instance,目前開放auth使用instance內建的service account (有掛active那組)
而在另一個專案的bucket給予這個instance內建的account權限之後:
經測試可以正常存取該bucket
但如果使用A專案所建立的Service Account去認證Cloud SDK(參考這邊),則最後無法去存取已經授與權限的Service Account....
結論:
1. 我們可以使用project與role的權限授與方式來給予其他專案存取此專案Bucket的權限
2. Service Account會跟隨專案,即使其他專案給予這個Service Account存取權限,也無法跨專案存取Bucket
以上,給大家參考
留言
張貼留言