本頁說明如何建立及管理 Identity and Access Management (IAM) 自訂角色。管理角色包括修改、停用、列出、刪除及取消刪除角色。
事前準備
- Enable the IAM API. - Roles required to enable APIs - To enable APIs, you need the Service Usage Admin IAM role ( - roles/serviceusage.serviceUsageAdmin), which contains the- serviceusage.services.enablepermission. Learn how to grant roles.
- 設定驗證方法。 - Select the tab for how you plan to use the samples on this page: - Console- When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication. - gcloud- In the Google Cloud console, activate Cloud Shell. - At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. - C#- 如要在本機開發環境中使用本頁的 .NET 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。 - 安裝 Google Cloud CLI。 - 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。 - C++- 如要在本機開發環境中使用本頁的 C++ 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。 - 安裝 Google Cloud CLI。 - 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。 - Go- 如要在本機開發環境中使用本頁的 Go 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。 - 安裝 Google Cloud CLI。 - 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。 - Java- 如要在本機開發環境中使用本頁的 Java 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。 - 安裝 Google Cloud CLI。 - 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。 - Python- 如要在本機開發環境中使用本頁的 Python 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。 - 安裝 Google Cloud CLI。 - 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。 - If you're using a local shell, then create local authentication credentials for your user account: - gcloud auth application-default login - You don't need to do this if you're using Cloud Shell. - If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity. - 詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。 - REST- 如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。 - 安裝 Google Cloud CLI。 - 如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。 - 詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。 - 瞭解 Google Cloud 資源階層。 - 請參閱「瞭解 IAM 自訂角色」。 - 必要的角色- 如要取得建立及管理自訂角色所需的權限,請要求管理員授予下列 IAM 角色: - 
            如要管理專案的角色,您必須具備以下角色:
              
  
  
    
      角色管理員   (roles/iam.roleAdmin) 您要管理角色的專案
- 
            如要管理機構的角色,您必須擁有要管理角色的機構的機構角色管理員  (roles/iam.organizationRoleAdmin) 角色。
 - 如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。 - 查看專案、資料夾和機構的可用權限- 您可以為整個機構或機構中的特定專案建立自訂角色。自訂角色可用的權限取決於您建立角色的位置。舉例來說,如果某項權限只能在機構層級使用,您就無法將該權限納入專案層級的自訂角色。 - 如要查看機構層級和專案層級自訂角色可用的權限,可以使用 gcloud CLI 或 Identity and Access Management API,列出特定機構或專案中可用的權限。例如,您可以取得專案中建立的自訂角色可用的所有權限。 - 即使自訂角色支援某些權限,您可能也看不到這些權限,或無法在自訂角色中使用。舉例來說,如果您尚未啟用服務的 API,可能無法在自訂角色中使用相關權限。 - 如要進一步瞭解可新增至自訂角色的權限,請參閱支援的權限。 - gcloud- 
  
   
   
  
 
   
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    使用 gcloud iam list-testable-permissions指令,即可取得特定專案或機構中自訂角色可用的權限清單。回應會列出您可在該專案或機構的自訂角色中使用的權限。如要列出專案或機構自訂角色可用的權限,請執行下列指令: gcloud iam list-testable-permissions FULL_RESOURCE_NAME \ --filter="customRolesSupportLevel!=NOT_SUPPORTED"將 FULL_RESOURCE_NAME替換為下列其中一個值:- 
        專案: //cloudresourcemanager.googleapis.com/projects/PROJECT_ID(例如//cloudresourcemanager.googleapis.com/projects/my-project)
- 
        機構: //cloudresourcemanager.googleapis.com/organizations/NUMERIC_ID(例如//cloudresourcemanager.googleapis.com/organizations/123456789012)
 結果會指出自訂角色是否支援各項權限。 沒有「 customRolesSupportLevel」欄位的權限完全受到支援。list-testable-permissions指令可能會傳回數百個結果。這個部分範例顯示每個結果的格式:--- name: appengine.applications.create stage: GA --- customRolesSupportLevel: TESTING name: appengine.applications.disable stage: GA --- name: appengine.applications.get stage: GA --- name: appengine.applications.update stage: GA --- name: appengine.instances.delete stage: GA --- name: appengine.instances.get stage: GA --- 
- 
        
