控制人員的 API 存取權是開發過程中的重要一環。舉例來說,如要在測試 API 時自動重新部署更新過的 Cloud Endpoints 設定,您可以使用具備相關權限的服務帳戶。根據預設,只有專案擁有者可以管理 API 的存取權。本頁說明如何使用Google Cloud 主控台或 Google Cloud CLI 授予及撤銷 API 存取權。
Endpoints 是透過 Identity and Access Management 角色授予及撤銷 API 層級的存取權。您可以授予及撤銷使用者、服務帳戶或 Google 網路論壇的存取權。
Google 網路論壇可方便您為一群使用者授予或撤銷存取權。您可以一次對整個論壇授予或撤銷存取權,而不必逐一為個別使用者或服務帳戶進行這項作業。此外,您還可以輕鬆為 Google 群組新增和移除成員,而不必為各個成員授予或撤銷 IAM 角色。
授予存取權
Google Cloud 控制台
- 在 Google Cloud 控制台中,依序前往您專案的「Endpoints」>「Services」頁面。
- 如果您有多個 API,請按一下要修改權限設定的 API 名稱。
- 如果「Permissions」(權限) 側邊面板未開啟,請按一下「addPermissions」。
- 在「Add members」(新增成員) 方塊中,輸入使用者、服務帳戶或 Google 群組的電子郵件地址。
-
在「Select a role」下拉式選單中,按一下「Service Management」,然後選取下列其中一個角色:
- 服務消費者:這個角色包含非專案成員的權限,可讓他們在自己的專案中查看及啟用 API。如果您已為 API 建立入口網站,這個角色即可讓您的 API 使用者存取該入口網站。
-
服務控制器:這個角色包含在執行階段呼叫 Service Infrastructure API 中
check
和report
方法的權限。 - Service Config Editor (服務設定編輯者):這個角色包含 Service Management 將 Endpoints 設定部署到現有服務所需的最低權限。
-
服務管理員:這個角色包含「服務設定編輯者」、「服務消費者」和「服務控制器」角色中的權限,以及使用
gcloud
或「 授予、變更及撤銷資源存取權」一文所述的程式輔助方法,授予此 API 存取權所需的權限。
如需這個角色的相關資訊,請參閱 Service Management API 存取權控管主題。雖然 Google Cloud 主控台可讓您選取其他角色,但這些角色對於管理 API 都派不上用場。
- 如要將成員新增到指定的 IAM 角色,請按一下「新增」。
- 視需要重複新增成員並選取角色。
- Service Management 角色無法讓使用者存取 Google Cloud 控制台中的「Endpoints」>「Services」頁面。如果您想讓使用者存取「Endpoints」 >「Services」(服務) 頁面,就必須授予專案的「Project Viewer」(專案檢視者) 或更高層級角色。詳情請參閱「授予、變更及撤銷資源的存取權」。
gcloud
- 開啟 Cloud Shell;如果您已安裝 Google Cloud CLI,則請開啟終端機視窗。
-
輸入適用的
gcloud
指令:-
如要為使用者授予存取權,請執行以下指令:
gcloud endpoints services add-iam-policy-binding [SERVICE-NAME] \ --member='user:[EMAIL-ADDRESS]' \ --role='[ROLE]'
為該角色指定下列其中一個 IAM 角色:
-
roles/servicemanagement.configEditor
:這個角色包含 Service Management 將 Endpoints 設定部署到現有服務所需的最低權限。 -
roles/servicemanagement.admin
:這個角色包含roles/servicemanagement.configEditor
、roles/servicemanagement.serviceConsumer
和roles/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'
-
如要為使用者授予存取權,請執行以下指令:
- Service Management 角色無法讓使用者存取 Google Cloud 主控台中的「Endpoints」>「Services」(服務) 頁面。如果您想讓使用者存取「Endpoints」 >「Services」(服務) 頁面,就必須授予專案的「Project Viewer」(專案檢視者) 或更高層級角色。詳情請參閱「授予、變更及撤銷資源的存取權」。
撤銷存取權
如要撤銷 API 存取權,請為先前具有 IAM 角色的成員移除該角色。
Google Cloud 控制台
- 在 Google Cloud 控制台中,依序前往您專案的「Endpoints」 >「Services」頁面。
- 如果您有多個 API,請按一下要修改權限設定的 API 名稱。
- 如果「Permissions」(權限) 側邊面板未開啟,請按一下「addPermissions」。
- 找出您要撤銷其存取權的成員。您可以按一下相關的「Role」(角色) 資訊卡查看成員清單,或在「Search members」(搜尋成員) 方塊中輸入名稱或角色。
- 按一下「刪除」圖示 delete。
- 如果您想撤銷使用者對 Google Cloud專案的存取權,請參閱「授予、變更及撤銷資源存取權」一文瞭解詳情。
gcloud
- 開啟 Cloud Shell;如果您已安裝 gcloud CLI,則請開啟終端機視窗。
-
輸入適用的
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'
- 如要為使用者撤銷存取權,請執行以下指令:
- 如果您想撤銷使用者對 Google Cloud專案的存取權,請參閱「授予、變更及撤銷資源存取權」一文瞭解詳情。
後續步驟
瞭解下列內容: