by Rajat Mathur Pronoy Chopra 和 Syed Sanoor 于 2024 年 4 月 23 日发表于 高级 (300)、AWS IoT Core、AWS Lambda、物联网、SaaS、安全、身份与合规、无伺服器、技术如何做永久链接 意见反馈 分享
在这篇文章中,我们将介绍如何使用 Amazon Verified Permissions 来集中管理权限及细粒度的授权。这对于制造商和智能家电消费者来说非常重要,开发者可以设计符合用户需求和多租户授权策略的界面以提升用户体验,从而促进用户满意度和采用率。此外,我们还提供了一个参考架构,详细说明了如何使用 AWS IoT Core、Verified Permissions 以及其他 AWS 服务来构建一个完整的智能恒温器应用解决方案。

传统上,在 IoT 应用中实施基于角色的存取控制 (RBAC) 或基于属性的存取控制 (ABAC) 的授权逻辑可能会变得复杂,特别是在连接设备和用户角色数量增多的情况下。这可能会导致需要硬编码到每个应用中的访问规则不断增加,进而需求过多的计算资源来评估这些规则。使用 Verified Permissions 可以使授权逻辑外部化,使用 Cedar 政策语言 定义细粒度的权限,这样能够更灵活地管理应用中的授权。
我们的解决方案由一个智能恒温器 IoT 设备和一个托管于 AWS 的网页应用组成,利用 Verified Permissions 实现对各种应用 API 的细粒度访问控制。在本案例中,AWS IoT Core 设备由 AWS Cloud9 环境模拟,并透过 AWS IoT Device SDK适用于 Python与 IoT 服务进行通信。
当用户购买设备主设备拥有者时,完成以下任务:
在制造商的网页或移动应用上注册并输入唯一的序列号来注册 IoT 设备。用户详细信息与设备序列号的映射会通过注册和设备认领的自动化过程储存到数据库中。将新设备连接到现有无线网络以安全地连接到 AWS IoT Core 服务。通过邀请链接或指定的 OAuth 流程邀请其他用户如宾客、家庭成员或电力公司加入。分配角色及相关权限给其他用户。此架构由三个逻辑组件组成:
设备操作:智能恒温器在现场与 AWS IoT Core 进行通信,控制其状态由 AWS IoT 设备影子服务 管理。网页应用:客户使用的应用接口,基于 ReactJS 的单页应用托管在 AWS Amplify 上。后端应用:使用 Amazon API Gateway、AWS Lambda 和 DynamoDB 构建。使用 Cognito 用户池来管理应用用户和身份验证,授权则由 Verified Permissions 处理,并根据不同的授权政策来决定是否允许或拒绝行为。Verified Permissions 是一个可扩展的权限管理和细粒度授权服务,用于构建的应用程序。策略使用 Cedar 这个专门的语言来定义应用中的访问权限,并与主流的授权模型如 RBAC 和 ABAC 无缝集成。
一个策略是允许或禁止主体对某资源采取一个或多个行动的声明。策略库 是一个逻辑容器,用来储存您的 Cedar 策略、架构和主体来源。架构帮助您验证策略并根据您指定的定义来识别错误。
注意:请记下策略库 ID,以便在部署解决方案时使用。
飞机加速安卓下载在 架构 部分,选择 创建架构。
在 编辑架构 部分,选择 JSON 模式,将以下示例架构粘贴到您的应用中,然后选择 保存更改。
json{ AwsIotAvpWebApp { entityTypes { Device { shape { attributes { primaryOwner { name User required true type Entity } } type Record } memberOfTypes [] } User {} } actions { GetTemperature { appliesTo { context { attributes { desiredTemperature { type Long } time { type Long } } type Record } resourceTypes [ Device ] principalTypes [ User ] } } SetTemperature { appliesTo { resourceTypes [ Device ] principalTypes [ User ] context { attributes { desiredTemperature { type Long } time { type Long } } type Record } } } } }}在创建 Cedar 策略时,可使用静态策略或模板链接策略来定义授权规则。
在策略明确定义主体和资源的情况下,该策略称为 静态策略。这些策略立即适用于授权决策,因为它们已完全定义并可直接实施。
不过,在某些情况下,需要对多种主体和资源应用一组授权规则。当执行的动作如 SetTemperature 和 GetTemperature 需要为特定设备授权时,使用静态策略应对每个主体和资源的唯一组合,可能会导致大量几乎相同的策略,只有主体和资源的组件不同。可以通过政策模板高效解决此冗长问题。
在这篇文章中,我们学习了如何使用 Verified Permissions 为不同用户角色创建和管理细粒度的权限。透过 Verified Permissions,您可以加强您的安全体系结构,并构建符合零信任原则的智能应用,以进行实时授权决策。如需了解更多信息,我们建议查看以下资源:
开始使用 Amazon Verified Permissions使用 Amazon Verified Permissions 定义授权模型的最佳实践在 AWS Cloud9 IDE 中使用 AWS IoT如对本文有任意反馈,请在下方的意见反馈中提交。如果对本文有任何问题,请 联络 AWS 支持。