- FULL_RESOURCE_NAME:由服務名稱和資源路徑組成的 URI。如需範例,請參閱「完整資源名稱」。
- PAGE_SIZE:選用。要在回應中納入的權限數量。預設值為 100,最大值為 1,000。如果權限數量大於頁面大小,回應會包含分頁符記,可用於擷取下一頁結果。
- NEXT_PAGE_TOKEN:選用。這個方法先前回應中傳回的分頁符記。如果指定,可測試的權限清單會從前一個回應結束的位置開始。
 - 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- permissions.queryTestablePermissions方法會列出機構或專案中可用的權限。- 使用任何要求資料之前,請先替換以下項目: - HTTP 方法和網址: - POST https://iam.googleapis.com/v1/permissions:queryTestablePermissions - JSON 要求主體: - { "fullResourceName": "FULL_RESOURCE_NAME" "pageSize": PAGE_SIZE, "pageToken": "NEXT_PAGE_TOKEN" }- 如要傳送要求,請展開以下其中一個選項: - 回覆會包含權限清單。 - { "permissions": [ { "name": "iam.serviceAccountKeys.create", "stage": "GA" }, { "name": "iam.serviceAccountKeys.delete", "stage": "GA" }, { "name": "iam.serviceAccountKeys.get", "stage": "GA" } ], "nextPageToken": "CgoHBajEfjUDQyABEPaIv5vIiMDTVhgDIhtpYW0uc2VydmljZUFjY291bnRLZXlzLmxpc3Q" }- 取得角色中繼資料- 在建立自訂角色前,您可能會想要取得預先定義角色和自訂角色的中繼資料。角色中繼資料包括角色 ID 和角色擁有的權限。您可以使用Google Cloud 控制台或 IAM API 查看中繼資料。 - 如要檢視角色中繼資料,請使用以下任一方式: - 控制台- 前往 Google Cloud 控制台的「Roles」(角色) 頁面。 
- 在頁面頂端的下拉式選單中選取機構或專案。 
- 選取一或多個角色的核取方塊,即可檢視角色的權限。 右側面板會顯示角色擁有的權限(如有)。 
 - 「類型」欄中的圖示表示角色為自訂角色 或預先定義的角色。 - 如果要尋找包含特定權限的所有角色,請在「角色」清單頂端的「篩選」方塊中輸入權限名稱。 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    使用 gcloud iam roles describe指令查看預先定義角色和自訂角色的中繼資料。如要檢視預先定義角色的中繼資料,請執行下列指令: gcloud iam roles describe ROLE_ID ROLE_ID是角色的 ID。預先定義的角色 ID 會加上role前置字元,例如roles/iam.roleViewer。下列範例說明在預先定義角色 roles/iam.roleViewer上執行describe指令的輸出:gcloud iam roles describe roles/iam.roleViewerdescription: Read access to all custom roles in the project. etag: AA== includedPermissions: - iam.roles.get - iam.roles.list - resourcemanager.projects.get - resourcemanager.projects.getIamPolicy name: roles/iam.roleViewer stage: GA title: Role Viewer 如要查看自訂角色的中繼資料,請執行下列任一指令: - 
        如要查看機構層級建立的自訂角色中繼資料,請執行下列指令: gcloud iam roles describe --organization=ORGANIZATION_ID ROLE_ID 
- 
        如要查看專案層級建立的自訂角色中繼資料,請執行下列指令: gcloud iam roles describe --project=PROJECT_ID ROLE_ID 
 各個預留位置值如下所述: - 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
- 
        ROLE_ID是角色 ID,不含任何前置字串,例如projects/、organizations/或roles/。例如:myCompanyAdmin。
 詳情請參閱 gcloud iam roles describe的參考說明文件。
- 
        
- ROLE_NAME:完整角色名稱,包括任何- organizations/、- projects/或- roles/前置字串。例如:- organizations/123456789012/roles/myCompanyAdmin。
 - 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- roles.get方法會取得角色的定義。- 使用任何要求資料之前,請先替換以下項目: - HTTP 方法和網址: - GET https://iam.googleapis.com/v1/ROLE_NAME - 如要傳送要求,請展開以下其中一個選項: - 回覆會包含角色定義。 - { "name": "projects/my-project/roles/customRole", "title": "My Custom Role", "description": "My custom role description.", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "etag": "BwWiPg2fmDE=" }- 建立自訂角色- 您可以在專案或機構層級建立自訂角色。 - 機構層級的自訂角色可以包含自訂角色支援的任何 IAM 權限。專案層級的自訂角色可以包含任何支援的權限,但只能在機構或資料夾層級使用的權限除外,例如 - resourcemanager.organizations.get。如果您嘗試將這些權限新增至專案層級的自訂角色,就會看到錯誤訊息:- 控制台- 顯示以下警告訊息:「不適用於專案層級的自訂角色」。系統會自動從所含權限清單中取消選取該權限,您可以繼續建立角色。 - gcloud- 系統會傳回下列錯誤訊息: - INVALID_ARGUMENT: Permission PERMISSION is not valid。您必須先從角色定義中移除權限,然後再次嘗試執行作業,系統才會建立自訂角色。- REST API- 系統會傳回下列錯誤訊息: - Permission PERMISSION is not valid,以及 HTTP 400 錯誤代碼和- INVALID_ARGUMENT狀態。您必須先從角色定義中移除權限,然後再次嘗試操作,才能建立自訂角色。- 每個自訂角色最多可包含 3,000 項權限。此外,自訂角色的名稱、說明和權限名稱總大小上限為 64 KB。如需建立較大的自訂角色,您可以將權限分配給多個自訂角色。選擇可顯示自訂角色之間關係的角色名稱,例如「 - Custom Admin (1 of 2)」和「- Custom Admin (2 of 2)」。- 每個自訂角色都可以有發布階段。大多數的推出階段都屬於資訊性質,可協助您追蹤每個角色是否已準備好廣泛使用。此外,您也可以透過 - DISABLED推出階段停用自訂角色。如要進一步瞭解推出階段,請參閱「測試及部署」。- 控制台- 某些預先定義的角色具有已淘汰的權限,或是自訂角色中不允許的權限。如果您嘗試以其中一個預先定義的角色為基礎建立自訂角色,自訂角色會省略已淘汰和受限的權限。 - 從頭建立建立新的自訂角色: - 前往 Google Cloud 控制台的「Roles」(角色) 頁面。 
