本頁說明如何使用 Identity and Access Management (IAM) API、 Google Cloud 控制台和 gcloud 指令列工具,列出及編輯服務帳戶。
事前準備
啟用 IAM API。
啟用 API 時所需的角色
您必須具備
serviceusage.services.enable權限,才能啟用 API。如果您建立了專案,可能已透過「擁有者」角色 (roles/owner) 取得這項權限。否則,您可以透過「服務使用情形管理員」角色 (roles/serviceusage.serviceUsageAdmin) 取得這項權限。瞭解如何授予角色。設定驗證方法。
選取這個頁面上您打算如何使用範例的分頁:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
gcloud
在 Google Cloud 控制台中啟用 Cloud Shell。
控制台底部會開啟 Cloud Shell 工作階段,並顯示指令列提示。 Google Cloud Cloud Shell 是已安裝 Google Cloud CLI 的殼層環境,並已針對您目前的專案設定好相關值。工作階段可能要幾秒鐘的時間才能初始化。
C#
如要在本機開發環境中使用本頁的 .NET 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。
C++
如要在本機開發環境中使用本頁的 C++ 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。
Go
如要在本機開發環境中使用本頁的 Go 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。
Java
如要在本機開發環境中使用本頁面的 Java 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。
Python
如要在本機開發環境中使用本頁的 Python 範例,請安裝並初始化 gcloud CLI,然後使用您的使用者憑證設定應用程式預設憑證。
-
安裝 Google Cloud CLI。
-
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
-
如果您使用本機殼層,請為使用者帳戶建立本機驗證憑證:
gcloud auth application-default login
如果您使用 Cloud Shell,則不需要執行這項操作。
如果系統傳回驗證錯誤,且您使用外部識別資訊提供者 (IdP),請確認您已 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
-
瞭解 IAM 服務帳戶
必要的角色
如要取得管理服務帳戶所需的權限,請要求管理員在專案中授予下列 IAM 角色:
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。
IAM 基本角色也包含管理服務帳戶的權限,您不應在正式環境中授予基本角色,但可以在開發或測試環境中授予。
列出服務帳戶
您可以列出專案中的使用者管理服務帳戶,以稽核服務帳戶和金鑰,或做為管理服務帳戶的自訂工具。
您無法列出可能出現在專案允許政策和稽核記錄中的服務代理程式。服務代理不在您的專案中,您無法直接存取。
控制台
前往 Google Cloud 控制台的「Service accounts」(服務帳戶) 頁面。
選取專案。
「Service accounts」(服務帳戶) 頁面會列出所選專案中的所有使用者管理服務帳戶。
gcloud
gcloud iam service-accounts list
這項指令會列出指定專案中的所有使用者管理服務帳戶。
使用下方的任何指令資料之前,請先替換以下項目:
PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如my-project。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud iam service-accounts list --project=PROJECT_ID
Windows (PowerShell)
gcloud iam service-accounts list --project=PROJECT_ID
Windows (cmd.exe)
gcloud iam service-accounts list --project=PROJECT_ID
您應該會收到類似以下的回應:
DISPLAY NAME: SA_DISPLAY_NAME_1 EMAIL: SA_NAME_1@PROJECT_ID.iam.gserviceaccount.com DISABLED: False DISPLAY NAME: SA_DISPLAY_NAME_2 EMAIL: SA_NAME_2@PROJECT_ID.iam.gserviceaccount.com DISABLED: False
C++
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM C++ API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
C#
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM C# API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
Go
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Go API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
Java
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Java API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
Python
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Python API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
REST
serviceAccounts.list
方法會列出指定專案中的所有使用者管理服務帳戶。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如my-project。
HTTP 方法和網址:
GET https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"accounts": [
{
"name": "projects/my-project/serviceAccounts/sa-1@my-project.iam.gserviceaccount.com",
"projectId": "my-project",
"uniqueId": "123456789012345678901",
"email": "sa-1@my-project.iam.gserviceaccount.com",
"description": "My first service account",
"displayName": "Service account 1",
"etag": "BwUpTsLVUkQ=",
"oauth2ClientId": "987654321098765432109"
},
{
"name": "projects/my-project/serviceAccounts/sa-2@my-project.iam.gserviceaccount.com",
"projectId": "my-project",
"uniqueId": "234567890123456789012",
"email": "sa-2@my-project.iam.gserviceaccount.com",
"description": "My second service account",
"displayName": "Service account 2",
"etag": "UkQpTwBVUsL=",
"oauth2ClientId": "876543210987654321098"
}
]
}
編輯服務帳戶
服務帳戶的顯示名稱 (好記的名稱) 和說明通常用於擷取與服務帳戶有關的其他資訊,例如服務帳戶用途或帳戶聯絡人。
控制台
前往 Google Cloud 控制台的「Service accounts」(服務帳戶) 頁面。
選取專案。
按一下要重新命名的服務帳戶電子郵件地址。
在「名稱」方塊中輸入新名稱,然後按一下「儲存」。
gcloud
這項
gcloud iam service-accounts update
指令會更新服務帳戶。
使用下方的任何指令資料之前,請先替換以下項目:
SA_NAME:服務帳戶的英數字元 ID。名稱長度必須介於 6 至 30 個字元之間,可以使用小寫英數字元和破折號。PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如my-project。- 至少替換下列其中一項:
UPDATED_DISPLAY_NAME:服務帳戶的新顯示名稱。UPDATED_DESCRIPTION:服務帳戶的新說明。
執行下列指令:
Linux、macOS 或 Cloud Shell
gcloud iam service-accounts update \ SA_NAME@PROJECT_ID.iam.gserviceaccount.com \ --project=PROJECT_ID --description="UPDATED_SA_DESCRIPTION" \ --display-name="UPDATED_DISPLAY_NAME"
Windows (PowerShell)
gcloud iam service-accounts update ` SA_NAME@PROJECT_ID.iam.gserviceaccount.com ` --project=PROJECT_ID --description="UPDATED_SA_DESCRIPTION" ` --display-name="UPDATED_DISPLAY_NAME"
Windows (cmd.exe)
gcloud iam service-accounts update ^ SA_NAME@PROJECT_ID.iam.gserviceaccount.com ^ --project=PROJECT_ID --description="UPDATED_SA_DESCRIPTION" ^ --display-name="UPDATED_DISPLAY_NAME"
您應該會收到類似以下的回應:
Updated serviceAccount [SA_NAME@PROJECT_ID.iam.gserviceaccount.com]. description: UPDATED_SA_DESCRIPTION displayName: UPDATED_DISPLAY_NAME name: projects/PROJECT_ID/serviceAccounts/SA_NAME@PROJECT_ID.iam.gserviceaccount.com
C++
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM C++ API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
C#
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM C# API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
Go
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Go API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
Java
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Java API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
Python
如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱「IAM 用戶端程式庫」。詳情請參閱 IAM Python API 參考文件。
如要向 IAM 進行驗證,請設定應用程式預設憑證。詳情請參閱「事前準備」。
REST
serviceAccounts.patch
方法會更新服務帳戶。
使用任何要求資料之前,請先修改下列項目的值:
PROJECT_ID:您的 Google Cloud 專案 ID。專案 ID 為英數字串,例如my-project。SA_ID:服務帳戶的 ID。 這可以是SA_NAME@PROJECT_ID.iam.gserviceaccount.com格式的服務帳戶電子郵件地址,也可以是服務帳戶的不重複數字 ID。SA_NAME:服務帳戶的英數字元 ID。名稱長度必須介於 6 至 30 個字元之間,可以使用小寫英數字元和破折號。- 至少替換下列其中一項:
UPDATED_DISPLAY_NAME:服務帳戶的新顯示名稱。UPDATED_DESCRIPTION:服務帳戶的新說明。
HTTP 方法和網址:
PATCH https://iam.googleapis.com/v1/projects/PROJECT_ID/serviceAccounts/SA_ID
JSON 要求主體:
{
"serviceAccount": {
"email": "SA_NAME@PROJECT_ID.iam.gserviceaccount.com",
"displayName": "UPDATED_DISPLAY_NAME",
"description": "UPDATED_DESCRIPTION"
},
"updateMask": "displayName,description"
}
請展開以下其中一個選項,以傳送要求:
您應該會收到如下的 JSON 回覆:
{
"name": "projects/my-project/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com",
"displayName": "My updated service account",
"description": "An updated description of my service account"
}
後續步驟
- 瞭解如何停用及啟用服務帳戶。
- 請參閱將 IAM 角色授予所有類型主體的程序,包括服務帳戶。
- 瞭解如何使用角色建議,縮減所有主體 (包括服務帳戶) 的權限。
- 瞭解如何將服務帳戶附加至資源。
- 瞭解使用服務帳戶的最佳做法。