向 Parallelstore 进行身份验证

本文档介绍了如何以编程方式向 Parallelstore 进行身份验证。如何向 Parallelstore 进行身份验证取决于您用于访问 API 的界面以及运行代码的环境。

如需详细了解 Google Cloud 身份验证,请参阅身份验证方法

API 访问权限

Parallelstore 支持程序化访问。您可以通过以下方式访问 API:

REST

您可以使用 gcloud CLI 凭证或使用应用默认凭证Parallelstore API 进行身份验证。如需详细了解 REST 请求身份验证,请参阅使用 REST 时进行身份验证。如需了解凭据类型,请参阅 gcloud CLI 凭据和 ADC 凭据

为 Parallelstore 设置身份验证

设置身份验证的方式取决于代码在其中运行的环境。

以下是最常用的身份验证设置选项。如需了解有关身份验证的更多选项和信息,请参阅身份验证方法

对于本地开发环境

您可以通过以下方式为本地开发环境设置凭据:

客户端库或第三方工具

在本地环境中设置应用默认凭据 (ADC)

  1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

    gcloud init

    如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  2. 如果您使用的是本地 shell,请为您的用户账号创建本地身份验证凭证:

    gcloud auth application-default login

    如果您使用的是 Cloud Shell,则无需执行此操作。

    如果系统返回身份验证错误,并且您使用的是外部身份提供方 (IdP),请确认您已 使用联合身份登录 gcloud CLI

    登录屏幕随即出现。在您登录后,您的凭据会存储在 ADC 使用的本地凭据文件中。

如需详细了解如何在本地环境中使用 ADC,请参阅为本地开发环境设置 ADC

从命令行发出的 REST 请求

从命令行发出 REST 请求时,您可以通过在发送该请求的命令中添加 gcloud auth print-access-token 来使用 gcloud CLI 凭据。

以下示例列出了指定项目的服务账号。您可以对任何 REST 请求使用相同的模式。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_ID:您的 Google Cloud 项目 ID。

如需发送您的请求,请展开以下选项之一:

 

如需详细了解如何使用 REST 和 gRPC 进行身份验证,请参阅使用 REST 时进行身份验证。如需了解本地 ADC 凭据与 gcloud CLI 凭据之间的区别,请参阅 gcloud CLI 身份验证配置和 ADC 配置

服务账号模拟

在大多数情况下,您可以使用用户凭据从本地开发环境进行身份验证。如果这种方法不可行,或者您需要测试分配给服务账号的权限,则可以使用服务账号模拟。您必须拥有 iam.serviceAccounts.getAccessToken 权限,该权限包含在 Service Account Token Creator (roles/iam.serviceAccountTokenCreator) IAM 角色中。

您可以使用 gcloud config set 命令将 gcloud CLI 设置为使用服务账号模拟:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

对于某些语言,您可以使用服务账号模拟创建本地 ADC 文件,供客户端库使用。只有 Go、Java、Node.js 和 Python 客户端库支持此方法,而其他语言不支持此方法。如需使用服务账号模拟设置本地 ADC 文件,请将 --impersonate-service-account 标志gcloud auth application-default login 命令结合使用:

gcloud auth application-default login --impersonate-service-account=SERVICE_ACCT_EMAIL

如需详细了解服务账号模拟,请参阅使用服务账号模拟

在 Google Cloud上

如需对 Google Cloud上运行的工作负载进行身份验证,请使用关联到代码在其中运行的计算资源(例如 Compute Engine 虚拟机 [VM] 实例)的服务账号的凭据。对于在 Google Cloud 计算资源上运行的代码,这是首选的身份验证方法。

对于大多数服务,您必须在创建将运行代码的资源时关联服务账号;您之后无法添加或替换服务账号。Compute Engine 是一个例外,它允许您随时将服务账号关联到虚拟机实例。

使用 gcloud CLI 创建服务账号并将其关联到您的资源:

  1. 安装 Google Cloud CLI。 安装完成后,运行以下命令来初始化 Google Cloud CLI:

    gcloud init

    如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI

  2. 设置身份验证:

    1. 确保您拥有 Create Service Accounts IAM 角色 (roles/iam.serviceAccountCreator) 和 Project IAM Admin 角色 (roles/resourcemanager.projectIamAdmin)。了解如何授予角色
    2. 创建服务账号:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      SERVICE_ACCOUNT_NAME 替换为服务账号的名称。

    3. 如需提供对项目和资源的访问权限,请向服务账号授予角色:

      gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

      请替换以下内容:

      • SERVICE_ACCOUNT_NAME:服务账号的名称
      • PROJECT_ID:您在其中创建服务账号的项目的 ID
      • ROLE:要授予的角色
    4. 如需向服务账号授予其他角色,请运行与上一步中相同的命令。
    5. 向将服务账号关联到其他资源的主账号授予所需角色。

      gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

      请替换以下内容:

      • SERVICE_ACCOUNT_NAME:服务账号的名称
      • PROJECT_ID:您在其中创建服务账号的项目的 ID
      • USER_EMAIL:Google 账号的电子邮件地址
  3. 创建将运行代码的资源,并将服务账号关联到该资源。例如,如果您使用 Compute Engine:

    创建 Compute Engine 实例。按如下方式配置实例:
    • INSTANCE_NAME 替换为您偏好的实例名称。
    • --zone 标志设置为您要在其中创建实例的可用区
    • --service-account 标志设置为您创建的服务账号的电子邮件地址。
    gcloud compute instances create INSTANCE_NAME --zone=ZONE --service-account=SERVICE_ACCOUNT_EMAIL

如需详细了解如何向 Google API 进行身份验证,请参阅身份验证方法

在本地或在其他云服务提供商上

如需在 Google Cloud 外部设置身份验证,首选方法是使用工作负载身份联合。如需了解详情,请参阅身份验证文档中的为本地或其他云服务提供商设置 ADC

Parallelstore 的访问权限控制

向 Parallelstore 进行身份验证后,您必须获得授权可访问 Google Cloud 资源。Parallelstore 使用 Identity and Access Management (IAM) 进行授权。

如需详细了解 Parallelstore 的角色,请参阅使用 IAM 进行访问权限控制。如需详细了解 IAM 和授权,请参阅 IAM 概览

后续步骤