GCP - Compute Instances

支持 HackTricks

基本信息

Google Cloud Compute Instances 是 Google 云基础设施上的可定制虚拟机,提供可扩展和按需的计算能力,适用于广泛的应用程序。它们提供全球部署、持久存储、灵活的操作系统选择以及强大的网络和安全集成等功能,使其成为在云中高效托管网站、处理数据和运行应用程序的多功能选择。

Confidential VM

Confidential VMs 使用 基于硬件的安全功能,由最新一代的 AMD EPYC 处理器提供,包括内存加密和安全加密虚拟化。这些功能使 VM 能够保护其处理和存储的数据,甚至不受主操作系统和虚拟机监控程序的影响。

要运行 Confidential VM,可能需要 更改 诸如 机器类型、网络 接口启动磁盘映像 等内容。

磁盘和磁盘加密

可以 选择磁盘 使用或 创建新磁盘。如果选择新磁盘,可以:

  • 选择磁盘的 大小

  • 选择 操作系统

  • 指定是否希望 在实例删除时删除磁盘

  • 加密默认 使用 Google 管理的密钥,但也可以 选择 KMS 中的密钥 或指定 要使用的原始密钥

部署容器

可以在虚拟机内部署 容器。 可以配置要使用的 镜像,设置在内部运行的 命令参数、挂载 环境变量(敏感信息?),并为此容器配置多个选项,如以 特权 执行、stdin 和伪 TTY。

服务账户

默认情况下,将使用 Compute Engine 默认服务账户。此 SA 的电子邮件类似于:<proj-num>-compute@developer.gserviceaccount.com 此服务账户对整个项目具有 Editor 角色(高权限)

默认访问范围如下:

  • https://www.googleapis.com/auth/devstorage.read_only -- 读取 bucket 的访问权限 :)

  • https://www.googleapis.com/auth/logging.write

  • https://www.googleapis.com/auth/monitoring.write

  • https://www.googleapis.com/auth/servicecontrol

  • https://www.googleapis.com/auth/service.management.readonly

  • https://www.googleapis.com/auth/trace.append

但是,可以 通过点击授予 cloud-platform 或指定 自定义范围

防火墙

可以允许 HTTP 和 HTTPS 流量。

网络

  • IP 转发:可以在实例创建时 启用 IP 转发

  • 主机名:可以为实例提供永久主机名。

  • 接口:可以添加网络接口。

额外安全

这些选项将 提高 VM 的安全性,推荐使用:

  • 安全启动:安全启动有助于保护您的 VM 实例免受启动级和内核级恶意软件和 rootkit 的攻击。

  • 启用 vTPM:虚拟可信平台模块 (vTPM) 验证您的客户机 VM 的预启动和启动完整性,并提供密钥生成和保护。

  • 完整性监控:完整性监控允许您使用 Stackdriver 报告监控和验证受保护 VM 实例的运行时启动完整性。需要启用 vTPM。

VM 访问

启用 VM 访问的常见方法是 允许某些 SSH 公钥 访问 VM。 但是,也可以 通过 os-config 服务使用 IAM 启用对 VM 的访问。此外,可以使用此服务启用 2FA 访问 VM。 当 启用此服务 时,通过 SSH 密钥的访问将被禁用

元数据

可以定义 自动化(AWS 中的 userdata),这些是每次机器启动或重启时执行的 shell 命令

还可以 添加额外的元数据键值对,这些键值对可以从元数据端点访问。此信息通常用于环境变量和启动/关闭脚本。可以使用枚举部分中的命令的 describe 方法 获取此信息,但也可以从实例内部访问元数据端点获取。

# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"

Moreover, auth token for the attached service accountgeneral info 关于实例、网络和项目的信息也可以从 metadata endpoint 获取。更多信息请查看:

Encryption

默认情况下使用 Google 管理的加密密钥,但可以配置客户管理的加密密钥 (CMEK)。你还可以配置在使用的 CMEK 被撤销时该怎么做:不做任何操作或关闭 VM。

支持 HackTricks

Last updated