Terraform Google 云:在 VM 上执行远程脚本

Terraform Google Cloud: Executing a Remote Script on a VM

我正在尝试通过 Terraform 在 Google VM 上执行脚本。

首先,我通过 Google 启动脚本进行了尝试。但是由于元数据在 Google 控制台中可见(启动脚本算作元数据),这意味着任何具有读取权限的人都可以看到该脚本,这是不可接受的。

所以我尝试从存储帐户获取脚本。但为此我需要将服务帐户附加到 VM,以便 VM 有权访问存储帐户。现在,只要服务帐户附加到 VM,有权访问 VM 的人也可以访问我的脚本。为了 "detach" 服务帐户,我必须停止 VM。此外,如果我不想永久保留服务帐户的附件,我将不得不通过脚本附加服务帐户,这需要再次停止和启动 VM。这可能是不可能的,而且真的很难看。

我不明白 remote-exec 资源在 GCP 虚拟机上是如何工作的。因为我必须指定一个用户和一个用户密码才能连接到 VM,然后执行脚本。但是 windows 密码需要通过 google 控制台手动设置,所以我现在不能指定这些东西。

那么有人知道我如何在没有人可以通过 Terraform 访问我的脚本的情况下执行脚本吗?

问候 :) 提前致谢

我最终只是 运行 一个 gcloud 脚本,其中我在 Terraform 应用完成后从 VM 中删除了元数据。在我的 Gitlab 管道中,我刚刚调用了 "after_script" 部分中的脚本。不幸的是,凭据在大约 3 分钟内可见。