- 使用頁面頂端的下拉式清單,選取要建立角色的機構或專案。 
- 按一下「建立角色」。 
- 輸入角色的「標題」、「說明」、「ID」和「角色推出階段」。角色建立後即無法變更角色 ID。 
- 按一下 [Add Permissions] (新增權限)。 
- 選取要加入角色中的權限,然後按一下 [Add Permissions] (新增權限)。使用「所有服務」和「所有類型」下拉式清單,根據服務和類型篩選及選取權限。 
 - 以現有的預先定義角色為基礎建立自訂角色: - 前往 Google Cloud 控制台的「Roles」(角色) 頁面。
- 選取要建立角色的機構或專案。
- 選取要用來建立新自訂角色的基礎角色。
- 按一下 [根據選取的角色建立角色]。
- 輸入角色的「標題」、「說明」、「ID」和「角色推出階段」。角色建立後即無法變更角色 ID。
- 取消勾選要從角色中排除的權限。
- 按一下 [新增權限] 加入任何權限。
- 點選「建立」。
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    使用 gcloud iam roles create指令建立新的自訂角色。請透過以下兩種方式使用這項指令:- 
        透過提供包含角色定義的 YAML 檔案 
- 
        透過使用標記來指定角色定義 
 建立自訂角色時,您必須使用 --organization=ORGANIZATION_ID或--project=PROJECT_ID標記,指定角色應用於機構層級或專案層級。下列各個範例是在專案層級中建立自訂角色。自訂角色只能包含自訂角色支援的權限。如果自訂角色包含其他權限,指令就會失敗。 透過 YAML 檔案建立自訂角色: 您可以建立包含自訂角色定義的 YAML 檔案,這個檔案必須按照以下方式建構: title: ROLE_TITLE description: ROLE_DESCRIPTION stage: LAUNCH_STAGE includedPermissions: - PERMISSION_1 - PERMISSION_2 各個預留位置值如下所述: - 
        ROLE_TITLE是角色的好記稱號,例如"My Company Admin"。
- 
        ROLE_DESCRIPTION是角色的簡短說明,例如"My custom role description"。
- 
        LAUNCH_STAGE表示角色在推出生命週期中的階段,例如ALPHA、BETA或GA。
- 
        PERMISSION_1和PERMISSION_2是要加入自訂角色的權限,例如iam.roles.get。權限名稱不得使用萬用字元 (*)。
 儲存 YAML 檔案,然後執行下列其中一個指令: - 
        如要在機構層級建立自訂角色,請執行下列指令: gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
- 
        如要在專案層級建立自訂角色,請執行下列指令: gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
 各個預留位置值如下所述: - 
        ROLE_ID是角色名稱,例如myCompanyAdmin。
- 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
- 
      YAML_FILE_PATH是包含自訂角色定義的 YAML 檔案的位置路徑。
 範例 以下 YAML 檔案範例說明如何建立角色定義: title: "My Company Admin" description: "My custom role description." stage: "ALPHA" includedPermissions: - iam.roles.get - iam.roles.list 以下範例說明如何使用 YAML 檔案,在機構層級建立角色: gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml如果角色建立成功,指令的輸出內容會類似下列內容: Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 以下範例說明如何使用 YAML 檔案在專案層級建立角色: gcloud iam roles create myCompanyAdmin --project=my-project \ --file=my-role-definition.yaml如果角色建立成功,指令的輸出內容會類似下列內容: Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 如何使用標記建立自訂角色: 執行下列其中一個指令: - 
        如要在機構層級建立自訂角色,請執行下列指令: gcloud iam roles create ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE
- 
        如要在專案層級建立自訂角色,請執行下列指令: gcloud iam roles create ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --permissions="PERMISSIONS_LIST" --stage=LAUNCH_STAGE
 各個預留位置值如下所述: - 
        ROLE_ID是角色名稱,例如myCompanyAdmin。
- 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
- 
        ROLE_TITLE是角色的好記稱號,例如"My Company Admin"。
