
Before you begin
- Labs create a Google Cloud project and resources for a fixed time
- Labs have a time limit and no pause feature. If you end the lab, you'll have to restart from the beginning.
- On the top left of your screen, click Start lab to begin
Create a custom role using a YAML file
/ 20
Create a custom role using flags
/ 20
Update a custom role using a YAML file
/ 15
Update a custom role using flags
/ 15
Disabling a custom role
/ 15
Undeleting a custom role
/ 15
Cloud IAM 可提供合適的資源權限管理工具,並具備簡潔和高度自動化的特性,您不會直接授予使用者權限,而是向他們授予繫結了一或多個權限的「角色」。這麼做可將公司內部的職務對應至相關的群組與角色。使用者只會取得完成工作所需的存取權,管理員也能輕鬆將預設權限授予整個使用者群組。
Cloud IAM 中有兩種角色:
預先定義角色是由 Google 建立及維護。角色權限會視需要自動更新,例如 Google Cloud 加入新功能或服務時。
自訂角色是由使用者定義,可繫結一或多個支援的權限以滿足特定需求。自訂角色並非由 Google 維護,因此當 Google Cloud 加入新的權限、功能或服務時,自訂角色不會自動更新。將一或多個可用 Cloud IAM 權限結合,即可建立自訂角色。擁有權限的使用者才能對 Google Cloud 資源執行特定操作。
在本實驗室中,您將建立、更新、刪除與還原自訂角色。
如想獲得最佳學習成效,建議您熟悉 IAM 角色的概念。
請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「Start Lab」 後就會開始計時,讓您瞭解有多少時間可以使用 Google Cloud 資源。
您將在真正的雲端環境中完成實作研究室活動,而不是在模擬或示範環境。為達此目的,我們會提供新的暫時憑證,讓您用來在研究室活動期間登入及存取 Google Cloud。
如要完成這個研究室活動,請先確認:
按一下「Start Lab」(開始研究室) 按鈕。如果研究室會產生費用,畫面中會出現選擇付款方式的彈出式視窗。左側的「Lab Details」窗格會顯示下列項目:
點選「Open Google Cloud console」;如果使用 Chrome 瀏覽器,也能按一下滑鼠右鍵,然後選取「在無痕式視窗中開啟連結」。
接著,實驗室會啟動相關資源並開啟另一個分頁,當中顯示「登入」頁面。
提示:您可以在不同的視窗中並排開啟分頁。
如有必要,請將下方的 Username 貼到「登入」對話方塊。
您也可以在「Lab Details」窗格找到 Username。
點選「下一步」。
複製下方的 Password,並貼到「歡迎使用」對話方塊。
您也可以在「Lab Details」窗格找到 Password。
點選「下一步」。
按過後續的所有頁面:
Google Cloud 控制台稍後會在這個分頁開啟。
Cloud Shell 是搭載多項開發工具的虛擬機器,提供永久的 5 GB 主目錄,而且在 Google Cloud 中運作。Cloud Shell 提供指令列存取權,方便您使用 Google Cloud 資源。
連線完成即代表已通過驗證,且專案已設為您的 PROJECT_ID。輸出內容中有一行宣告本工作階段 PROJECT_ID 的文字:
gcloud
是 Google Cloud 的指令列工具,已預先安裝於 Cloud Shell,並支援 Tab 鍵自動完成功能。
點按「授權」。
輸出畫面應如下所示:
輸出內容:
輸出內容:
輸出內容範例:
gcloud
的完整說明,請前往 Google Cloud 並參閱「gcloud CLI overview guide」(gcloud CLI 總覽指南)。
請執行以下指令來設定專案區域:
Cloud IAM 也提供建立自訂 Cloud IAM 角色的功能。您可以建立具有一或多個權限的自訂 Cloud IAM 角色,然後將這個自訂角色授予使用者。Cloud IAM 還提供 UI 和 API,能用於建立及管理自訂角色。
重要事項:自訂角色可讓您實施最低權限原則,確保機構中的使用者與服務帳戶只具有執行預期職務所需的權限。
將一或多個可用 Cloud IAM 權限結合,即可建立自訂角色。擁有權限的使用者才能對 Google Cloud 資源執行特定操作。
在 Cloud IAM 的通行做法中,權限皆以下列格式表示:
例如:compute.instances.list
權限可讓使用者列出自己擁有的 Compute Engine 執行個體;而 compute.instances.stop
則能讓使用者停止 VM。
權限通常 (但並非絕對) 與 REST 方法有 1:1 的對應關係。也就是說,每個 Google Cloud 服務對於擁有的每個 REST 方法,都有關聯的權限。如要呼叫方法,呼叫者就需要有相關權限。例如:topic.publish()
的呼叫者需要 pubsub.topics.publish
權限。
自訂角色只可用於向相同專案或機構授予政策中的權限,這些專案或機構擁有自訂角色下層的角色或資源。您無法針對某個專案或機構擁有的資源,授予另一個專案或機構的自訂角色。
如要建立自訂角色,呼叫者必須擁有 iam.roles.create
權限。
使用者 (包括機構管理員) 如果不是擁有者,就必須指派為「機構角色管理員」角色 (roles/iam.organizationRoleAdmin) 或「IAM 角色管理員」角色 (roles/iam.roleAdmin)。「IAM 安全性審查者」角色 (roles/iam.securityReviewer) 提供了查看自訂角色的功能,但不含管理功能。
自訂角色的使用者介面位於 Cloud 控制台的「IAM 角色」下方。這個介面只提供給具有建立或管理自訂角色權限的使用者。根據預設,只有專案擁有者可建立新的角色。專案擁有者可以透過為相同專案中的其他使用者授予「IAM 角色管理員」角色,來控制這項功能的存取權。而對機構而言,只有機構管理員能授予「機構角色管理員」角色。
建立自訂角色前,您可能會想瞭解以下內容:
建立自訂角色前,您可能會想知道哪些權限可套用至資源。您可以透過 gcloud 指令列工具、Cloud 控制台或 IAM API,取得可套用到資源及階層下方資源的所有權限。例如,您能夠取得可套用在機構和機構內專案的所有權限。
輸出內容:
在建立自訂角色前,建議您取得預先定義角色和自訂角色的中繼資料。角色中繼資料包括角色 ID 和角色擁有的權限。您可以使用 Cloud 控制台或 IAM API 查看中繼資料。
[ROLE_NAME]
替換為要查看的角色,例如 roles/viewer
或 roles/editor
:輸出內容範例 (roles/viewer):
您可以使用 gcloud iam list-grantable-roles
指令,傳回可套用到特定資源的所有角色清單。
gcloud
指令,從專案列出可授予的角色:輸出內容應如下所示:
如要建立自訂角色,呼叫者必須擁有 iam.roles.create
權限。根據預設,專案或機構的擁有者具備這個權限,並且能建立和管理自訂角色。
使用者 (包括機構管理員) 如果不是擁有者,就必須指派為機構角色管理員角色,或 IAM 角色管理員角色。
請使用 gcloud iam roles create
指令建立新的自訂角色,方法有兩種:
建立自訂角色時,您必須使用 --organization [ORGANIZATION_ID]
或 --project [PROJECT_ID]
標記,指定角色應用於機構層級或專案層級。下列各個範例是在專案層級中建立自訂角色。
在接下來的幾節中,您要在專案層級建立自訂角色。
您可以建立包含自訂角色定義的 YAML 檔案,這個檔案必須按照以下方式建構:
各個預留位置值如下所述:
[ROLE-TITLE]
是角色的好記名稱,例如 Role Viewer。[ROLE_DESCRIPTION]
是角色的相關簡短說明,例如 My custom role description。[LAUNCH_STAGE]
表示角色在推出生命週期中的階段,例如 ALPHA、BETA 或 GA。includedPermissions
指定要加入自訂角色中的一或多個權限的清單,例如 iam.roles.get。接著依序按下 CTRL+X 鍵、Y 鍵和 ENTER 鍵,儲存並關閉檔案。
請執行以下 gcloud
指令:
如果角色建立成功,系統會傳回以下回應:
點選「Check my progress」,確認目標已達成。
接下來請使用旗標方法建立新的自訂角色。這些旗標的格式與 YAML 檔案類似,因此您可以輕鬆瞭解指令的建構方式。
gcloud
指令,使用旗標建立新角色:輸出內容範例:
點選「Check my progress」,確認目標已達成。
gcloud
指令,並指定專案層級或機構層級的自訂角色:輸出內容範例:
如要列出已刪除的角色,您也可以指定 --show-deleted
標記。
gcloud
指令:這是更新資源中繼資料的常見模式,以自訂角色為例:首先讀取角色的目前狀態,在本機上更新資料,然後傳送已修改的資料以供寫入。如果有兩個以上的獨立程序同時嘗試相同順序,這個模式可能會產生衝突。
例如,如果專案有兩位擁有者同時嘗試對角色執行彼此衝突的變更,有些變更可能會失敗。
Cloud IAM 能透過在自訂角色中使用 etag
屬性來解決這個問題。這個屬性可用於確認自訂角色自上一次要求以來是否變更。當您使用 etag 值對 Cloud IAM 提出要求時,Cloud IAM 會比較要求中的 etag 值和與自訂角色相關聯的現有 etag 值。只有在兩個 etag 值彼此相符時,系統才會執行寫入變更。
您可以透過以下任一方法,使用 gcloud iam roles update
指令更新自訂角色。
更新自訂角色時,您必須使用 --organization [ORGANIZATION_ID]
或 --project [PROJECT_ID]
標記,指定這個角色應用於機構層級或專案層級。下列各個範例是在專案層級中建立自訂角色。
describe
指令可傳回角色定義,並包含專門用於辨識角色目前版本的 etag 值。您必須在已更新角色定義中提供 etag 值,以確保並行角色變更並未遭到覆寫。
gcloud
指令來取得角色目前的定義,並將 [ROLE_ID]
替換為 editor。describe
指令傳回以下輸出內容:
複製輸出內容,用於在接下來的步驟中建立新的 YAML 檔案。
使用編輯器建立 new-role-definition.yaml
檔案:
includedPermissions
下方新增以下兩個權限:完成後,YAML 檔案將如下所示:
接著依序按下 CTRL+X 鍵、Y 鍵和 ENTER 鍵,儲存並關閉檔案。
接著使用 update
指令來更新檔案。執行下列 gcloud
指令,將 [ROLE_ID]
替換為 editor:
如果角色更新成功,系統會傳回以下回應:
點選「Check my progress」,確認目標已達成。
您可以使用相應的標記,更新角色定義的各個部分。如需 SDK 參考文件中所有可用旗標的清單,請參閱 gcloud iam roles update 主題。
使用下列旗標新增或移除權限:
--add-permissions
:為角色新增一或多個以半形逗號分隔的權限。--remove-permissions
:移除角色中一或多個以半形逗號分隔的權限。或者,您可以透過 --permissions [PERMISSIONS]
標記指定新權限,並提供以半形逗號分隔的權限清單來取代現有的權限清單。
gcloud
指令,使用標記將權限新增到 viewer 角色:如果角色更新成功,系統會傳回以下回應:
點選「Check my progress」,確認目標已達成。
角色停用後,與角色相關的所有政策繫結都會停用,這代表系統不會授予角色中的權限 (即使您將角色授予使用者)。
如要停用現有自訂角色,最簡單的方式就是使用 --stage
旗標,並將其設為 DISABLED。
gcloud
指令,停用 viewer 角色:如果角色更新成功,系統會傳回以下回應:
點選「Check my progress」,確認目標已達成。
gcloud iam roles delete
指令刪除自訂角色。刪除後,角色將處於未啟用狀態,且無法用來建立新的 IAM 政策繫結:輸出內容範例:
系統刪除角色後,現有的繫結仍會存在,但處於停用狀態。角色可以在 7 天內取消刪除。7 天後,這個角色就會進入永久刪除程序,程序將持續進行 30 天。37 天後,角色 ID 即可再次使用。
--stage
旗標:點選「Check my progress」,確認目標已達成。
在這個實驗室,您建立並管理了 IAM 中的自訂角色。
如想進一步瞭解 IAM,請參閱「Cloud Identity and Access Management」。
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2024 年 4 月 15 日
實驗室上次測試日期:2023 年 7 月 13 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
One lab at a time
Confirm to end all existing labs and start this one