您可以使用 IAM Conditions 授予对各个工作站端口的访问权限。这对于共享对各个工作站端口的有限访问权限非常有用。例如,您可以使用 IAM Conditions 授予对工作站端口上运行的演示服务器的访问权限。
Cloud Workstations 支持 destination.port
IAM Conditions 属性。
如需详细了解 IAM 条件,请参阅以下内容:
准备工作
您必须先在工作站上获得 Cloud Workstations 政策管理员 (roles/workstations.policyAdmin
) 角色,然后才能授予对各个工作站端口的访问权限。
检查工作站上的 IAM 角色
确保您在工作站上拥有 Cloud Workstations User (roles/workstations.user
) 和 Cloud Workstations Policy Admin (roles/workstations.policyAdmin
) 角色。如果没有,请让贵组织的 Cloud Workstations Admin 为您在工作站上授予这些角色。
在工作站中启动演示服务器
请按照启动工作站指南启动工作站并连接到工作站。在工作站上运行以下命令,以便在工作站端口上启动演示服务器。
python3 -m http.server WORKSTATIONS_PORT
替换以下内容:
WORKSTATIONS_PORT
:演示版服务器将监听的端口。例如,使用 8081。
更新工作站的条件式 IAM 政策
如需向工作站端口授予访问权限,您可以使用 Google Cloud 控制台或 gcloud
CLI iam policies
命令。
控制台
如需向工作站授予条件式访问权限,请执行以下操作:
在 Google Cloud 控制台中,依次前往 Cloud Workstations > 工作站页面。
找到您的工作站,然后点击 more_vert更多选项菜单,然后选择添加用户。
如需授予条件式访问权限,请输入主账号的电子邮件地址。例如
222larabrown@gmail.com
。确保选择 Cloud Workstations 用户作为角色。
更新 IAM 条件以授予特定于相应充电桩的访问权限:
点击 Add IAM Condition(添加 IAM 条件)。
指定一个标题,例如 Port 8081。
在条件编辑器标签页中,输入以下条件:
destination.port == WORKSTATIONS_PORT
- 点击保存,完成向主账号授予对特定端口的条件性访问权限。
gcloud
使用
gcloud
CLIworkstations 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。
如需向主账号授予有条件的访问权限,请更新上一步中下载的工作站的 IAM 政策文件:
/tmp/WORKSTATIONS_NAME.yaml
。例如:
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
:演示版服务器正在监听的工作站端口。
使用
gcloud
CLIworkstations 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
:随机生成的集群标识符。cloudworkstations.dev
:工作站的默认域名。
主账号将无法访问其无权访问的工作站的其他端口。