在与 Google Cloud API 和服务互动之前,您需要证明自己是您所声称的身份。这种证明身份的过程称为身份验证。
如需向 Google Cloud进行身份验证,您必须提供凭据作为身份证明。例如,若要使用某项服务,您可能需要使用密码和一次性验证码等凭据进行身份验证。
Google Cloud 将经过身份验证的用户称为主账号。当您尝试访问 Google Cloud 项目或存储桶等资源时, Google Cloud会检查您的主账号对所请求资源的访问权限级别。此流程称为授权,由名为 Identity and Access Management (IAM) 的系统处理。
这些概念同样适用于代表您执行自动化任务的代码,这些代码称为工作负载。工作负载必须提供凭据来证明其身份并以主账号身份进行身份验证,之后 Google Cloud 可以确定工作负载对所请求资源的访问权限级别。
主账号类型
您可以作为不同类型的主账号进行身份验证。您甚至可以在任务的不同阶段或不同的开发环境中使用不同的主账号类型。
主要主账号类型及其进行身份验证所需的凭据包括以下内容:
用户账号:这些是供人类用户执行交互式工作的 Google 账号,例如执行临时管理任务、以非程序化方式配置 Google Cloud 服务、进行测试、开展实验和实现可观测性。
您可以使用用户凭据(例如密码和一次性验证码)以用户账号的身份进行身份验证。
服务账号:这些是 Google Cloud 内部的账号,工作负载可使用这些账号访问服务或资源。您通常不会直接以服务账号身份进行身份验证。而是将服务账号附加到 Compute Engine 虚拟机等资源,或使用服务账号模拟。
在大多数情况下,我们建议使用短期有效的服务账号对服务账号进行身份验证。
联合身份:是指引用外部身份提供方中的用户账号或服务账号的身份。 Google Cloud支持两种具有相似名称的联合身份:
员工身份联合:允许人类用户使用由外部身份提供方管理的身份登录 Google Cloud 。如果贵组织已设置单点登录 (SSO),您可以使用此类身份向 Google Cloud进行身份验证。
您的身份提供方必须支持 OpenID Connect (OIDC) 或 SAML 2.0,才能使用员工身份联合。
工作负载身份联合:允许在 Google Cloud 外部运行的工作负载对 Google Cloud资源执行操作。
您可以将工作负载身份联合与以下工作负载搭配使用:使用 X.509 客户端证书进行身份验证;在 Amazon Web Services (AWS) 或 Azure 上运行;在本地 Active Directory 部署服务(例如 GitHub 和 GitLab)上运行;以及与支持 OpenID Connect (OIDC) 或安全断言标记语言 (SAML) V2.0 的任何身份提供方搭配使用。
如需详细了解 Google Cloud中的这些主账号类型和其他受支持的主账号类型,请参阅主账号类型。
为身份验证配置 Google Cloud 组织
为 Google Cloud 组织设置身份验证时,您可能需要将现有系统和工作流集成到 Google Cloud中:
我们还建议您执行以下操作,以帮助保护 Google Cloud环境的安全:
对人员和工作负载进行身份验证
您向 Google Cloud 进行身份验证的方式取决于您使用的 API 和服务,以及您与这些 API 和服务互动的方式。
对真人进行身份验证
在执行手动交互式工作时(例如处理临时性管理任务、设置资源、更改配置、进行实验和浏览日志),您可以使用用户账号的凭据进行身份验证。
控制台
如需在 Google Cloud 控制台中进行交互式工作,您需要使用用户凭据登录网页界面进行身份验证。
您的 Google Cloud 控制台会话的凭据也用于 Cloud Shell,您可以在其中访问 gcloud CLI。
gcloud
在本地设备上安装 gcloud CLI 后,您可以使用用户凭据通过在终端中运行以下命令向 Google Cloud 进行身份验证:
gcloud auth login
完成身份验证后,后续的 gcloud 命令会使用已登录的主账号来发出请求。
如需了解如何使用员工身份联合凭据、工作负载身份联合凭据或服务账号密钥进行身份验证,请参阅使用 gcloud CLI 进行身份验证。
对工作负载进行身份验证
无论您是在本地设备、Google Cloud、本地还是其他云端开发和运行代码,对工作负载进行身份验证的最灵活且最便捷的方式是通过一种称为应用默认凭证 (ADC) 的机制来提供凭证。
实现 ADC 的库(例如 Google Cloud 客户端库)会在其运行的环境中检查已知位置是否存在凭据。这意味着,如果您更改代码的运行位置,则无需更改代码本身,只需更改用于相应环境的凭据即可。
例如,在本地开发时,您可以设置环境,以便 ADC 使用您的用户凭据进行身份验证。当代码准备好投入生产环境时,您可以将其原封不动地部署到 Compute Engine 虚拟机实例,并将环境设置为使用短期服务账号凭据进行身份验证。
在以下情况下,您无法使用 ADC 进行身份验证:
对 gcloud CLI 进行身份验证时。
使用 API 密钥时。API 密钥只能与特定 API 搭配使用。
如需了解如何为特定环境设置 ADC,请参阅设置应用默认凭证。
后续步骤
详细了解 Google Cloud的不同身份验证方法。
如需了解如何控制主账号在 Google Cloud中的访问权限,请参阅授权和访问权限控制。