Memorystore 提供 Identity and Access Management (IAM) 身份验证功能,该功能利用 IAM 帮助您更好地管理用户和服务账号的登录访问权限。基于 IAM 的身份验证与 Valkey AUTH 集成,让您无需依赖静态密码即可无缝轮替凭据 (IAM 令牌)。
如需了解如何为 Memorystore 实例设置 IAM 身份验证,请参阅管理 IAM 身份验证。
Valkey 的 IAM 身份验证
使用 IAM 身份验证时,不会直接向最终用户授予 Memorystore 实例访问权限。而是将权限分组为多个角色,然后将这些角色授予主账号。如需了解详情,请参阅 IAM 概览。
通过 IAM 进行身份验证的管理员可以使用 Memorystore IAM 身份验证通过 IAM 政策集中管理其实例的访问权限控制。IAM 政策涉及以下实体:
主账号。在 Memorystore 中,您可以使用两种类型的主账号:用户账号和服务账号(用于应用)。IAM 身份验证尚不支持其他主账号类型,例如 Google 群组、Google Workspace 网域或 Cloud Identity 网域。如需了解详情,请参阅与身份相关的概念。
角色。对于 Memorystore IAM 身份验证,用户需要 memorystore.instances.connect 权限才能通过实例进行身份验证。如需获取此权限,您可以将用户或服务账号绑定到预定义的 Memorystore DB Connection User (roles/memorystore.dbConnectionUser) 角色。如需详细了解 IAM 角色,请参阅角色。
资源。主账号有权访问的资源是 Memorystore 实例。默认情况下,IAM 政策绑定在项目级层应用,以便主账号获得项目中所有 Memorystore 实例的角色权限。不过,IAM 政策绑定可以限制为仅供特定实例使用。如需查看相关说明,请参阅管理 IAM 身份验证的权限。
Valkey AUTH 命令
IAM 身份验证功能使用 Valkey AUTH 命令与 IAM 集成,从而允许客户端提供 IAM 访问令牌,该令牌将由 Valkey 实例进行验证,然后才能访问数据。
与所有命令一样,除非启用传输中加密,否则 AUTH 命令会以未加密的形式发送。
如需查看 AUTH 命令的示例,请参阅连接到使用 IAM 身份验证的实例。
IAM 访问令牌时间范围
您在身份验证过程中检索到的 IAM 访问令牌默认会在检索到后 1 小时过期。或者,您可以在生成访问令牌时定义访问令牌的过期时间。 在建立新的 Valkey 连接时,需要通过 AUTH 命令提供有效令牌。如果令牌已过期,您需要获取新的访问令牌才能建立新连接。
结束已通过身份验证的连接
如需结束连接,请使用 Valkey CLIENT KILL
命令。首先,运行 CLIENT LIST
以确定连接,然后运行 CLIENT KILL
以结束连接。
启用 IAM 身份验证
启用 IAM 身份验证不会降低稳态性能。不过,它确实会影响您建立连接的速率。
启用 IAM 身份验证会限制每秒建立的客户端连接数。这是因为 Google Cloud 的 IAM 身份验证必须对每个新连接进行身份验证。在稳定状态下,应用会启用连接池,因此这种影响可以忽略不计。不过,当客户端应用重新启动或部署时,可能会出现大量新连接。如果您逐步更新客户端并实现指数退避算法,则可以应对这种降低的速率。
如需查看有关如何使用 IAM 身份验证的代码示例,请参阅同时使用 IAM 身份验证和传输中加密的代码示例。
安全性与隐私权
借助 IAM 身份验证,您可以确保只有经过授权的 IAM 主账号才能访问您的 Valkey 实例。除非启用传输加密,否则系统不会提供 TLS 加密。因此,建议在使用 IAM 身份验证时启用传输中加密。
通过 Compute Engine 虚拟机建立连接
如果您使用 Compute Engine 虚拟机连接到使用 IAM 身份验证的实例,则必须为项目启用以下访问权限范围和 API:
Cloud Platform API 范围。如需了解如何启用此范围,请参阅服务账号并更新访问权限范围。如需了解此访问权限范围的最佳实践,请参阅范围最佳实践。
Memorystore for Valkey API。如需获取用于启用该 API 的链接,请点击以下按钮:
Memorystore for Valkey