- 
        ROLE_DESCRIPTION是角色的簡短說明,例如"My custom role description."。
- 
        PERMISSIONS_LIST具有要加入自訂角色中並以半形逗號分隔的權限清單。例如:iam.roles.get,iam.roles.list。權限名稱不得使用萬用字元 (*)。
- 
        LAUNCH_STAGE表示角色在推出生命週期中的階段,例如ALPHA、BETA或GA。
 範例 以下範例說明如何使用標記在機構層級建立角色: gcloud iam roles create myCompanyAdmin --organization=123456789012 \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHA如果角色建立成功,指令會輸出類似以下的結果: Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 以下範例說明如何使用標記在專案層級建立角色: gcloud iam roles create myCompanyAdmin --project=my-project \ --title="My Company Admin" --description="My custom role description." \ --permissions="iam.roles.get,iam.roles.list" --stage=ALPHA如果角色建立成功,指令的輸出內容會類似下列內容: Created role [myCompanyAdmin]. description: My custom role description. etag: BwVkBX0sQD0= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 
- 
        
- RESOURCE_TYPE:要管理自訂角色的資源類型。請使用- projects或- organizations值。
- RESOURCE_ID:您要管理的自訂角色所屬專案 ID 或機構 ID。專案 ID 為英數字串,例如- my-project。機構 ID 為數字,例如- 123456789012。
- ROLE_ID:角色名稱,例如- myCompanyAdmin。
- ROLE_TITLE:使用者可自然閱讀的角色名稱。例如:- My Company Admin。
- ROLE_DESCRIPTION:角色的說明。例如:- "The company admin role allows company admins to access important resources"。
- 
    PERMISSION_1和PERMISSION_2:要加入角色中的權限。例如,storage.objects.update。權限名稱不得使用萬用字元 (*)。自訂角色只能包含自訂角色支援的權限。如果自訂角色包含其他權限,要求就會失敗。 
- LAUNCH_STAGE:角色的目前發布階段。這個欄位可包含下列任一值:- EAP、- ALPHA、- BETA、- GA、- DEPRECATED或- DISABLED。
 - 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- roles.create方法會在專案或機構中建立自訂角色。- 使用任何要求資料之前,請先替換以下項目: - HTTP 方法和網址: - POST https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles - JSON 要求主體: - { "roleId": "ROLE_ID", "role": { "title": "ROLE_TITLE", "description": "ROLE_DESCRIPTION", "includedPermissions": [ "PERMISSION_1", "PERMISSION_2" ], "stage": "LAUNCH_STAGE" } }- 如要傳送要求,請展開以下其中一個選項: - 回應會包含您建立的角色。 - { "name": "projects/myProject/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWox/JbaZw=" }- 編輯現有自訂角色- 這是更新資源中繼資料的常見模式,以自訂角色為例:首先讀取角色的目前狀態,在本機上更新資料,然後傳送已修改的資料以供寫入。使用這種模式時,您會讀取角色的目前狀態、在本機更新資料,然後傳送已修改的資料以供寫入。 - 如果有兩個以上的獨立程序同時嘗試相同順序,讀取-修改-寫入模式可能會產生衝突。舉例來說,如果專案有兩位擁有者同時嘗試對角色執行彼此衝突的變更,有些變更可能會失敗。IAM 能透過在自訂角色中使用 - etag屬性來解決這個問題。這個屬性可用於確認自訂角色自上一次要求以來是否變更。當您使用 etag 值對 IAM 提出要求時,IAM 會比較要求中的 etag 值和與自訂角色相關聯的現有 etag 值。只有在兩個 etag 值彼此相符時,系統才會執行寫入變更。- 如要更新角色,請先使用 - roles.get()取得角色,更新角色,然後再使用- roles.patch()寫入已更新的角色。只有在- roles.get()中的相應角色含有 ETag 值時,您才能使用 ETag 值來設定角色。- 控制台- 前往 Google Cloud 控制台的「Roles」(角色) 頁面。 
- 使用頁面頂端的下拉式清單,選取要編輯角色的專案或機構。 
- 按一下自訂角色。 
- 按一下 [編輯角色]。 
- 如要更新角色的中繼資料,請編輯角色的「名稱」、「說明」或「角色發布階段」。 
- 如要更新角色的權限,請按照下列步驟操作: - 按一下 [新增權限] 將新的權限加入角色。
- 取消勾選要從角色中移除的權限。
 
- 按一下 [更新] 儲存已編輯的角色。 
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    使用 gcloud iam roles update指令更新自訂角色。請透過以下兩種方式使用這項指令:- 
        提供含有新版角色定義的 YAML 檔案 
- 
        使用標記來指定新版角色定義 
 更新自訂角色時,您必須使用 --organization=ORGANIZATION_ID或--project=PROJECT_ID標記,指定這個角色應用於機構層級還是專案層級。下列各個範例是在專案層級中建立自訂角色。如要使用 YAML 檔案更新自訂角色,請按照下列步驟操作: 執行下列其中一個指令,取得角色目前的定義: - 
        如要取得機構層級自訂角色的角色定義,請執行下列指令: gcloud iam roles describe ROLE_ID --organization=ORGANIZATION_ID 
