
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 an instance with name as lab-1 in Project 1
/ 10
Update the default zone
/ 10
Create a configuration for Username 2 and name it as user2
/ 10
Restricting Username 2 to roles/viewer in Project 2
/ 10
Create a new role with permissions for the devops team
/ 10
Check binding to roles/iam.serviceAccountUser
/ 5
Bound Username 2 to devops role
/ 5
Create an instance with name as lab-2 in Project 1
/ 5
Check the created service account
/ 5
Check the binding for the service account to roles/iam.serviceAccountUser
/ 10
Check the binding for the service account to roles/compute.instanceAdmin
/ 10
Check lab-3 has the service account attached
/ 10
本研究室將介紹三個與 IAM 和 gcloud 相關的重要主題:
在本研究室中,您將使用 gcloud
CLI 工具設定 Cloud Identity and Access Management (IAM) 的指令功能。
在本研究室中,您將執行下列作業:
gcloud
用戶端您一開始有兩個使用者帳戶和兩項專案:
user1
具備這兩項專案的「擁有者」權限user2
只具備第一項專案的「檢視者」權限第一項專案中有 Linux 虛擬機器 (VM) 在執行。
Google Cloud 提供 Cloud Identity and Access Management (IAM),可讓您定義使用者 (身分) 擁有的資源權限 (角色),藉此控管存取權。
在 IAM 中,您無法將特定資源的存取權直接授予使用者,而是將不同權限的角色授予經驗證的主體。IAM 的主體原稱為成員。某些 API 仍採行這種用法。
在 Cloud IAM 中,您要將存取權授予「主體」。主體可分成以下類型:
如要進一步瞭解上述身分類型,請參閱身分相關概念指南。
在本研究室中,您將使用 Google 帳戶、服務帳戶和 Cloud Identity 網域群組。
角色是一組權限。您必須為使用者授予角色,以指派必要的權限,也就是將角色包含的所有權限授予使用者。
如要進一步瞭解角色,請參閱角色指南。
gcloud CLI 屬於 Cloud SDK 的一部分。在系統上下載、安裝並初始化 SDK 之後,才能使用 gcloud 指令列工具。您可以透過指令列、指令碼和其他自動化機制使用這項工具,執行許多常見的平台工作。
如要進一步瞭解 gcloud,請參閱 gcloud CLI 總覽指南。
請詳閱以下操作說明。研究室活動會計時,而且中途無法暫停。點選「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 控制台稍後會在這個分頁開啟。
本研究室已有名為「centos-clean」的 Compute Engine 執行個體,用於模擬未安裝 gcloud
的環境。請使用 Google Cloud 控制台連線至這個執行個體。
依序前往「導覽選單」>「Compute Engine」>「VM 執行個體」,開啟運算執行個體清單。
在含有「centos-clean」運算執行個體的那一行中,點選「SSH」。
gcloud
已安裝成功。在 SSH 工作階段中執行以下指令:確認 gcloud
指令列工具已安裝完畢後,請建立運算執行個體來進行變更。
當系統顯示「Do you want to continue (Y/n)?」提示訊息時,請按下 Enter 鍵。
在新分頁中前往所顯示的連結。
按一下您目前所用帳戶的使用者名稱 (
當系統顯示「Enter the following verification code in gcloud CLI on the machine you want to log into」提示訊息時,請點選複製按鈕,然後返回 SSH 工作階段,將程式碼貼到「Enter authorization code:」提示訊息中。
在 SSH 工作階段中設定區域和可用區:
如果一切都已妥善設定,這項指令會建立執行個體。
但執行個體有多大?位在何處?使用的映像檔為何?
服務會採用幾種預設值,其中某些預設值可在 gcloud
設定中控管。舉例來說,執行個體的位置取決於可用區設定。
您會看到 compute
部分、core
部分和 active configuration
。這三者都可變更,但在本研究室中,您只須變更可用區。請查看系統是在哪個可用區中建立 VM。
找出您所在區域中的另一個可用區。例如,如果您目前的可用區是 us-west2-a
,可以選擇 us-west2-b
。
將目前的可用區變更為同區域內的另一個可用區。在 SSH 工作階段中執行以下指令,並將 ZONE
替換為您選擇的可用區:
您會看到可用區已變更。
您可以使用 gcloud config set
指令變更其他設定。變更完成後即無法修改,並會寫入主目錄。
預設設定儲存在 ~/.config/gcloud/configurations/config_default 中。
建立執行個體時,如要使用非預設可用區,可以使用 --zone 參數,例如 gcloud compute instances create lab-1 --zone us-central1-f
。
如您所見,設定是以文字形式儲存,並可備份或複製。
您已設定一個帳戶。如需在不同團隊中工作或存取不同帳戶,您也可以透過 gcloud config
進行管理。
在下一項工作中,您將瞭解如何建立第二項設定,並在兩項設定之間切換。
在本研究室中,您有第二個可登入的 Google 帳戶。這個帳戶具有第一項專案的唯讀 (檢視者) 存取權。您要為該使用者建立新設定。
gcloud
設定。在 SSH 工作階段中執行以下指令:選取選項 2:「Create a new configuration」。
「configuration name」:請輸入 user2。
「Log in with a new account」:選取選項 3。您要使用另一個提供的使用者名稱登入。
當系統顯示「Do you want to continue (Y/n)?」提示訊息時,請按下 Enter 鍵。
在新分頁中前往所顯示的連結。
按一下「Use another account」。
複製第二個使用者帳戶 (
複製您在本研究室一開始時使用的密碼,並貼到「enter your password」提示訊息中。
按一下「I understand」。
按一下「Allow」。
這樣即可允許 Cloud SDK 取得與您 Google 帳戶相同的存取權。
當系統顯示「Enter the following verification code in gcloud CLI on the machine you want to log into」提示訊息時,請點選複製按鈕,然後返回 SSH 工作階段,將程式碼貼到「Enter authorization code:」提示訊息中。
在「Pick cloud project to use:」中,找出您目前的專案 (
初始化完成後,您會看到系統已為您設定好可用區和區域。
這個新帳戶具有專案的唯讀權限,因此您可以試著查看並建立幾項資源,確認您是否確實在使用這個帳戶。
第二個使用者帳戶具有檢視者權限,因此系統應會列出 centos-clean
和 lab-1
執行個體。
第二個使用者帳戶僅具有檢視者權限,無法建立執行個體,因此這項指令無法順利執行,但要過一小段時間才會顯示執行失敗。
您已改回使用原本的使用者帳戶憑證。稍後您要切換使用這兩個帳戶,瞭解不同的角色和權限。
您有兩個使用者帳戶可用於這項專案。第一個使用者具有這兩項專案的完整控管權,可視為管理員帳戶。第二個使用者具有這兩項專案的唯讀權限,並可稱為開發運作使用者,該使用者身分代表一般開發運作層級的使用者。
接下來,您要使用 gcloud
為其中一項專案建立自訂角色,授予建立值區和執行個體的權限,藉此為開發運作使用者設定該專案的存取權。
系統會傳回角色清單。在指令中加入 grep "name:"
可減少傳回的資料量,只傳回角色名稱。
檢查其中一個角色,確認其獲指派的權限。如要查看權限,請使用 gcloud iam roles describe
。試著查看簡易角色 roles/compute.instanceAdmin。
compute.instanceAdmin
角色。在 SSH 工作階段中執行以下指令:如您所見,roles/compute.instanceAdmin 具有許多權限,但以下是稍後會用到的基本權限:
如要查看角色和獲指派權限的完整清單,請參閱 IAM 權限參考指南。
知道角色所含的權限後,請將角色和所有相關權限授予使用者帳戶。
繫結角色的方式有兩種:
接下來,您要針對第二項專案將「檢視者」基本角色繫結至第二個使用者。
gcloud
設定切換回第二個使用者 (user2)。在 SSH 工作階段中執行以下指令:您已切換回 user2
。
PROJECTID2
設為第二項專案。在 SSH 工作階段中執行以下指令:bashrc
檔案,因此請謹慎使用。您會收到以下警告訊息:「WARNING: You do not appear to have access to project <第 2 項專案的 ID> or it does not exist.
」
這表示 user 2 無法存取 PROJECTID2 專案,而您必須在下一部分中修正這個問題。
jq
:接著請將 USERID2
的值設為第二個使用者名稱,並針對第二項專案將檢視者角色繫結至第二個使用者。
執行指令後會顯示如下的文字 (可能需要向上捲動):
這次不應出現錯誤訊息。
您會看到這項專案中沒有任何執行個體。
user2 只有專案的檢視者權限,因此這項指令會失敗。
您已改回使用原本的使用者帳戶憑證。
接下來,請建立具有開發運作團隊所需權限的新角色。
devops
」且具有執行個體建立權限的自訂角色。在 SSH 工作階段中執行以下指令:這項指令會在專案中建立名為「devops
」的自訂角色,且該角色具有建立和管理執行個體的權限。
系統會列出該角色的完整名稱。請注意,該角色位在專案中,因此路徑的模式為 projects/PROJECT/roles/ROLENAME
。
建立角色後,您必須將使用者和該角色繫結至專案。請使用 gcloud projects add-iam-policy-binding
進行繫結。如要讓這項指令更容易執行,請先設定一些環境變數:專案 ID 和使用者帳戶。
iam.serviceAccountUser
角色繫結至第二項專案的第二個使用者。在 SSH 工作階段中執行以下指令:您需要具備相關權限,才能建立已繫結服務帳戶的執行個體。iam.serviceAccountUser
角色具有這些權限,因此請使用這個預先定義的角色。
devops
自訂角色繫結至第二項專案的第二個使用者。第二個使用者帳戶會顯示在這個頁面的左側。確認 USERID 設為第二個使用者帳戶。在 SSH 工作階段中執行以下指令:
執行指令後會顯示如下的文字 (可能需要向上捲動):
您已切換回 user2。
user2 現在可以建立執行個體了。
進行最後這幾項變更後,環境會如下所示:
您已瞭解如何進行驗證,以及如何使用 gcloud
透過角色存取 Google Cloud 服務。接下來,我們將介紹一般做法。
您的應用程式採用應用程式設計介面 (API) 讀取和寫入 Cloud Storage bucket。如果每次啟動新伺服器時都必須進行驗證,肯定會讓您感到困擾,也不符合雲端的精神!因此,您要使用「服務帳戶」。
服務帳戶是一種特殊的 Google 帳戶,屬於您的應用程式或虛擬機器 (VM),而不屬於個別使用者。應用程式會透過服務帳戶呼叫服務的 Google API,因此不會直接牽涉到使用者。
如要進一步瞭解服務帳戶,請參閱服務帳戶指南。
接下來請建立服務帳戶,將該服務帳戶與運算執行個體搭配使用,並測試該服務帳戶是否具備您需要的存取權。
user2
無權設定服務帳戶。在 SSH 工作階段中執行以下指令:PROJECTID2
。在 SSH 工作階段中執行以下指令:請確認您指定的專案正確無誤。
SA
」的區域變數中。在 SSH 工作階段中執行以下指令:這項指令會將 SA 區域變數設為該服務帳戶的電子郵件地址。很實用吧!
iam.serviceAccountUser
角色授予該服務帳戶。在 SSH 工作階段中執行以下指令:這個角色可讓該服務帳戶為運算執行個體指派服務帳戶。
compute.instanceAdmin
角色授予服務帳戶。在 SSH 工作階段中執行以下指令:這個角色可讓服務帳戶管理運算執行個體。
存取權範圍是為執行個體指定權限的傳統方法。存取權範圍並非安全機制,而是用來定義 gcloud
工具或用戶端程式庫要求所使用的預設 OAuth 範圍。如果發出的要求未透過 OAuth 驗證 (例如 gRPC 或 SignBlob API),存取權範圍就沒有任何作用。
設定執行個體以服務帳戶身分執行時,必須設定存取權範圍。
最佳做法是在執行個體上設定完整的 cloud-platform 存取權範圍,然後透過 IAM 角色安全地限制服務帳戶的 API 存取權。
存取權範圍只適用於個別執行個體。您可以在建立執行個體時設定存取權範圍,但一旦該執行個體的生命週期結束,存取權範圍就會失效。
如果您尚未替服務帳戶所屬的專案啟用相關 API,則存取權範圍不會生效。舉例來說,在虛擬機器執行個體上授予 Cloud Storage 的存取權範圍後,您必須為專案啟用 Cloud Storage API,執行個體才能呼叫 Cloud Storage API。
gcloud compute ssh
連線至新建立的執行個體。在 SSH 工作階段中執行以下指令:系統詢問是否要繼續時,請按下 Enter 鍵。
按下 Enter 鍵兩次,略過密碼設定步驟。
gcloud
設定。在 SSH 工作階段中執行以下指令:設定現已有服務帳戶。
您可以按下 Enter 鍵,接受這個 VM 的預設可用區。
由於服務帳戶具備權限,因此系統會列出執行個體。
您已使用 Cloud SDK 工具 gcloud
完成下列工作:
協助您瞭解如何充分運用 Google Cloud 的技術。我們的課程會介紹專業技能和最佳做法,讓您可以快速掌握要領並持續進修。我們提供從基本到進階等級的訓練課程,並有隨選、線上和虛擬課程等選項,方便您抽空參加。認證可協助您驗證及證明自己在 Google Cloud 技術方面的技能和專業知識。
使用手冊上次更新日期:2024 年 4 月 10 日
研究室上次測試日期:2024 年 4 月 10 日
Copyright 2025 Google LLC 保留所有權利。Google 和 Google 標誌是 Google LLC 的商標,其他公司和產品名稱則有可能是其關聯公司的商標。
此内容目前不可用
一旦可用,我们会通过电子邮件告知您
太好了!
一旦可用,我们会通过电子邮件告知您
One lab at a time
Confirm to end all existing labs and start this one