计算实例在 100% CPU 使用数小时后被删除
Compute instances got deleted after hours of 100% CPU usage
我们注意到多个计算实例在 100% CPU 使用数小时后同时被删除。由于此删除,计算时间丢失了。
谁能告诉我们为什么他们被删除了?
我创建了一个 gist,其中包含我们在 Stackdriver 中找到的唯一日志,记录了删除前后的日志。
日志文件显示以下信息:
- 删除者的源IP地址
34.89.101.139
。检查这是否与已删除实例的 public IP 地址匹配。此 IP 地址在 Google 云端。
- User-Agent 指定 Google Cloud SDK CLI
gcloud
是删除实例的程序。
- Compute Engine 默认服务帐户提供了删除实例的权限。
总而言之,某人或脚本 运行 CLI 并使用您项目的计算引擎默认服务帐户密钥从 Google 云计算服务中删除了实例。
未来的建议:
从 Compute Engine 默认服务帐户中删除删除实例的权限,或者(更好)创建一个仅具有此实例所需权限的新服务帐户。
不要在不同的 Compute Engine 实例中共享服务帐户。
- 为每个可以通过 SSH 连接到实例的用户创建单独的 SSH 密钥。
- 启用 SSH 服务器
auth.log
文件的 Stackdriver 日志记录。然后您将知道谁登录了该实例。
我们注意到多个计算实例在 100% CPU 使用数小时后同时被删除。由于此删除,计算时间丢失了。
谁能告诉我们为什么他们被删除了?
我创建了一个 gist,其中包含我们在 Stackdriver 中找到的唯一日志,记录了删除前后的日志。
日志文件显示以下信息:
- 删除者的源IP地址
34.89.101.139
。检查这是否与已删除实例的 public IP 地址匹配。此 IP 地址在 Google 云端。 - User-Agent 指定 Google Cloud SDK CLI
gcloud
是删除实例的程序。 - Compute Engine 默认服务帐户提供了删除实例的权限。
总而言之,某人或脚本 运行 CLI 并使用您项目的计算引擎默认服务帐户密钥从 Google 云计算服务中删除了实例。
未来的建议:
从 Compute Engine 默认服务帐户中删除删除实例的权限,或者(更好)创建一个仅具有此实例所需权限的新服务帐户。
不要在不同的 Compute Engine 实例中共享服务帐户。
- 为每个可以通过 SSH 连接到实例的用户创建单独的 SSH 密钥。
- 启用 SSH 服务器
auth.log
文件的 Stackdriver 日志记录。然后您将知道谁登录了该实例。