授予個別 Cloud Workstations 通訊埠存取權

您可以使用 IAM 條件,授予個別工作站連接埠的存取權。這項功能可讓您分享個別工作站通訊埠的有限存取權。舉例來說,您可以使用 IAM 條件,將工作站通訊埠上執行的示範伺服器存取權授予使用者。

Cloud Workstations 支援 destination.port IAM Conditions 屬性。

如要進一步瞭解 IAM 條件,請參閱下列內容:

事前準備

如要授予個別工作站通訊埠存取權,您必須擁有工作站的 Cloud Workstations 政策管理員 (roles/workstations.policyAdmin) 角色。

檢查工作站的 IAM 角色

請務必在工作站上具備 Cloud Workstations 使用者 (roles/workstations.user) 和 Cloud Workstations 政策管理員 (roles/workstations.policyAdmin) 角色。如果沒有,請貴機構的 Cloud Workstations 管理員授予您工作站的這些角色。

在工作站中啟動示範伺服器

請按照「啟動工作站」指南啟動工作站並連線。在工作站上執行下列指令,在工作站通訊埠啟動示範伺服器。

python3 -m http.server WORKSTATIONS_PORT

更改下列內容:

  • WORKSTATIONS_PORT:示範伺服器將接聽的通訊埠。例如使用 8081。

更新工作站的條件式 IAM 政策

如要授予工作站連接埠的存取權,可以使用 Google Cloud 控制台或 gcloud CLI iam policies 指令。

控制台

如要授予工作站條件存取權,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,依序前往「Cloud Workstations」>「Workstations」(工作站) 頁面。

    前往「Workstations」(工作站)

  2. 找出工作站,然後按一下「更多」more_vert選項選單,並選取「新增使用者」

    在「工作站」頁面新增使用者及編輯權限

  3. 如要授予條件式存取權,請輸入主體的電子郵件地址。例如 222larabrown@gmail.com

  4. 確認已選取「Cloud Workstations User」做為角色。

  5. 更新 IAM 條件,授予特定連接埠的存取權:

    1. 按一下「新增 IAM 條件」

    2. 指定標題,例如「Port WORKSTATIONS_PORT

    3. 在「Condition Editor」(條件編輯器) 分頁中,輸入下列條件:

    destination.port == WORKSTATIONS_PORT
    

    IAM 條件編輯器,其中包含目的地通訊埠 8081 條件

    1. 按一下「儲存」,即可完成將特定連接埠的條件式存取權授予主體的程序。

gcloud

  1. 使用 gcloud CLI workstations get-iam-policy 指令取得工作站 IAM 政策。這項指令會將政策輸出至檔案:/tmp/WORKSTATIONS_NAME.yaml。如果檔案已存在,系統會覆寫該檔案。

    gcloud workstations get-iam-policy WORKSTATIONS_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --config=WORKSTATIONS_CONFIG_NAME \
      --region=LOCATION \
      --project=WORKSTATIONS_PROJECT_ID \
      > /tmp/WORKSTATIONS_NAME.yaml
    

    更改下列內容:

    • WORKSTATIONS_NAME:工作站名稱。
    • WORKSTATIONS_CONFIG_NAME:工作站設定的名稱。
    • WORKSTATIONS_CLUSTER_NAME:工作站叢集的名稱。
    • LOCATION:工作站叢集的區域名稱。
    • WORKSTATIONS_PROJECT_ID:包含工作站的 Cloud Workstations 專案 ID。

    政策的 YAML 格式會下載到 /tmp/WORKSTATIONS_NAME.yaml

    bindings:
    - members:
      - user:222larabrown@gmail.com
      role: roles/workstations.user
    etag: BwYdnV9Eg7Y=
    version: 1
    
  2. 如要授予主體條件存取權,請將下列醒目顯示的條件運算式新增至您在上一個步驟下載的政策檔案。

    請勿修改 etag。請務必將版本指定為 3,因為這項政策包含 condition 欄位。

    例如:

    bindings:
    - members:
      - user:YOUR_ID
      role: roles/workstations.user
    - condition:
        expression: destination.port == WORKSTATIONS_PORT
        title: Port WORKSTATIONS_PORT
      members:
      - user:PRINCIPAL
      role: roles/workstations.user
    etag: BwYlui8uSXo=
    version: 3
    

    更改下列內容:

    • YOUR_ID:您的登入 ID。例如:222larabrown@gmail.com
    • PRINCIPAL:要與其共用工作站通訊埠 WORKSTATIONS_PORT 存取權的主體。例如:baklavainthebalkans@gmail.com
    • WORKSTATIONS_PORT:示範伺服器接聽的工作站通訊埠。
  3. 使用 gcloud CLI workstations set-iam-policy 指令設定工作站的 IAM 政策。

    gcloud workstations set-iam-policy WORKSTATIONS_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --config=WORKSTATIONS_CONFIG_NAME \
      --region=LOCATION \
      --project=WORKSTATIONS_PROJECT_ID \
      /tmp/WORKSTATIONS_NAME.yaml
    

    更改下列內容:

    • WORKSTATIONS_NAME:工作站名稱。
    • WORKSTATIONS_CONFIG_NAME:工作站設定的名稱。
    • WORKSTATIONS_CLUSTER_NAME:工作站叢集的名稱。
    • LOCATION:工作站叢集的區域名稱。
    • WORKSTATIONS_PROJECT_ID:包含工作站的 Cloud Workstations 專案 ID。

更新工作站的 IAM 政策後,主體就能存取工作站的指定通訊埠。

分享工作站網址

主體將可透過下列工作站網址存取指定通訊埠:

https://WORKSTATIONS_PORT-WORKSTATIONS_NAME.WORKSTATIONS_CLUSTER_NAME.cloudworkstations.dev

預留位置代表下列項目:

  • WORKSTATIONS_PORT:示範伺服器接聽要求的通訊埠。
  • WORKSTATIONS_NAME:工作站名稱。
  • WORKSTATIONS_CLUSTER_NAME:隨機產生的叢集 ID。
  • cloudworkstations.dev:工作站的預設網域名稱。

主體無法存取不具備存取權的工作站其他連接埠。