

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 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 Management Console ]

**스키마를 생성하려면**

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을 한 줄 문자열로 이스케이프하고 앞에 해당 데이터 유형 `cedarJson`을 선언해야 합니다. 다음 예제에서는 JSON 스키마의 이스케이프된 버전을 포함하는 `schema.json` 파일의 다음 내용을 사용합니다.

**참고**  
이 예제는 가독성을 위해 줄바꿈 처리되었습니다. 명령이 파일을 받아들이려면 전체 파일을 한 줄에 입력해야 합니다.

```
{"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)를 참조하세요.

------