- 
        如要取得專案層級自訂角色的角色定義,請執行下列指令: gcloud iam roles describe ROLE_ID --project=PROJECT_ID 
 各個預留位置值如下所述: - 
        ROLE_ID是要更新的角色名稱,例如myCompanyAdmin。
- 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
 describe指令會傳回角色定義,並包含專門用於辨識角色目前版本的etag值。您必須在已更新角色定義中提供etag值,以確保並行角色變更並未遭到覆寫。describe指令會傳回下列輸出內容:description: ROLE_DESCRIPTION etag: ETAG includedPermissions: - PERMISSION_1 - PERMISSION_2 name: ROLE_NAME stage: LAUNCH_STAGE title: ROLE_TITLE 各個預留位置值如下所述: - 
        ROLE_DESCRIPTION是角色的簡短說明,例如"My custom role description"。
- 
        ETAG是角色目前版本的專屬 ID,例如BwVkBkbfr70=。
- 
        PERMISSION_1和PERMISSION_2是要加入自訂角色的權限,例如iam.roles.get。權限名稱不得使用萬用字元 (*)。
- 
        ROLE_NAME是完整的角色名稱,包括任何organizations/、projects/或roles/前置字串。例如:organizations/123456789012/roles/myCompanyAdmin.
- 
        LAUNCH_STAGE表示角色在推出生命週期中的階段,例如ALPHA、BETA或GA。
- 
        ROLE_TITLE是角色的好記稱號,例如"My Company Admin"。
 如要更新角色,請將輸出的角色定義加入 YAML 檔案中,或者使用輸出的 etag值更新原始的 YAML 檔案。請參考下列 YAML 檔案範例,其中包含專案層級角色的 describe指令輸出內容,並新增兩個 Cloud Storage 權限:description: My custom role description. etag: BwVkBkbfr70= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 儲存 YAML 檔案,然後執行下列其中一個指令: - 
        如要更新機構層級的角色,請執行下列指令: gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH
- 
        如要更新專案層級角色,請執行下列指令: gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
 各個預留位置值如下所述: - 
        ROLE_ID是要更新的角色名稱,例如myCompanyAdmin。
- 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project-id。
- 
        YAML_FILE_PATH是包含已更新自訂角色定義的 YAML 檔案位置路徑。
 範例 以下範例說明如何使用 YAML 檔案更新機構層級的角色: gcloud iam roles update ROLE_ID --organization=ORGANIZATION_ID \ --file=YAML_FILE_PATH- 
        如要更新專案層級角色,請執行下列指令: gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --file=YAML_FILE_PATH
 各個預留位置值如下所述: - 
        ROLE_ID是要更新的角色名稱,例如myCompanyAdmin。
- 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
- 
        YAML_FILE_PATH是包含已更新自訂角色定義的 YAML 檔案位置路徑。
 範例 以下範例說明如何使用 YAML 檔案更新機構層級角色: gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --file=my-role-definition.yaml如果角色更新成功,指令會輸出類似以下的結果: description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 以下範例說明如何透過 YAML 檔案更新專案層級角色: gcloud iam roles update myCompanyAdmin --project=my-project \ --file=my-role-definition.yaml如果角色更新成功,指令會輸出類似以下的結果: description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 如何使用標記更新自訂角色: 您可以使用相應的標記,更新角色定義的各個部分。 如需所有可用旗標的清單,請參閱 gcloud iam roles update主題。如要新增或移除權限,請使用以下標記: - 
        --add-permissions=PERMISSIONS:為角色新增一或多個以半形逗號分隔的權限。權限名稱不得使用萬用字元 (*)。
- 
        --remove-permissions=PERMISSIONS:從角色中移除一或多個以半形逗號分隔的權限。權限名稱不得使用萬用字元 (*)。
 或者,您可以透過 --permissions=PERMISSIONS標記指定新權限,並提供以半形逗號分隔的權限清單來取代現有的權限清單。如要更新角色定義的其他部分,請執行下列其中一個指令: - 
        如要更新機構層級的角色,請執行下列指令: gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE
- 
        如要更新專案層級角色,請執行下列指令: gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --title=ROLE_TITLE --description=ROLE_DESCRIPTION \ --stage=LAUNCH_STAGE
 各個預留位置值如下所述: - 
        ROLE_ID是角色名稱,例如myCompanyAdmin。
- 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
- 
        ROLE_TITLE是角色的好記稱號,例如"My Company Admin"。
- 
        ROLE_DESCRIPTION是角色的簡短說明,例如"My custom role description."。
