Amazon Verified Permissions 示例策略 - Amazon Verified Permissions

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

Amazon Verified Permissions 示例策略

此处包含的一些策略示例是基本的 Cedar 策略示例,有些则是特定于已验证权限的策略示例。基本内容链接到Cedar政策语言参考指南,并包含在那里。有关 Cedar 策略语法的更多信息,请参阅《Cedar 策略语言参考指南》中的 Cedar 中的基本策略构造

策略示例

使用方括号表示法来引用代币属性

以下示例说明如何创建使用方括号表示法来引用令牌属性的策略。

有关在已验证权限中的策略中使用令牌属性的更多信息,请参阅 将身份提供者令牌映射到架构

permit ( principal in MyCorp::UserGroup::"us-west-2_EXAMPLE|MyUserGroup", action, resource ) when { principal["cognito:username"] == "alice" && principal["custom:employmentStoreCode"] == "petstore-dallas" && principal has email && principal.email == "alice@example.com" && context["ip-address"] like "192.0.2.*" };

使用点符号来引用属性

以下示例说明如何创建使用点符号来引用属性的策略。

有关在已验证权限中的策略中使用令牌属性的更多信息,请参阅 将身份提供者令牌映射到架构

permit(principal, action, resource) when { principal.cognito.username == "alice" && principal.custom.employmentStoreCode == "petstore-dallas" && principal.tenant == "x11app-tenant-1" && principal has email && principal.email == "alice@example.com" };

反映亚马逊 Cognito ID 令牌属性

以下示例展示了如何创建引用 Amazon Cognito 中的 ID 令牌属性的策略。

有关在已验证权限中的策略中使用令牌属性的更多信息,请参阅 将身份提供者令牌映射到架构

permit ( principal in MyCorp::UserGroup::"us-west-2_EXAMPLE|MyUserGroup", action, resource ) when { principal["cognito:username"] == "alice" && principal["custom:employmentStoreCode"] == "petstore-dallas" && principal.tenant == "x11app-tenant-1" && principal has email && principal.email == "alice@example.com" };

反映 OIDC ID 令牌属性

以下示例说明如何创建引用OIDC提供商的 ID 令牌属性的策略。

有关在已验证权限中的策略中使用令牌属性的更多信息,请参阅 将身份提供者令牌映射到架构

permit ( principal in MyCorp::UserGroup::"MyOIDCProvider|MyUserGroup", action, resource ) when { principal.email_verified == true && principal.email == "alice@example.com" && principal.phone_number_verified == true && principal.phone_number like "+1206*" };

反映亚马逊 Cognito 访问令牌属性

以下示例显示了如何创建引用 Amazon Cognito 访问令牌属性的策略。

有关在已验证权限中的策略中使用令牌属性的更多信息,请参阅 将身份提供者令牌映射到架构

permit(principal, action in [MyApplication::Action::"Read", MyApplication::Action::"GetStoreInventory"], resource) when { context.token.client_id == "52n97d5afhfiu1c4di1k5m8f60" && context.token.scope.contains("MyAPI/mydata.write") };

反映OIDC访问令牌属性

以下示例说明如何创建引用OIDC提供商提供的访问令牌属性的策略。

有关在已验证权限中的策略中使用令牌属性的更多信息,请参阅 将身份提供者令牌映射到架构

permit( principal, action in [MyApplication::Action::"Read", MyApplication::Action::"GetStoreInventory"], resource ) when { context.token.client_id == "52n97d5afhfiu1c4di1k5m8f60" && context.token.scope.contains("MyAPI-read") };