在設定中指定存取權控管

如要控管 Google Cloud資源存取權,您可使用 Identity and Access Management (IAM)。透過 IAM 設定權限後,您就能指定哪些使用者何種專案資源具備的存取權類型。如需 IAM 的簡介,請參閱「IAM 總覽」。

部署資源時,您也可以預先在設定中指定 IAM 政策,以控管資源的存取權。舉例來說,如要建立可由特定使用者管理的 Pub/Sub 主題,您可在設定中指定 IAM 政策,以通知 Deployment Manager。當您建立或更新部署時,Deployment Manager 會呼叫 IAM API,藉此為資源設定適當的權限。

事前準備

使用 Deployment Manager 的 IAM 政策

IAM 政策是指使用者及其角色的集合。您可使用基本角色或預先定義的角色,設定專案層級的 IAM 政策。部分服務 (例如 Cloud Pub/Sub) 也支援設定資源層級的 IAM 政策。

如果某項服務不支援設定資源層級的身分與存取權管理政策,Deployment Manager 會傳回 NO_METHOD_TO_UPDATE_ACCESS_CONTROL 錯誤。

如需各種角色以及可以套用至每個角色的資源清單,請參閱瞭解角色一文。

授權 Deployment Manager 設定 IAM 政策

Deployment Manager 會使用 Google API 服務帳戶呼叫其他 Google API,為您管理 Google Cloud 資源。您必須將基本 roles/owner 角色授予專案的 Google API 服務帳戶,該帳戶才能套用您在設定中定義的 IAM 政策。

  1. 前往專案 Google Cloud 控制台的「IAM」頁面。

    前往「IAM」頁面

  2. 如果出現系統提示,請在清單中選取您的專案。
  3. 尋找 Google API 服務帳戶,其電子郵件地址的格式如下:

    [PROJECT_NUMBER]@cloudservices.gserviceaccount.com
    
  4. roles/owner 角色授予 API 服務帳戶:

    主控台

    1. 仍在 Google Cloud 主控台時,展開 Google API 服務帳戶的「Roles」(角色) 下拉式選單,然後依序選取「Project」(專案) >「Owner」(擁有者)。
    2. 按一下 [儲存] 以儲存變更。

    gcloud

    使用 Google Cloud CLI,為專案的 IAM 政策新增繫結:

    gcloud projects add-iam-policy-binding [PROJECT_ID] \
        --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/owner

    其中:

    • [PROJECT_ID] 是專案 ID。
    • [SERVICE_ACCOUNT_EMAIL] 是服務帳戶的電子郵件地址。

    例如:

    gcloud projects add-iam-policy-binding database-images \
        --member serviceAccount:123456789012@cloudservices.gserviceaccount.com  \
        --role roles/owner

    API

    在 API 中,向下列網址發出 POST 要求,其中 [PROJECT_ID] 是專案 ID:

    POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicy
    

    要求主體應包含您想套用至專案的繫結清單。roles/owner 角色應是繫結的一部分。例如:

    {
        "policy": {
            "version": "0",
            "bindings": [
                {
                    "role": "roles/owner",
                    "members": [
                        "user:example@gmail.com",
                        "serviceAccount:123456789012@cloudservices.gserviceaccount.com"
                    ]
                }
            ]
        }
    }
    

在設定中指定 IAM 政策

接下來,您可根據下列指示操作,在設定或範本中指定 IAM 政策。

  1. 針對您要套用存取權控管政策的各項資源,將 accessControl 區段新增至資源的頂層設定。

  2. 指定資源所需的 gcpIamPolicy。每項 IAM 政策可包含繫結清單。各繫結均會將一組成員連結至某個角色。

    如果您使用 accessControl 管理服務帳戶,請參閱這篇文章,進一步瞭解如何管理服務帳戶。

舉例來說,下列 accessControl 區段可新增繫結,將這些角色授予使用者。

使用者 角色
alice@example.com roles/pubsub.editor
  • my-other-app@appspot.gserviceaccount.com
  • jane@example.com
roles/pubsub.publisher
resources:
- name: a-new-pubsub-topic
  type: pubsub.v1.topic
  properties:
    ...

  accessControl:
    gcpIamPolicy:
      bindings:
      - role: roles/pubsub.editor
        members:
        - "user:alice@example.com"
      - role: roles/pubsub.publisher
        members:
        - "user:jane@example.com"
        - "serviceAccount:my-other-app@appspot.gserviceaccount.com"

如要進一步瞭解 IAM 政策,請參閱 IAM 說明文件