本文档介绍了如何使用服务账号通过 SSH 连接到 Compute Engine 虚拟机 (VM) 实例。通过为服务账号设置 SSH,您可以将应用配置为使用 SSH,这有助于实现工作负载的自动执行。
准备工作
- 创建服务账号。
-
如果您尚未设置身份验证,请进行设置。身份验证是通过其进行身份验证以访问 Google Cloud 服务和 API 的过程。如需从本地开发环境运行代码或示例,您可以选择以下任一选项向 Compute Engine 进行身份验证:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
以服务账号身份手动连接到虚拟机
如需以服务账号身份连接到虚拟机,请使用以下方法之一:
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
- 服务账号的 Service Account Token Creator 角色 (
roles/iam.serviceAccountTokenCreator
) 提供的所有权限。如需详细了解如何对单个服务账号授予此角色,请参阅管理对服务账号的访问权限。 - 如果您使用 OS Login,则需要具有服务账号的一个 OS Login IAM 角色提供的所有权限。
- 如果您不使用 OS Login,则服务账号还需要具有
compute.projects.setCommonInstanceMetadata
权限。
使用 gcloud CLI --impersonate-service-account
标志可使用服务账号的身份直接连接到虚拟机。运行以下命令,以服务账号身份连接到虚拟机:
gcloud compute sshVM_NAME \ --impersonate-service-account=SERVICE_ACCOUNT_EMAIL
请替换以下内容:
VM_NAME
:要以服务账号身份连接到的虚拟机的名称。SERVICE_ACCOUNT_EMAIL
:与服务账号关联的电子邮件地址。
执行此任务所需的权限
您必须拥有以下权限才能执行此任务:
- 服务账号和用户账号的 Service Account User 角色 (
roles/iam.serviceAccountUser
) 提供的所有权限。如需详细了解如何对单个服务账号授予此角色,请参阅管理对服务账号的访问权限。 - 如果您使用 OS Login,则需要具有服务账号和用户账号的一个 OS Login IAM 角色提供的所有权限。
- 如果您不使用 OS Login,则还需要具有服务账号和用户账号的
compute.projects.setCommonInstanceMetadata
权限。
通过执行以下操作来模拟另一个虚拟机的服务账号:
- 连接到以服务账号身份运行的虚拟机。
从以服务账号身份运行的虚拟机,使用相同的方法连接到其他虚拟机。
后续步骤
- 了解如何将应用配置为使用 SSH。
- 详细了解 SSH 连接在 Compute Engine 中的工作原理,包括 SSH 密钥配置和存储。