

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Verified Permissions ポリシーストアスキーマ
<a name="schema"></a>

*[スキーマは](https://docs.cedarpolicy.com/overview/terminology.html#schema)*、アプリケーションでサポートされているエンティティタイプの構造と、アプリケーションが承認リクエストで提供する可能性のあるアクションを宣言したものです。Verified Permissions と Cedar がスキーマを処理する方法の違いを確認するには、「」を参照してください[スキーマのサポート](terminology-differences-avp-cedar.md#differences-templates)。

詳細については、Cedar ポリシー言語リファレンスガイドの「[Cedar スキーマ形式](https://docs.cedarpolicy.com/schema/schema.html)」を参照してください。

**注記**  
Verified Permissions でのスキーマの使用は任意ですが、プロダクションソフトウェアではスキーマの使用を強くお勧めします。新しいポリシーを作成すると、Verified Permissionsはスキーマを使用してスコープと条件で参照されるエンティティと属性を検証できるため、システムの動作を混乱させる恐れのあるポリシーの入力ミスやミスを防ぐことができます。[ポリシー検証](policy-validation-mode.md)を有効にする場合は、新しいポリシーはすべてスキーマに準拠している必要があります。

------
#### [ AWS マネジメントコンソール ]

**スキーマを作成するには**

1. [Verified Permissions コンソール](https://console.aws.amazon.com/verifiedpermissions/)を開きます。ポリシーストアを選択します。

1. 左側のナビゲーションペインで、[**スキーマ**] を選択します。

1. **[スキーマの作成]** を選択します。

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

**新しいスキーマを送信するか、 AWS CLIを使用して既存のスキーマを上書きする。**  
ポリシーストアを作成するには、次の例のような AWS CLI コマンドを実行します。

次の Cedar コンテンツを含むスキーマを考えてみましょう。

```
{
    "MySampleNamespace": {
        "actions": {
            "remoteAccess": {
                "appliesTo": {
                    "principalTypes": [ "Employee" ]
                }
            }
        },
        "entityTypes": {
            "Employee": {
                "shape": {
                    "type": "Record",
                    "attributes": {
                        "jobLevel": {"type": "Long"},
                        "name": {"type": "String"}
                    }
                }
            }
        }
    }
}
```

まず JSON を 1 行の文字列にエスケープし、その前にそのデータ型：`cedarJson`の宣言を記述する必要があります。次の例では、JSON スキーマのエスケープバージョンを含む`schema.json`ファイルの次の内容を使用しています。

**注記**  
この例では、読みやすいように行を折り返しています。コマンドが受け付けるには、ファイル全体を 1 行にまとめる必要があります。

```
{"cedarJson": "{\"MySampleNamespace\": {\"actions\": {\"remoteAccess\": {\"appliesTo\": 
{\"principalTypes\": [\"Employee\"]}}},\"entityTypes\": {\"Employee\": {\"shape\": 
{\"attributes\": {\"jobLevel\": {\"type\": \"Long\"},\"name\": {\"type\": \"String\"}},
\"type\": \"Record\"}}}}}"}
```

```
$ aws verifiedpermissions put-schema \
    --definition file://schema.json \
    --policy-store PSEXAMPLEabcdefg111111
{
    "policyStoreId": "PSEXAMPLEabcdefg111111",
    "namespaces": [
        "MySampleNamespace"
    ],
    "createdDate": "2023-07-17T21:07:43.659196+00:00",
    "lastUpdatedDate": "2023-08-16T17:03:53.081839+00:00"
}
```

------
#### [ AWS SDKs ]

`PutSchema`API を使用してポリシーストアを作成できます。詳細については、Amazon Verified Permissions API リファレンスガイドの「[PutSchema](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_PutSchema.html)」を参照してください。

------