- 
        LAUNCH_STAGE表示角色在推出生命週期中的階段,例如ALPHA、BETA或GA。
 範例 以下範例說明如何使用標記,為機構層級角色新增權限: gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --add-permissions="storage.buckets.get,storage.buckets.list"如果角色更新成功,指令會輸出類似以下的結果: description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 以下範例說明如何使用標記,為專案層級角色新增權限: gcloud iam roles update myCompanyAdmin --project=my-project \ --add-permissions="storage.buckets.get,storage.buckets.list"如果角色更新成功,指令會輸出類似以下的結果: description: My custom role description. etag: BwVkBwDN0lg= includedPermissions: - iam.roles.get - iam.roles.list - storage.buckets.get - storage.buckets.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 
- 
        
- RESOURCE_TYPE:要管理自訂角色的資源類型。請使用- projects或- organizations值。
- RESOURCE_ID:您要管理的自訂角色所屬專案 ID 或機構 ID。專案 ID 為英數字串,例如- my-project。機構 ID 為數字,例如- 123456789012。
- ROLE_NAME:完整角色名稱,包括任何- organizations/、- projects/或- roles/前置字串。例如:- organizations/123456789012/roles/myCompanyAdmin。
- ETAG:角色版本的 ID。 請加入這個欄位,避免覆寫其他角色變更。
- ROLE_TITLE:使用者可自然閱讀的角色名稱。例如:- My Company Admin。
- ROLE_DESCRIPTION:角色的說明。例如:- "The company admin role allows company admins to access important resources"。
- PERMISSION_1和- PERMISSION_2:要加入角色中的權限。例如,- storage.objects.update。權限名稱不得使用萬用字元 (- *)。
- LAUNCH_STAGE:角色的目前發布階段。這個欄位可包含下列任一值:- EAP、- ALPHA、- BETA、- GA、- DEPRECATED或- DISABLED。
 - 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- roles.patch方法會更新專案或機構中的自訂角色。- 使用任何要求資料之前,請先替換以下項目: - 必要條件: - 建議做法: - 選用 (定義下列一或多個值): - HTTP 方法和網址: - PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles - JSON 要求主體: - { "roleId": "ROLE_NAME", "title": "ROLE_TITLE", "description": "ROLE_DESCRIPTION", "includedPermissions": [ "PERMISSION_1", "PERMISSION_2" ], "stage": "LAUNCH-STAGE", "etag": "ETAG" }- 如要傳送要求,請展開以下其中一個選項: - 回應會包含簡短的角色定義,包括角色名稱、您更新的欄位,以及用於識別角色目前版本的 etag。 - { "name": "projects/test-project-1000092/roles/myCompanyAdmin", "title": "My Updated Company Admin", "includedPermissions": [ "storage.buckets.get", "storage.buckets.list" ], "stage": "BETA", "etag": "BwWoyDpAxBc=" }- 停用自訂角色- 如要停用自訂角色,請將啟動階段變更為 - DISABLED。角色停用後,與角色相關的所有角色繫結都會停用,這代表將角色授予使用者不會有任何影響。- 控制台- 前往 Google Cloud 控制台的「Roles」(角色) 頁面。 
- 按一下頁面頂端的「Select a project」下拉式選單。 
- 選取您的機構或專案。 
- 選取自訂角色,再按一下 [停用]。 
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    使用 gcloud iam roles update指令,將自訂角色的發布階段設為DISABLED,即可停用該角色。如「gcloud」分頁的「編輯現有的自訂角色」一節所述,您可以透過以下兩種方式更新現有的自訂角色: - 
        提供含有新版角色定義的 YAML 檔案 
- 
        使用標記來指定新版角色定義 
 如要停用現有自訂角色,最簡單的方式就是使用 --stage旗標,並將其設為DISABLED。執行下列其中一個指令:- 
        如要停用機構層級角色,請執行下列指令: gcloud iam roles update ROLE_ID--organization=ORGANIZATION_ID \ --stage=DISABLED
- 
        如要停用專案層級角色,請執行下列指令: gcloud iam roles update ROLE_ID --project=PROJECT_ID \ --stage=DISABLED
 各個預留位置值如下所述: - 
        ROLE_ID是角色名稱,例如myCompanyAdmin。
- 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
 範例 以下範例說明如何停用機構層級角色: gcloud iam roles update myCompanyAdmin --organization=123456789012 \ --stage=DISABLED如果角色更新成功,指令會輸出類似以下的結果: description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: DISABLED title: My Company Admin 以下範例說明如何停用專案層級角色: gcloud iam roles update myCompanyAdmin --project=my-project \ --stage=DISABLED如果角色更新成功,指令會輸出類似以下的結果: description: My custom role description. etag: BwVkB5NLIQw= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: DISABLED title: My Company Admin 
- 
        
