企业在不是应用时,为了保证安全性,一般不面向公网的 VM 都不配置公网 IP。要管理这些 VM 的时候,一般采用堡垒机的方式实现。这台堡垒机有公网 IP,可以登陆相关 VM,并且可以有 Audit 功能。

在 GCP 上,有一个 IAP 功能:Identity Awared Proxy。这个功能可以根据用户的 Identity,实现各种 TCP 应用的 Proxy 功能。比如 TCP 22 端口的 SSH 功能。

采用这个功能,可以采用 IAP 实现堡垒机相似的功能。

具体实现方式如下:

一 创建一台 VM,没有公网 IP

使用GCP的IAP功能实现VM无公网IP的SSH登陆
使用GCP的IAP功能实现VM无公网IP的SSH登陆

二 Enable IAP

进入 IAP 配置页面,如果没有 enable IAP,会花一点时间 enable IAP 的 API。
使用GCP的IAP功能实现VM无公网IP的SSH登陆
Enable 后,可以看到配置页面:
使用GCP的IAP功能实现VM无公网IP的SSH登陆
在 SSH AND TCP RESOURCES 配置中,可以看到 GCE 的 resource,点中相关的资源后,可以看到相关授权的用户。

当然也可以点击添加按钮,添加可以 IAP 的用户:
使用GCP的IAP功能实现VM无公网IP的SSH登陆

三 SSH 登陆 VM

用有 IAP 权限的用户采用 gcloud 命令登陆 VM:
使用GCP的IAP功能实现VM无公网IP的SSH登陆
可以看到用户是 hengwei@google.com,这个用户有 IAP 的权限。采用这个用户登陆:
使用GCP的IAP功能实现VM无公网IP的SSH登陆
可以看到,登陆成功。

四 配置 Audit 功能

首先导出 project 的 IAM 配置文件:
gcloud projects get-iam-policy weiheng-sc-test > sctest.yaml
添加 Audit 相关的配置:
使用GCP的IAP功能实现VM无公网IP的SSH登陆
应用此配置文件:

复制代码
gcloud projects set-iam-policy weiheng-sc-test sctest.yaml
Updated IAM policy for project [weiheng-sc-test].
auditConfigs:
- auditLogConfigs:
- logType: ADMIN_READ
- logType: DATA_READ
- logType: DATA_WRITE
service: allServices ……

在 logging 中查看相关信息:
使用GCP的IAP功能实现VM无公网IP的SSH登陆
可以看到相关的 Audit 信息:
使用GCP的IAP功能实现VM无公网IP的SSH登陆
使用GCP的IAP功能实现VM无公网IP的SSH登陆

五 总结

通过 GCP 的 IAP Tunneling 功能,可以实现类似堡垒机的功能,通过 IAP 登陆 GCE,并可以对登录相关的信息进行 Audit。

文章版权归作者所有,未经许可不得转载。

评论

发布