概述
Google Cloud 身份與存取權管理 (IAM),提供了為 GCP 資源建立且管理權限。 Cloud IAM 統一 GCP 眾多服務的存取權限控制,且提供一致性的操作。 在本教程中,你將會學到如何賦予使用者角色權限,或是移除 IAM 相關角色權限。 更確切的說,在此教程中登入兩組帳密來體驗權限的允許與廢除在 GCP Owner 與 Viewer 上是如何運作的。
前言
本篇主要是利用 Google 的 Qwiklab 平台學習的同時,做的一份學習筆記
為避免翻譯誤解,專業術語在本篇將不會被翻譯,保留原文
必要條件
這是入門級的教程,如果你對 Cloud IAM 沒有經驗,或只有一點點經驗的話,這個教程會蠻適合你的。 如果你有 Cloud Storage 的經驗,會可能會讓你比較容易完成這個教程,但是如果沒有也沒關係,因為這不是必須的。 要完成本教程,你必須要可以建立 .txt 檔,或者 .html 檔。 如果你在找更進階一點的 Cloud IAM 課程,一定不要錯下面這個:
設定兩個使用者
如同早先提到的,本教程提供兩組帳號密碼來模擬 IAM 政策以及特定的角色有什麼樣的權限
在教程頁面的左方,你可以看到帳號密碼列表,代表如下:
注意到,有兩組帳號密碼: Username1 還有 Username2。 分別代表 不同的 Cloud IAM,每一個 IAM 都有各自被分配到的存取權限。 這些 GCP “roles” 根據被分配的權限限制哪些資源你可以存取,哪一些不行
用第一個 user 登入 GCP 主控台
點擊 Open Google Console 按鈕。 這會打開一個新的瀏覽視窗。 如果你被要求 Choose an account, 點擊 Use another account
打開 GCP 登入頁面,複製代表
googlexxxxxx_student@qwiklabs.net
的第一使用者帳號,然後貼到 “Email or phone” 欄位從 “Connection Details” 複製密碼,然後貼到 Google 登入密碼欄位
點擊 Next 然後 Accept 服務條款。 Google Cloud Platform 主控台開啟。 Agree 服務條款,以及在 Email updates 處勾選 No
用第二個使用者登入 GCP 主控台
再次點擊 Open Google Console 按鈕。 這會打開一個新的瀏覽視窗。 如果你被要求 Choose an account, 點擊 Use another account
打開 GCP 登入頁面,複製代表
googlexxxxxx_student@qwiklabs.net
的第二使用者帳號,然後貼到 “Email or phone” 欄位從 “Connection Details” 複製密碼,然後貼到 Google 登入密碼欄位
點擊 Next 然後 Accept 服務條款。 Google Cloud Platform 主控台開啟。 Agree 服務條款,以及在 Email updates 處勾選 No
現在你應該要有兩個 GCP Console 視窗是在你的瀏覽器打開的,一個是使用者 1, 一個是使用者 2
在瀏覽視窗重置或者檢視使用者
有時候,一個使用者可能會被另一個使用者覆蓋掉,這時候可能會讓你很疑惑目前登入的使用者是哪一個
要知道目前確切登入的使用者是誰,將滑鼠停在大頭貼處,你就可以看到目前的 username
如果你要重置目前登入的使用者
- 點擊你的
Avatar
, 然後點擊 Sign out 來登出 - 在 Connection Details 面板處,點擊 Open Google Console, 然後再用對的帳號密碼登入一次
IAM 主控台以及專案等級角色
- 到 Username 1 的 GCP 主控台頁面
- 選擇 Navigation menu > IAM & admin > IAM 。你現在已經在 “IAM & admin” 主控台
- 在頁面上方點擊 +ADD 按鈕, 從下拉選單探索與專案相關的角色
你應該會看到 Browser (瀏覽者)
, Editor (編輯者)
, Owner (擁有者)
, 還有 Viewer (檢視者)
角色。 這四種在 GCP 被熟知為 原始角色 (primitive roles)
。 原始角色設定專案等級的權限,並且,除非有特別指定,否則他們的存取管理權限範圍涵蓋所有的 GCP 服務
下面表格中的角色從 GCP roles documentation 提取定義,給予瀏覽者,編輯者,擁有者,以及檢視者權限的簡單概述
角色名稱 | 權限
——- |
角色/檢視者 | 擁有不影響狀態的 只讀
權限,例如檢視 (但不可修改) 已存在的資源或檔案
角色/編輯者 | 擁有檢視者的所有權限,外加修改的權限,例如可以改變已存在的資源
角色/擁有者 | 擁有編輯者的所有權限,外加以下的權限
- 管理專案內所有角色的權限
- 設定專案的帳單
角色/瀏覽者 (beta) | 擁有可以瀏覽專案階層關係的權限,包含資料夾,組織,以及 Cloud IAM 政策。 但此角色不包含檢視專案內資源的權限
因為我們可以管理這個專案的角色以及全縣,所以 Username 1 有專案擁有者的權限
- 點擊 CANCEL 離開 “Add member” 面板
探索編輯者角色
現在切換到 Username 2 主控台
- 移動到 IAM & admin 主控台,選擇 Navigation menu > IAM & admin > IAM
- 在表格內搜尋一下 Username 1 以及 Username 2, 然後看一下他們被賦予的角色,你應該可以看到如下圖:
你應該會看到:
- Username 2 有 “檢視者” 的角色
- 頁面上方的 +ADD 按鈕是反灰的 - 如果你試圖點擊它,你會看到以下的訊息
這是一個範例,展示了 IAM 角色影響決定了你在 GCP 專案中哪些可以做,哪些不能做
- 下一步,我們切換到 Username 1 主控台
準備一個資源來測試存取
確定你在 Username 1 的主控台
建立一個儲存區
- 建立一個
GCS
儲存區,給予一個獨特的名字。 從主控台,選擇 Navigation menu > Storage > Browser - 點擊 Create bucket
注意: 如果出現一個儲存區建立的權限錯誤,先登出再使用 Username 1 登入
- 更新以下的欄位,沒提到的留為預設
注意儲存區的名字,之後會用到
- 點擊 Create
注意: 如果出現一個儲存區建立的權限錯誤,先登出再使用 Username 1 登入
上傳一個範例檔案
- 在儲存區的細節頁面,點擊 Upload files 按鈕
- 瀏覽你的電腦,找一個可以使用的檔案,任何 text 或 html 檔都可以
- 在檔案那一行的行末,點擊三個小點的圖案,然後點擊 Rename
- 更新檔名為
sample.txt
- 點擊 Rename
點擊 Check my progress 來核對目前進度
核對專案檢視者存取權限
現在切換到 Username 2 主控台
- 從主控台: 選擇 Navigation menu > Storage > Browser 。 核對這個使用者可以看到這個儲存區
Username 2 被賦予 “檢視者” 角色,這個角色有不影響狀態的 “只讀” 權限。 這個範例說明了這個功能 - 在權限範圍內的 GCP 專案,他們可以檢視 Cloud Storage
儲存區,以及檔案
移除專案存取權限
現在切換到 Username 1 主控台
移除 Username 2 的專案檢視權限
- 選擇 Navigation menu > IAM & admin > IAM , 然後點擊 Username2 旁的鉛筆圖案
你可以要將螢幕變寬來看到鉛筆圖案
- 點擊角色名稱旁邊的垃圾桶圖案來移除 Username 2 的檢視者權限, 然後點擊 SAVE
注意到這個使用者已經從清單上消失了,這個使用者現在已經沒有存取權了
備註: 這個動作要完全生效到所有的服務,可能會需要最多 80 秒的時間,更多資訊請參考這裏
核對 Username 2 已經沒有存取權了
切換到 Username 2 主控台。 確認一下目前是 Username 2 登入狀態,而且 Username 2 在生效之後還沒被登出, 如果登出了,在登入一次。
選擇 Navigation menu > Home
點擊 Navigation menu > Storage > Browser 來移動到
Cloud Storage
你應該會看到錯誤如下:
備註: 如同之前提到的,變更生效大概需要最多 80 秒。 如果你沒有收到權限錯誤,等兩分鐘之後再重整一下頁面
點擊 Check my progress 來和對目前進度都有完成
增加儲存權限
- 從 “Connection Details” 面板複製 Username 2
切換到 Username 1 主控台。 確認一下目前是 Username 2 登入狀態,而且 Username 2 在生效之後還沒被登出, 如果登出了,在登入一次。
選擇 Navigation menu > IAM & admin > IAM
點擊 +ADD 然後貼上 Username 2 的名字到 member field
在角色欄位,從下拉選單選擇 Storage > Storage Object Viewer
點擊 SAVE
核對存取權
- 切換到 Username 2 主控台
Username 2 沒有專案檢視者的角色,所以使用者不能在主控台看到專案或者任何專案的資源。但是,這個使用者對 Cloud Storage 有特別的存取權,讓我們來驗證一下 - 點擊 Activate Cloud Shell 圖案來打開
Cloud Shell
命令列
打開 Cloud Shell 視窗,輸入以下的指令,記得用我們一開始建立的儲存區名字來將指令中的
[YOUR_BUCKET_NAME]
取代掉gsutil ls gs://[YOUR_BUCKET_NAME]
你應該會收到類似下面的輸出
gs://[YOUR_BUCKET_NAME]/sample.txt
如你所見,你已經給了 Username 2
Cloud Storage
儲存區的檢視權限
點擊 Check my progress 來和對目前進度都有完成
恭喜
你已經完成本教程!
留言