- RESOURCE_TYPE:要管理自訂角色的資源類型。請使用- projects或- organizations值。
- RESOURCE_ID:您要管理的自訂角色所屬專案 ID 或機構 ID。專案 ID 為英數字串,例如- my-project。機構 ID 為數字,例如- 123456789012。
- ROLE_NAME:完整角色名稱,包括任何- organizations/、- projects/或- roles/前置字串。例如:- organizations/123456789012/roles/myCompanyAdmin。
- ETAG:角色版本的 ID。 請加入這個欄位,避免覆寫其他角色變更。
 - C++- 將角色的 - stage欄位更新為- DISABLED。- C#- 將角色的 - stage欄位更新為- DISABLED。- Go- 將角色的 - stage欄位更新為- DISABLED。- Java- 如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱 IAM 用戶端程式庫。 詳情請參閱 IAM Java API 參考說明文件。 - 如要向 IAM 進行驗證,請設定應用程式預設憑證。 詳情請參閱「事前準備」。 - Python- 如要瞭解如何安裝及使用 IAM 的用戶端程式庫,請參閱 IAM 用戶端程式庫。 詳情請參閱 IAM Python API 參考說明文件。 - 如要向 IAM 進行驗證,請設定應用程式預設憑證。 詳情請參閱「事前準備」。 - REST- 您可以使用 - roles.patch方法,將自訂角色的推出階段變更為- DISABLED, 藉此停用角色。- 使用任何要求資料之前,請先替換以下項目: - HTTP 方法和網址: - PATCH https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles - JSON 要求主體: - { "roleId": "ROLE_NAME", "stage": DISABLED, "etag": "ETAG" }- 如要傳送要求,請展開以下其中一個選項: - 您應該會收到如下的 JSON 回應: - { "name": "projects/test-project-1000092/roles/myCompanyAdmin", "stage": "DISABLED", "etag": "BwWoyDpAxBc=" }- 列出角色- 您可以列出專案或機構中建立的所有自訂角色。 - 控制台- 前往 Google Cloud 控制台的「Roles」(角色) 頁面。 - 頁面會列出您所選機構或專案的所有自訂角色。 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    使用 gcloud iam roles list指令列出專案或機構的自訂角色和預先定義角色:- 
        如要列出機構層級的自訂角色,請執行下列指令: gcloud iam roles list --organization=ORGANIZATION_ID 
- 
        如要列出專案層級的自訂角色,請執行下列指令: gcloud iam roles list --project=PROJECT_ID 
 各個預留位置值如下所述: - 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
 如要列出已刪除的角色,您也可以指定 --show-deleted標記。如要列出預先定義角色,請執行下列指令: gcloud iam roles list 
- 
        
- RESOURCE_TYPE:要管理自訂角色的資源類型。請使用- projects或- organizations值。
- RESOURCE_ID:您要管理的自訂角色所屬專案 ID 或機構 ID。專案 ID 為英數字串,例如- my-project。機構 ID 為數字,例如- 123456789012。
- ROLE_VIEW:選用。要納入傳回角色中的資訊。如要納入角色的權限,請將這個欄位設為- FULL。如要排除角色的權限,請將這個欄位設為- BASIC。預設值為- BASIC。
- PAGE_SIZE:選用。要在回應中納入的角色數量。預設值為 300,最大值為 1,000。如果角色數量大於頁面大小,回應會包含分頁符記,可用於擷取下一頁結果。
- NEXT_PAGE_TOKEN:選用。這個方法先前在回應中傳回的分頁符記。如果指定,角色清單會從上一個要求結束的位置開始。
 - 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- roles.list方法會列出專案或機構中的所有自訂角色。- 使用任何要求資料之前,請先替換以下項目: - HTTP 方法和網址: - GET https://iam.googleapis.com/v1/RESOURCE_TYPE/RESOURCE_ID/roles?view=ROLE_VIEW&pageSize=PAGE_SIZE&pageToken=NEXT_PAGE_TOKEN - 如要傳送要求,請展開以下其中一個選項: - 您應該會收到如下的 JSON 回應: - { "roles": [ { "name": "projects/my-project/roles/customRole1", "title": "First Custom Role", "description": "Created on: 2020-06-01", "etag": "BwWiPg2fmDE=" }, { "name": "projects/my-project/roles/customRole2", "title": "Second Custom Role", "description": "Created on: 2020-06-07", "etag": "BwWiuX53Wi0=" } ] }- 刪除自訂角色- 您可以刪除專案或機構中的任何自訂角色。 - 控制台- 前往 Google Cloud 控制台的「Roles」(角色) 頁面。 
- 選取要刪除的角色,然後按一下頁面頂端的「刪除」delete。 
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    使用 gcloud iam roles delete指令刪除自訂角色:- 
        如要刪除機構層級的自訂角色,請執行下列指令: gcloud iam roles delete ROLE_ID --organization=ORGANIZATION_ID 
- 
        如要刪除專案層級的自訂角色,請執行下列指令: gcloud iam roles delete ROLE_ID --project=PROJECT_ID 
 各個預留位置值如下所述: - 
        ROLE_ID是角色名稱,例如myCompanyAdmin。
