示例 5:使用已验证权限和 Cedar 进行用户界面筛选 - AWS 规范性指导

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

示例 5:使用已验证权限和 Cedar 进行用户界面筛选

您还可以使用已验证的权限根据授权的操作对用户界面元素实施 RBAC 筛选。对于具有上下文敏感用户界面元素的应用程序来说,这非常有价值,这些元素可能与特定用户或租户相关联,如果是多租户 SaaS 应用程序。

在以下示例中UsersRoleviewer不允许执行更新。对于这些用户,用户界面不应呈现任何更新按钮。

使用 Amazon 验证权限和 Cedar 进行用户界面筛选示例

在此示例中,单页 Web 应用程序有四个按钮。哪些按钮可见取决于当前登录应用程序的用户。Role在单页 Web 应用程序呈现 UI 时,它会查询 “已验证权限” 以确定用户有权执行哪些操作,然后根据授权决定生成按钮。

以下策略指定值为Role的类型viewer可以同时查看用户和数据。此策略的ALLOW授权决策需要viewDataviewUsers操作,还需要将资源与Data或类型相关联UsersALLOW决定允许 UI 呈现两个按钮:viewDataButtonviewUsersButton

permit ( principal in GuiAPP::Role::"viewer", action in [GuiAPP::Action::"viewData", GuiAPP::Action::"viewUsers"], resource ) when { resource in [GuiAPP::Type::"Data", GuiAPP::Type::"Users"] };

以下策略指定值为Role的类型viewerDataOnly只能查看数据。此策略的ALLOW授权决策需要viewData采取行动,还需要与该类型关联的资源DataALLOW决定允许 UI 呈现按钮viewDataButton

permit ( principal in GuiApp::Role::"viewerDataOnly", action in [GuiApp::Action::"viewData"], resource in [GuiApp::Type::"Data"] );

以下策略指定值为Role的类型admin可以编辑和查看数据和用户。此策略的ALLOW授权决策需要updateDataupdateUsersviewData,或的操作viewUsers,并且还需要将资源与Data或类型相关联UsersALLOW决定允许 UI 呈现所有四个按钮:updateDataButtonupdateUsersButtonviewDataButton、和viewUsersButton

permit ( principal in GuiApp::Role::"admin", action in [ GuiApp::Action::"updateData", GuiApp::Action::"updateUsers", GuiApp::Action::"viewData", GuiApp::Action::"viewUsers" ], resource ) when { resource in [GuiApp::Type::"Data", GuiApp::Type::"Users"] };