基于时间、可撤销、租赁——InfluxDB的动态访问凭证
作者:社区 / 产品
2023年4月11日
导航到
本文由Ockam产品总监Glen Gillen撰写,最初发布于Ockam博客,在此经授权重新发布。
InfluxDB Cloud的自动化令牌管理
今天,我们激动地宣布推出Ockam Orchestrator的InfluxDB附加组件。通过使用该附加组件,使用InfluxDB Cloud的客户可以利用Ockam自动为任何需要连接到InfluxDB云的客户端授予唯一标识、最小权限、时间限制的凭证,从而提高其安全性。
大规模管理访问权限的问题
对于大规模客户而言,管理数千个不同客户的客户端访问凭证可能是一项挑战。为每个客户端颁发唯一凭证可能是一个如此沉重的运营负担,以至于我们看到一些公司选择使用一个被所有客户服务设备和设备共享的单一凭证。但这种权衡却带来了风险的增加:那数千个客户端中的任何一个都可能暴露整个机队的相同秘密。这也增加了在某个凭证暴露时进行补救的运营负担:您现在需要急忙找出如何一次性撤销并部署新凭证给整个机队。相反,行业最佳实践会建议定期审计和轮换这些凭证以降低业务风险。这种定期撤销和轮换的结果是持续的运营复杂性,随着客户数量的增加而不断增长。
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附加组件配置命令中设置了最大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服务器。