- 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
 除非指令含有 --show-deleted標記,否則這個角色不會包含在gcloud iam roles list中。在list回應中,已刪除的角色會以deleted: true區塊表示,例如:--- deleted: true description: My custom role description. etag: BwVkB5NLIQw= name: projects/my-project/roles/myCompanyAdmin title: My Company Admin --- 
- 
        
- ROLE_NAME:完整角色名稱,包括任何- organizations/、- projects/或- roles/前置字串。例如:- organizations/123456789012/roles/myCompanyAdmin。
 - 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- roles.delete方法會刪除專案或機構中的自訂角色。- 使用任何要求資料之前,請先替換以下項目: - HTTP 方法和網址: - DELETE https://iam.googleapis.com/v1/ROLE_NAME - 如要傳送要求,請展開以下其中一個選項: - 回應會包含已刪除的角色定義。 - { "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=", "deleted": true }- 角色遭到刪除後,參照該角色的所有角色繫結仍會保留在允許政策中,但不會生效。如有需要,您可以在 7 天內取消刪除角色。在這 7 天期間,主控台會顯示角色已刪除。 Google Cloud 您也可以透過程式輔助方式列出已刪除的角色,但系統預設會省略這些角色。 - 系統會在初始刪除角色要求的 7 到 14 天後,排定永久刪除該角色的時間。此時,該角色不會計入機構或專案的自訂角色數量限制 (300 個)。 - 排定永久刪除角色後, Google Cloud 會啟動永久刪除角色的程序。此程序需要 30 天時間。在 30 天期間內,角色及所有相關繫結將永久移除,您無法再以相同的角色 ID 建立新角色。 - 角色永久刪除後,您可在初始刪除要求的 44 天後,使用相同角色 ID 建立新角色。 - 取消刪除自訂角色- 取消刪除角色後,角色會恢復先前的狀態。 - 角色只能在刪除後的 7 天內取消刪除。7 天後, Google Cloud 就會啟動永久刪除角色的程序。永久刪除程序最多可能需要 30 天。角色永久刪除後,系統會移除所有參照該角色的角色繫結,您可以使用相同角色 ID 建立新角色。 - 控制台- 前往 Google Cloud 控制台的「Roles」(角色) 頁面。 
- 找出要取消刪除的角色,按一下資料列結尾的「更多」圖示,然後點選「取消刪除」。 
 - gcloud- 
  
   
   
  
 
 
 
  
    
    In the Google Cloud console, activate Cloud Shell. At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize. 
- 
    使用 gcloud iam roles undelete指令取消刪除自訂角色:- 
        如要取消刪除機構層級的自訂角色,請執行下列指令: gcloud iam roles undelete ROLE_ID --organization=ORGANIZATION_ID 
- 
        如要取消刪除專案層級的自訂角色,請執行下列指令: gcloud iam roles undelete ROLE_ID --project=PROJECT_ID 
 各個預留位置值如下所述: - 
        ROLE_ID是角色名稱,例如myCompanyAdmin。
- 
        ORGANIZATION_ID是機構的數字 ID,例如123456789012。
- 
        PROJECT_ID是專案名稱,例如my-project。
 範例 以下範例說明如何取消刪除機構層級的自訂角色: gcloud iam roles undelete myCompanyAdmin --organization=123456789012 如果角色取消刪除成功,指令會輸出類似以下的結果: description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: organizations/123456789012/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 以下範例說明如何取消刪除專案層級的自訂角色: gcloud iam roles undelete myCompanyAdmin --project=my-project 如果角色取消刪除成功,指令會輸出類似以下的結果: description: My custom role description. etag: BwVkCAx9W6w= includedPermissions: - iam.roles.get - iam.roles.list name: projects/my-project/roles/myCompanyAdmin stage: ALPHA title: My Company Admin 
- 
        
- ROLE_NAME:完整角色名稱,包括任何- organizations/、- projects/或- roles/前置字串。例如:- organizations/123456789012/roles/myCompanyAdmin。
- ETAG:角色版本的 ID。 請加入這個欄位,避免覆寫其他角色變更。
 - 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- roles.undelete方法會取消刪除專案或機構中的自訂角色。- 使用任何要求資料之前,請先替換以下項目: - HTTP 方法和網址: - POST https://iam.googleapis.com/v1/ROLE_NAME:undelete - JSON 要求主體: - { "etag": "ETAG" }- 如要傳送要求,請展開以下其中一個選項: - 回覆會包含未刪除的角色定義。 - { "name": "projects/my-project/roles/myCompanyAdmin", "title": "My Company Admin", "description": "My custom role description.", "includedPermissions": [ "iam.roles.get", "iam.roles.list" ], "etag": "BwWiPg2fmDE=" }- 後續步驟- 除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。 - 上次更新時間:2025-10-21 (世界標準時間)。