管理 IAM 身份验证

本页面介绍了 IAM 常见任务 Memorystore for Valkey 的身份验证功能。如需详细了解此功能,请参阅 IAM 身份验证简介

创建启用了 IAM 身份验证的实例

如需创建使用 IAM 身份验证的 Memorystore for Valkey 实例,请运行 create 命令:

gcloud beta memorystore instances create INSTANCE_ID --region=REGION_ID --network=NETWORK --node-type=NODE_TYPE --shard-count=SHARD_COUNT --auth-mode=iam-auth

替换以下内容:

  • INSTANCE_ID 是您要创建的 Memorystore for Valkey 实例的 ID。实例 ID 必须包含 1 到 63 个字符,并且只能使用小写字母 字母、数字或连字符。并且必须以小写字母开头并以小写字母或数字结尾。

  • REGION_ID 是您希望实例放置的区域。

  • NETWORK 是用于创建实例的网络。必须采用以下格式:projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID。通过 此处所用的网络 ID 必须与服务连接所用的网络 ID 一致 政策。否则,create 操作会失败。如需了解详情,请参阅网络

  • NODE_TYPE 是您选择的节点类型。接受的值包括:

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-xlarge

    如需详细了解节点类型和实例配置,请参阅实例和节点规范

  • SHARD_COUNT 决定了 实例。分片数量决定了存储实例数据的总内存容量。如需详细了解实例规范,请参阅实例和节点规范

授予 IAM 身份验证权限

如需授予 IAM 访问权限,请向主账号授予 roles/memorystore.dbConnectionUser 角色(请参阅授予 IAM 角色说明)。

默认情况下,向主账号授予 roles/memorystore.dbConnectionUser 角色即允许 以访问项目中的所有实例。

为实例创建受限的 IAM 管理员角色

您可能需要创建一个角色,该角色可以在不授予完整 IAM 管理员访问权限的情况下修改实例连接 IAM 权限。为此,您可以为 roles/memorystore.dbConnectionUser 角色创建受限的 IAM 管理员。如需了解详情,请参阅创建受限的 IAM 管理员

连接到使用 IAM 身份验证的实例

  1. 如果您还没有与 Valkey 实例使用同一授权网络的 Compute Engine 虚拟机,请创建一个虚拟机并按照 Linux 虚拟机使用快速入门中的说明连接到该虚拟机。

  2. 如需连接到您的实例,您必须为项目启用以下访问权限范围和 API:

  3. 按照以下方式在 Compute Engine 虚拟机上安装 valkey-cli 安装 Valkey 中的说明。

  4. 运行以下命令以获取 IAM 用户的访问令牌:

    gcloud auth print-access-token
    
  5. 连接到实例的发现端点:

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    替换以下内容:

    • NETWORK_ADDRESS 是实例的网络地址。要查看 请参阅查看实例信息

    • PORT 是实例端口号。如需查看端口号,请参阅查看实例信息

    • ACCESS_TOKEN 是在上一步中检索到的 IAM 访问令牌。

  6. 运行 CLUSTER SHARDS 命令以查看节点拓扑。添加记事 节点的其中一个 IP 地址和端口号之一。

  7. 通过运行以下命令连接到所选的节点:

    valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -a ACCESS_TOKEN -c
    

    替换以下内容:

    • NODE_IP_ADDRESS 是您在上一步中找到的节点 IP 地址。
    • NODE_PORT 是您在上一步中找到的节点的端口号。
  8. 运行 Valkey SETGET 命令,以验证您是否已创建 连接到实例节点的经过身份验证的连接。

  9. 完成与 Valkey 实例的连接测试后, 请考虑删除 Compute Engine 虚拟机 以及之前用来连接 Valkey 实例的凭据这样做有助于避免系统向您的 Cloud Billing 账号收取费用。

  10. 运行以下命令以使用 valkey-cli 进行身份验证并连接到您的实例,将变量替换为适当的值:

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    替换以下内容:

    • NETWORK_ADDRESS 是实例的网络地址。要查看 请参阅查看实例信息

    • PORT 是实例端口号。如需查看端口号,请参阅 查看实例信息

    • ACCESS_TOKEN 是在上一步中检索到的 IAM 访问令牌。

  11. 运行 Valkey SETGET 命令以验证是否与实例建立了经过身份验证的连接。

  12. 完成与 Valkey 实例的连接测试后,您应该考虑删除用于连接到 Valkey 实例的 Compute Engine 虚拟机。这样做有助于避免系统向您的 Cloud Billing 账号收取费用。

自动检索访问令牌

建议您在应用中自动检索访问令牌,因为访问令牌的有效期很短,无法轻松对其进行硬编码。

  1. (可选)如果您还没有为应用创建服务账号,请创建一个(请参阅创建和管理服务账号)。

    gcloud iam service-accounts create SA_NAME \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    替换以下内容:

    • SA_NAME 是服务账号的名称。
    • DESCRIPTION 是可选的服务账号说明。
    • DISPLAY_NAME 是要在 Google Cloud 控制台中显示的服务账号名称。
  2. 向您的服务账号授予以下项目的 memorystore.dbConnectionUser 权限: 项目。

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \
    --role="memorystore.dbConnectionUser"
    

    替换以下内容:

    • PROJECT_ID 是项目 ID。
    • SA_NAME 是服务账号的名称。
    • ROLE_NAME 是角色名称,例如 roles/compute.osLogin
  3. 将您的应用作为给定的服务账号进行身份验证。请参阅服务账号

    如需查看展示如何使用常用客户端库对应用进行身份验证的代码示例,请参阅 IAM 身份验证客户端库代码示例

用于连接到使用 IAM Auth 的实例的代码示例

请查看与 Valkey 兼容的代码示例,了解如何设置客户端库以连接到 使用 IAM 身份验证的实例,请参阅 IAM 身份验证客户端库代码示例