Cloud IAM - 初探

概述

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 來和對目前進度都有完成

恭喜

你已經完成本教程!

Sequelize 學習筆記 使用 Stackdriver 在 Kubernetes Engine 上做紀錄

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×