

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

# 创建 Amazon Verified Permissions 静态策略
<a name="policies-create"></a>

您可以为委托人创建静态策略，以允许或禁止他们对应用程序的指定资源执行指定操作。静态策略包含`principal``resource`和的特定值，可以随时用于授权决策。

------
#### [ AWS 管理控制台 ]

**要创建静态策略，请按以下步骤操作：**

1. 打开已[验证权限控制台](https://console.aws.amazon.com/verifiedpermissions/)。选择您的保单商店。

1. 在左侧的导航窗格中，选择**策略**。

1. 选择**创建策略**，然后选择**创建静态策略**。
**注意**  
如果您想使用政策声明，请跳至**步骤 8**，然后将该政策粘贴到下一页的 “**政策**” 部分。

1. 在**策略效果**部分，选择当请求与策略匹配时，策略是**允许**还是**禁止**。如果您选择 Per **m** it，则该策略允许委托人对资源执行操作。相反，如果您选择 “**禁止**”，则该策略不允许委托人对资源执行操作。

1. 在**主体范围**字段中，选择策略将适用的主体范围。
   + 选择**特定主体**，将策略应用于特定主体。为被允许或禁止采取策略中指定的操作的委托人指定实体类型和标识符。
   + 选择**主体群组**，将策略应用于一组主体。在**主体群组**字段中输入主体群组名称。
   + 选择**所有主体**，将该策略应用于策略存储中的所有主体。

1. 在**资源范围**字段中，选择策略将适用的资源范围。
   + 选择**特定资源**，将该策略应用于特定资源。为策略应适用的资源指定实体类型和标识符。
   + 选择**资源群组**，将该策略应用于一组资源。在**资源群组**字段中输入资源群组名称。
   + 选择**所有资源**，将该策略应用于策略存储中的所有资源。

1. 在**操作范围**部分中，选择策略将适用的资源范围。
   + 选择**特定操作集合**，将该策略应用于一组操作。选中操作旁边的复选框，应用该策略。
   + 选择**所有操作**，将该策略应用于策略存储中的所有操作。

1. 选择**下一步**。

1. 在**策略**部分中，查看您的 Cedar 策略。您可以选择**格式**，使用建议的间距和缩进来设置策略语法的格式。有关更多信息，请参阅《Cedar 策略语言参考指南》中的 [Cedar 中的基本策略构造](https://docs.cedarpolicy.com/policies/syntax-policy.html)。

1. 在**详细信息**部分中，输入策略的可选描述。

1. 选择**创建策略**。

------
#### [ AWS CLI ]

**要创建静态策略，请按以下步骤操作：**  
您可以使用[CreatePolicy](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicy.html)操作创建静态策略。以下示例创建了一个简单的静态策略。

```
$ aws verifiedpermissions create-policy \
    --definition "{ \"static\": { \"Description\": \"MyTestPolicy\", \"Statement\": \"permit(principal,action,resource) when {principal.owner == resource.owner};\"}}" \
    --policy-store-id PSEXAMPLEabcdefg111111
{
"Arn": "arn:aws:verifiedpermissions::123456789012:policy/PSEXAMPLEabcdefg111111/SPEXAMPLEabcdefg111111",
    "createdDate": "2023-05-16T20:33:01.730817+00:00",
    "lastUpdatedDate": "2023-05-16T20:33:01.730817+00:00",
    "policyId": "SPEXAMPLEabcdefg111111",
    "policyStoreId": "PSEXAMPLEabcdefg111111",
    "policyType": "STATIC"
}
```

**使用策略名称创建策略**  
在创建策略时，您可以选择指定策略名称。对于策略存储区内的所有策略，该名称必须是唯一的，并以`name/`此为前缀。您可以使用名称来代替策略 ID。

```
$ aws verifiedpermissions create-policy \
    --definition "{ \"static\": { \"Statement\": \"permit(principal, action, resource in Album::\\\"public_folder\\\");\"}}" \
    --policy-store-id PSEXAMPLEabcdefg111111 \
    --name name/example-policy
{
    "createdDate": "2023-06-12T20:33:37.382907+00:00",
    "lastUpdatedDate": "2023-06-12T20:33:37.382907+00:00",
    "policyId": "SPEXAMPLEabcdefg111111",
    "policyStoreId": "PSEXAMPLEabcdefg111111",
    "policyType": "STATIC",
    "resource": {
        "entityId": "public_folder",
        "entityType": "Album"
    }
}
```

**注意**  
如果您指定的名称已与策略存储中的其他策略相关联，则会收到`ConflictException`错误消息。

------