

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 Amazon Verified Permissions 靜態政策
<a name="policies-create"></a>

您可以為主體建立靜態政策，以允許或禁止他們對應用程式的指定資源執行指定的動作。靜態政策包含 `principal`和 的特定值`resource`，並準備好用於授權決策。

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

**建立靜態政策**

1. 開啟 [Verified Permissions 主控台](https://console.aws.amazon.com/verifiedpermissions/)。選擇您的政策存放區。

1. 在左側的導覽窗格中，選擇 **Policies (政策)**。

1. 選擇**建立政策**，然後選擇**建立靜態政策**。
**注意**  
如果您有想要使用的政策陳述式，請跳到**步驟 8**，並將政策貼到下一頁**的政策**區段。

1. 在**政策效果**區段中，選擇當請求符合政策時，政策是否**允許**或**禁止**。如果您選擇**允許**，政策會允許委託人對資源執行動作。相反地，如果您選擇**禁止**，政策不允許委託人對資源執行動作。

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`錯誤。

------