基于时间、可撤销、租用 – InfluxDB 的动态访问凭证
作者:社区 / 产品
2023 年 4 月 11 日
导航至
本文由 Ockam 产品总监 Glen Gillen 撰写,最初发表在 Ockam 博客上,并经许可在此处转载。
InfluxDB Cloud 的自动化令牌管理
今天,我们很高兴宣布推出 Ockam Orchestrator 的 InfluxDB 插件。通过使用该插件,使用 InfluxDB Cloud 的客户可以使用 Ockam 来提高其安全态势,方法是为任何需要连接到 InfluxDB Cloud 的客户端自动授予唯一可识别、最小权限、限时的凭据。
大规模管理访问权限的问题
对于大规模客户而言,管理数千个离散客户端的客户端访问凭据可能是一项挑战。为每个客户端颁发唯一凭据可能造成如此大的运营负担,以至于我们看到一些公司选择使用单个凭据,该凭据在所有客户端服务和设备之间共享。然而,这种权衡带来了风险的增加:数千个客户端中的任何一个都可能暴露整个舰队使用的相同密钥。当其中一个凭据暴露时,这也增加了补救的运营负担:您现在正忙于弄清楚如何撤销凭据并将新凭据一次性部署到整个舰队。相反,行业最佳实践建议定期审计和轮换这些凭据,以降低业务风险。这种定期的撤销和轮换导致持续的运营复杂性,并且随着客户端数量的增长而不断增加。
Ockam Orchestrator 的 InfluxDB 插件是一个即插即用解决方案,可与任何 InfluxDB 客户端配合使用。它允许组织定义一个标准化策略,该策略定义适用于其用例的唯一可识别、最小权限、限时凭据。然后,每个客户端都可以请求自己的凭据,如果获得批准,则可以在使用现有 InfluxDB 凭据的任何地方使用。限时性质意味着当租用期到期时,凭据会自动撤销,并且客户端可以请求新凭据以继续通信。
让我们看看现在可能实现的几个示例,以及如何实现它。
Ockam 的初始设置
如果您之前设置过 Ockam,则可以跳过本节,直接转到下面的两个示例。
brew install build-trust/ockam/ockam
(如果您未使用 brew 进行软件包管理,我们在文档中提供了 其他系统的安装说明)
安装完成后,您需要使用 Ockam Orchestrator 注册您的本地身份,运行以下命令并按照提供的说明进行操作
(代码)
大规模注册客户端
登录到您的 InfluxDB Cloud 仪表板,并从您的组织设置页面获取集群 URL(主机名)和组织 ID,然后生成一个新的“所有访问 API 令牌”(加载数据 > API 令牌 > 生成 API 令牌 > 所有访问 API 令牌)。获取这三个值并将它们插入到下面的适当环境变量中,以便我们稍后可以使用它们
(代码)
接下来,我们将项目信息保存到 JSON 文件中,以便我们稍后在注册客户端节点时可以使用它
(代码)
现在是集成 Ockam 和 InfluxDB Cloud 的时候了!我们将通过配置插件来使用我们早期导出的配置设置,此外还定义每个未来租用请求应授予的默认权限集。
(代码)
为了节省您解压所有内容的时间:这是一个 InfluxDB 权限定义(JSON 格式),它仅授予写入特定组织上特定存储桶的能力。具有此权限的客户端将无法读取任何数据、修改权限等。
(代码)
在客户端可以连接到项目之前,必须由授权实体为其生成注册令牌
(代码)
接下来,我们需要为我们的客户端创建一个新身份,因为租用的 InfluxDB 令牌将颁发给此身份。在生产环境中,您将在预期的客户端(在本例中为联网车辆)上运行接下来的 3 个步骤,但出于演示目的,我们将从同一台机器运行所有这些步骤
(代码)
身份已创建,我们可以(使用我们之前创建的 JSON 配置文件)和我们在本节开头保存的注册令牌 SENSOR_TOKEN 验证到我们的项目
(代码)
我们已经到达了重要的时刻,是时候请求新的租用了
(代码)
在输出中,您不仅会看到您创建的令牌,还会看到它的过期时间,该时间应为您创建令牌的时间起 15 分钟后(我们在原始 ockam addon configure 命令中将最大 TTL 设置为 900 秒)。
授予临时读取权限
如果我们想授予数据科学或运营团队的某人读取数据的权限怎么办?我们可以采用与上一个示例相同的方法,但只需更改权限和租用超时即可
(代码)
这是我们之前使用的相同权限定义,只是写入权限已替换为读取权限。
接下来,我们将配置插件,但这次我们将颁发的凭据的生存时间 (TTL) 设置为 7 天,而不是 15 分钟
(代码)
和以前一样,我们将生成一个令牌以允许此人注册,然后创建并注册他们
(代码)
现在,每当此人需要请求访问以查询 InfluxDB Cloud 时,他们都可以通过运行以下命令来请求一组新的凭据
ockam lease create \
–identity alice \
–project-path project.json
唯一、限时和最小权限访问
您希望从这些示例中看到,在短短几分钟内,您就可以完成完整的 Ockam 设置过程,并为您的 InfluxDB Cloud 客户端实施改进的凭据管理策略。一种通过颁发每个客户端唯一的凭据来降低您的风险的策略。凭据的范围和持续时间都限制为最适合您客户端需求的范围和持续时间。以及作为您所有现有 InfluxDB 客户端用例的无缝替代方案的凭据。
开始使用
如果您尚未按照本指南中的示例操作,您可以按照我们文档中的说明免费开始使用 Ockam。如果您想专门讨论此用例或 Ockam 的其他潜在用例,该团队非常乐意与您聊天。或者,您可以加入我们,以及在 Build Trust Discord 服务器中不断壮大的希望通过构建安全设计应用程序来建立信任的开发者社区。