授予及撤銷 API 的存取權

控管人員的 API 存取權是開發過程中的重要一環。舉例來說,在測試 API 時,您可能會想要使用具備相關權限的服務帳戶,自動重新部署更新過的 Cloud Endpoints 設定。根據預設,只有專案擁有者可以管理 API 的存取權。本頁面說明如何使用 GCP 主控台或 gcloud 指令列工具,授予及撤銷 API 的存取權。

Endpoints 是透過 Cloud Identity & Access Management 角色授予及撤銷 API 層級的存取權。您可以授予及撤銷使用者、服務帳戶或 Google 群組的存取權。

Google 網路論壇可方便您為一群使用者授予或撤銷存取權。您可以一次對一整個群組授予或撤銷存取權,而不必逐一為個別使用者或服務帳戶進行這項作業。此外,您還可以輕鬆為 Google 群組新增和移除成員,而不必為各個成員授予或撤銷 Cloud IAM 角色。

授予存取權

GCP 主控台

  1. 在 GCP 主控台中,依序前往您專案的「Endpoints」>「Services」(服務) 頁面。

    前往 Endpoints 的「Services」(服務) 頁面

  2. 若您有多個 API,請按一下 API 名稱。
  3. 如果「Permissions」(權限) 側邊面板沒有開啟,請按一下 [addPermissions] (新增權限)
  4. 在「Add Members」(新增成員) 方塊中,輸入使用者、服務帳戶或 Google 群組的電子郵件地址。
  5. 在「Select a role」(請選擇角色) 下拉式選單中,點選 [Service Management] (服務管理),然後選取以下其中一個角色:
    • [Service Config Editor] (服務設定編輯者):這個角色包含 Service Management 將 Endpoints 設定部署到現有服務所需的最低權限。
    • [Service Management Administrator] (Service Management 管理員):這個角色包含服務設定編輯者、服務消費者和服務控管者角色的權限,並且有權使用 gcloud授予、變更及撤銷資源的存取權一文所述的程式輔助方法授予這個 API 存取權。

    雖然 GCP 主控台可讓您選取其他角色,這些角色對於管理 API 都派不上用場。

  6. 如要將成員新增到指定的 Cloud IAM 角色,請按一下 [Add] (新增)
  7. 視需要反覆新增成員並選取角色。
  8. 「Service Management」(服務管理) 角色不允許存取 GCP 主控台中的「Endpoints」>「Services」(服務) 頁面。如果您想讓使用者存取「Endpoints」>「Services」(服務) 頁面,就必須為使用者授予專案的「Project Viewer」(專案檢視者) 或更高層級角色。詳情請參閱授予、變更及撤銷資源的存取權一文。

gcloud

  1. 開啟 Cloud Shell;如果您安裝了 Cloud SDK,則請開啟終端機視窗。
  2. 輸入相關的 gcloud 指令:
    • 如要為使用者授予存取權,請執行以下指令:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      為該角色指定下列其中一個 Cloud IAM 角色:

      • roles/servicemanagement.configEditor:這個角色包含 Service Management 將 Endpoints 設定部署到現有服務所需的最低權限。
      • roles/servicemanagement.admin:這個角色包含 roles/servicemanagement.configEditorroles/servicemanagement.serviceConsumerroles/servicemanagement.serviceController 的權限,並且有權使用 gcloud授予、變更及撤銷資源的存取權一文所述的程式輔助方法授予這個 API 的存取權。

      例如:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/servicemanagement.admin'

    • 如要為服務帳戶授予存取權,請執行以下指令:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE]'

      例如:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'

    • 如要為 Google 群組授予存取權,請執行以下指令:
      gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \
        --member='group:[GROUP-NAME]@googlegroups.com' \
        --role='[ROLE]'

      例如:

      gcloud endpoints services add-iam-policy-binding example-service-name \
        --member='group:example-group@googlegroups.com' \
        --role='roles/servicemanagement.configEditor'

  3. 「Service Management」(服務管理) 角色不允許存取 GCP 主控台中的「Endpoints」>「Services」(服務) 頁面。如果您想讓使用者存取「Endpoints」>「Services」(服務) 頁面,就必須為使用者授予專案的「Project Viewer」(專案檢視者) 或更高層級角色。詳情請參閱授予、變更及撤銷資源的存取權一文。

撤銷存取權

如要撤銷 API 存取權,請為先前具有 Cloud IAM 角色的成員移除該角色。

GCP 主控台

  1. 在 GCP 主控台中,依序前往您專案的「Endpoints」>「Services」(服務) 頁面。

    前往 Endpoints 的「Services」(服務) 頁面

  2. 若您有多個 API,請按一下 API 名稱。
  3. 如果「Permissions」(權限) 側邊面板沒有開啟,請按一下 [addPermissions] (新增權限)
  4. 找到您要撤銷其存取權的成員。您可以按一下相關的「Role」(角色) 資訊卡查看成員清單,或在「Search members」(搜尋成員) 方塊中輸入名稱或角色。
  5. 按一下 [Delete] (刪除) delete
  6. 如果您想撤銷使用者對 GCP 專案的存取權,請參閱授予、變更及撤銷資源的存取權一文瞭解詳情。

gcloud

  1. 開啟 Cloud Shell;如果您安裝了 Cloud SDK,則請開啟終端機視窗。
  2. 輸入相關的 gcloud 指令:
    • 如要為使用者撤銷存取權,請執行以下指令:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='user:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      例如:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='user:example-user@gmail.com' \
        --role='roles/editor'
    • 如要為服務帳戶撤銷存取權,請執行以下指令:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
        --member='serviceAccount:[EMAIL-ADDRESS]' \
        --role='[ROLE-NAME]'

      例如:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
        --member='serviceAccount:example-service-account@example-project.iam.gserviceaccount.com' \
        --role='roles/servicemanagement.configEditor'
    • 如要為 Google 群組撤銷存取權,請執行以下指令:
      gcloud endpoints services remove-iam-policy-binding [SERVICE-NAME] \
            --member='group:[GROUP-NAME]@googlegroups.com' \
            --role='[ROLE-NAME]'

      例如:

      gcloud endpoints services remove-iam-policy-binding example-service-name \
            --member='group:example-group@googlegroups.com' \
            --role='roles/viewer'
  3. 如果您想撤銷使用者對 GCP 專案的存取權,請參閱授予、變更及撤銷資源的存取權一文瞭解詳情。

後續步驟

進一步瞭解:

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
App Engine 適用的 Cloud Endpoints Frameworks
需要協助嗎?請前往我們的支援網頁