借助对 Cedar 的支持,您可以根据每种实体类型定义架构,包括与授权模型相关的属性以及主体类型、资源类型和操作的有效组合。Verified Permissions 使用架构来验证静态策略或策略模板是否与应用程序的授权模型一致。您可以使用 JSON 在 Verified Permissions 中定义架构。该架构与 JSON 架构有一些相似之处,但也具有 Cedar 策略语言的独特特点。您可以在架构中定义操作组,即允许或禁止操作组的策略。
通过 API 将您的应用程序连接到服务以授权用户访问请求。对于每个授权请求,该服务都将检索相关策略并评估这些基于 Cedar 的策略,以确定是否允许用户在给定上下文输入(如用户、角色、组成员资格和属性)的情况下对资源采取操作。
策略存储是 Verified Permissions 中基于 Cedar 的策略的容器,在逻辑上与其他容器分离。您可以在单个策略存储中创建所有分层关系和配置,以便将策略和策略模板与其他策略存储分开。策略存储通常映射到每个应用程序,允许您在多个租户之间创建不同的配置和架构规则,而无需在租户之间进行共享或连接。例如,您可以为每个使用 Verified Permissions 应用程序的租户设置一个单独的策略存储;您可以删除一个租户的策略存储,而不会影响任何其他策略存储的资源、架构、策略和策略模板。
测试工作台是一种工具,通过对策略存储中所有基于 Cedar 的策略运行模拟授权请求,对 Verified Permissions 策略进行测试和故障排除。测试工作台使用您指定的参数来确定策略存储中的策略是否会授权请求。
您可以使用策略模板,即一种基于 Cedar 的策略声明,其范围内的占位符将以特定值填充。策略模板可以包含主体或资源的占位符,也可以同时包含两者的占位符。策略模板的更新会反映在使用该模板的所有主体和资源上,也称为模板链接策略。
我们建议使用策略模板来创建可在整个应用程序中共享的基于 Cedar 的策略。例如,您可以为编辑者创建策略模板,为使用该策略模板的主体和资源提供读取、编辑和评论权限。您还可以使用策略模板为应用程序定义粗粒度、中等粒度和细粒度的访问控制。例如,您可以使用策略模板将特定用户分配给群组,使用中等粒度控制来分配对特定资源的访问权限,使用细粒度控制来分配资源上最精细的属性。
使用 Verified Permissions API,可以针对存储在 Verified Permissions 中的策略运行特定查询。可以查询您的策略,以确定哪些策略适用于特定主体、特定资源或同时适用于两者。
您可以配置和连接 Verified Permissions,以将您的策略管理和授权日志发送到 AWS CloudTrail。
您可以将来自 Amazon Cognito 的身份验证令牌传递到通过 Verified Permissions 运行的授权请求中。这允许您将身份提供程序属性直接传递到策略评估中,从而通过 Verified Permissions 生成授权决策。
Verified Permissions 与 CloudFormation 集成,后者可帮助您建模和设置 AWS 资源,这样您就可以减少在创建和管理资源和基础设施上花费的时间。您可以创建一个模板用于描述您所需的所有 AWS 资源,由 CloudFormation 为您预置和配置这些资源。
Verified Permissions SDK 可使用 C++、Go、Java、JavaScript、Kotlin、.NET、Node.js、PHP、Python、Ruby、Rust 和 Swift 获得。