

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

# Verified Permissions 정책 스토어 생성
<a name="policy-stores-create"></a>

다음 방법을 사용하여 정책 스토어를 생성할 수 있습니다.
+ **안내 설정 따르**기 - 첫 번째 정책을 생성하기 전에 유효한 작업과 보안 주체 유형을 사용하여 리소스 유형을 정의합니다.
+ ** API Gateway 및 자격 증명 소스로 설정** - 자격 증명 공급자(IdP)로 로그인하는 사용자와 Amazon API Gateway API의 작업 및 리소스 엔터티를 사용하여 보안 주체 엔터티를 정의합니다. 애플리케이션이 사용자의 그룹 멤버십 또는 기타 속성을 사용하여 API 요청을 승인하도록 하려면이 옵션을 사용하는 것이 좋습니다.
+ **샘플 정책 스토어에서 시작** - 사전 정의된 샘플 프로젝트 정책 스토어를 선택합니다. Verified Permissions에 대해 알아보고 예시 정책을 보고 테스트하려는 경우 이 옵션을 사용하는 것이 좋습니다.
+ **빈 정책 스토어 생성** - 스키마와 모든 액세스 정책을 직접 정의합니다. 정책 스토어 구성에 이미 익숙한 경우 이 옵션을 사용하는 것이 좋습니다.

------
#### [ Guided setup ]

****설정 안내** 구성 방법을 사용하여 정책 스토어를 생성하려면**

설정 안내 마법사가 정책 스토어의 첫 번째 반복을 생성하는 프로세스를 안내합니다. 이 프로세스에서는 첫 번째 리소스 유형에 대한 스키마를 만들고, 해당 리소스 유형에 적용할 수 있는 작업과 작업 권한을 부여할 보안 주체 유형을 지정합니다. 그런 다음 첫 번째 정책을 생성합니다. 이 마법사를 완료하면 정책 스토어에 정책을 추가하고, 스키마를 확장하여 다른 리소스 및 보안 주체 유형을 설명하고, 추가 정책 및 템플릿을 생성할 수 있습니다.

1. [Verified Permissions 콘솔](https://console.aws.amazon.com/verifiedpermissions)에서 **새 정책 스토어 생성을** 선택합니다.

1. **시작 옵션** 섹션에서 **안내형 설정을** 선택합니다.

1. **정책 스토어 설명을** 입력합니다. 이 텍스트는 *날씨 업데이트 웹 애플리케이션*과 같이 현재 정책 스토어의 함수에 대한 친숙한 참조로 조직에 적합한 텍스트일 수 있습니다.

1. **세부 정보** 섹션에서 **스키마의 네임스페이스**를 입력합니다. 네임스페이스에 대한 자세한 내용은 섹션을 참조하세요[네임스페이스 정의](terminology-differences-avp-cedar.md#differences-namespaces).

1. **다음**을 선택합니다.

1. **리소스 유형** 창에서 리소스 유형의 이름을 입력합니다. 예를 들어는 *날씨 업데이트 웹 애플리케이션의* 리소스일 `currentTemperature` 수 있습니다.

1. (선택 사항) **속성 추가**를 선택하여 리소스 속성을 추가합니다. **속성 이름**을 입력하고 리소스의 각 속성에 대해 **속성 유형**을 선택합니다. 각 속성이 **필수**인지 여부를 선택합니다. 예를 들어는 `currentTemperature` 리소스의 속성일 `temperatureFormat` 수 있으며 화씨 또는 섭씨일 수 있습니다. 리소스 유형에 추가된 속성을 제거하려면 해당 속성 옆에 있는 **제거**를 선택합니다.

1. **작업** 필드에 지정된 리소스 유형에 대해 승인할 작업을 입력합니다. 리소스 유형에 대해 작업을 더 추가하려면 **작업 추가**를 선택합니다. 예를 들어는 *날씨 업데이트 웹 애플리케이션의* 작업일 `viewTemperature` 수 있습니다. 리소스 유형에 대해 추가된 작업을 제거하려면 해당 작업 옆에 있는 **제거**를 선택합니다.

1. **보안 주체 유형 이름** 필드에 해당 리소스 유형에 지정된 작업을 사용할 보안 주체 유형의 이름을 입력합니다. 기본적으로 **사용자는**이 필드에 추가되지만 교체할 수 있습니다.

1. **다음**을 선택합니다.

1. **보안 주체 유형** 창에서 보안 주체 유형의 자격 증명 소스를 선택합니다.
   + Verified Permissions 애플리케이션에서 보안 주체의 ID 및 속성이 직접 제공되도록 하려면 **사용자 지정**을 선택합니다. 보안 주체 속성을 추가하려면 **속성 추가**를 선택합니다. Verified Permissions는 스키마에 대해 정책을 검증할 때 지정된 속성 값을 사용합니다. 보안 주체 유형에 추가된 속성을 제거하려면 속성 옆에 있는 **제거**를 선택합니다.
   + 에서 생성한 ID 또는 액세스 토큰에서 보안 주체의 ID 및 속성을 제공할 경우 **Cognito 사용자 풀**을 선택합니다 Amazon Cognito. **사용자 풀 연결**을 선택합니다. 를 선택하고 연결할 **사용자 풀의 사용자 풀 ID**를 **AWS 리전** 입력합니다. Amazon Cognito **연결**을 선택합니다. 자세한 내용은 *Amazon Cognito 개발자 안내서*의 [Amazon Verified Permissions를 통한 권한 부여](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-authorization-with-avp.html)를 참조하세요.
   + **외부 OIDC 공급자**가 생성한 ID 및/또는 액세스 토큰에서 보안 주체의 ID 및 속성을 추출할 경우 외부 OIDC 공급자를 선택하고 공급자 및 토큰 세부 정보를 추가합니다.

1. **다음**을 선택합니다.

1. **정책 세부 정보** 섹션에서 첫 번째 Cedar 정책에 대해 선택적으로 **정책 설명**을 입력합니다.

1. **보안 주체 범위** 필드에서 정책으로부터 권한을 부여받을 보안 주체를 선택합니다.
   + 정책을 특정 보안 주체에 적용하려면 **특정 보안 주체**를 선택합니다. **작업을 수행하도록 허용할 보안 주체** 필드에서 보안 주체를 선택하고 보안 주체의 개체 식별자를 입력합니다. 예를 들어는 *날씨 업데이트 웹 애플리케이션의* 엔터티 식별자일 `user-id` 수 있습니다.
**참고**  
를 사용하는 경우 Amazon Cognito엔터티 식별자의 형식은 여야 합니다`<userpool-id>|<sub>`.
   + 정책 스토어의 모든 보안 주체에 정책을 적용하려면 **모든 보안 주체**를 선택합니다.

1. **리소스 범위** 필드에서 지정된 보안 주체에게 작업 권한을 부여할 리소스를 선택합니다.
   + 정책을 특정 리소스에 적용하려면 **특정 리소스**를 선택합니다. **이 정책을 적용해야 하는 리소스** 필드에서 리소스를 선택하고 리소스의 개체 식별자를 입력합니다. 예를 들어는 *날씨 업데이트 웹 애플리케이션의* 엔터티 식별자일 `temperature-id` 수 있습니다.
   + 정책 스토어의 모든 리소스에 정책을 적용하려면 **모든 리소스**를 선택합니다.

1. **작업 범위** 필드에서 지정된 보안 주체에게 수행할 권한을 부여할 작업을 선택합니다.
   + 정책을 여러 특정 작업에 적용하려면 **특정 작업 세트**를 선택합니다. **이 정책을 적용해야 하는 작업** 필드에서 해당 작업 옆에 있는 확인란을 선택합니다.
   + 정책 스토어의 모든 작업에 정책을 적용하려면 **모든 작업**을 선택합니다.

1. **정책 미리 보기** 섹션에서 정책을 검토하십시오. **정책 스토어 생성**을 선택합니다.

------
#### [ Set up with API Gateway and an identity source ]

**로 **설정 API Gateway 및 자격 증명 소스 구성 방법을 사용하여 정책 스토어를** 생성하려면**

 API Gateway 옵션은 사용자의 그룹 또는 *역할*에서 권한 부여 결정을 내리도록 설계된 Verified Permissions 정책을 사용하여 APIs를 보호합니다. 이 옵션은 자격 증명 소스 그룹을 사용하여 권한 부여를 테스트하고 Lambda 권한 부여자를 사용하여 API를 테스트하기 위한 정책 스토어를 빌드합니다.

IdP의 사용자 및 해당 그룹은 보안 주체(ID 토큰) 또는 컨텍스트(액세스 토큰)가 됩니다. API의 메서 API Gateway 드와 경로는 정책이 승인하는 작업이 됩니다. 애플리케이션이 리소스가 됩니다. 이 워크플로의 결과로 Verified Permissions는 정책 스토어, Lambda 함수 및 API Lambda 권한 부여자를 생성합니다. 이 워크플로를 완료한 후 API에 Lambda [권한 부여자를](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html) 할당해야 합니다.

1. [Verified Permissions 콘솔](https://console.aws.amazon.com/verifiedpermissions)에서 **새 정책 스토어 생성을** 선택합니다.

1. **시작 옵션** 섹션에서 ** API Gateway 및 자격 증명 소스를 사용하여 설정을** 선택하고 **다음을** 선택합니다.

1. **리소스 및 작업 가져오기** 단계의 **API**에서 정책 스토어 리소스 및 작업에 대한 모델로 작동하는 API를 선택합니다.

   1. API에 구성된 **단계에서 배포** 단계를 선택하고 **API 가져오기**를 선택합니다. API 단계에 대한 자세한 내용은 [ Amazon API Gateway 개발자 안내서의 REST API에 대한 단계 설정을 참조하세요](https://docs.aws.amazon.com/apigateway/latest/developerguide/set-up-stages.html).

   1. **가져온 리소스 및 작업 맵**을 미리 봅니다.

   1. 리소스 또는 작업을 업데이트하려면 API Gateway 콘솔에서 API 경로 또는 메서드를 수정하고 **API 가져오기**를 선택하여 업데이트를 확인합니다.

   1. 선택한 항목에 만족하면 **다음을** 선택합니다.

1. **자격 증명 소스**에서 자격 **증명 공급자 유형을** 선택합니다. Amazon Cognito 사용자 풀 또는 OpenID Connect(OIDC) IdP 유형을 선택할 수 있습니다.

1. 를 선택한 경우**Amazon Cognito**:

   1. 정책 스토어와 동일한 AWS 리전 및 AWS 계정 에서 사용자 풀을 선택합니다.

   1. 권한 부여를 **위해 제출하려는 API에 전달할 토큰 유형을** 선택합니다. 두 토큰 유형 모두이 API 연결 권한 부여 모델의 기반인 사용자 그룹을 포함합니다.

   1. **앱 클라이언트 검증**에서 정책 스토어의 범위를 다중 테넌트 사용자 풀의 Amazon Cognito 앱 클라이언트 하위 집합으로 제한할 수 있습니다. 사용자가 사용자 풀에서 하나 이상의 지정된 앱 클라이언트로 인증하도록 하려면 **예상 앱 클라이언트 IDs가 있는 토큰만 수락을** 선택합니다. 사용자 풀로 인증하는 사용자를 수락하려면 **앱 클라이언트 IDs** 선택합니다.

   1. **다음**을 선택합니다.

1. **외부 OIDC 공급자를 선택한 경우:**

   1. **발급자 URL**에 OIDC 발급자의 URL을 입력합니다. 이는 권한 부여 서버, 서명 키 및와 같은 공급자에 대한 기타 정보를 제공하는 서비스 엔드포인트입니다`https://auth.example.com`. 발급자 URL은에서 OIDC 검색 문서를 호스팅해야 합니다`/.well-known/openid-configuration`.

   1. **토큰 유형**에서 애플리케이션이 권한 부여를 위해 제출할 OIDC JWT 유형을 선택합니다. 자세한 내용은 스키[마에 Amazon Cognito 토큰 매핑 및 스키마에](cognito-map-token-to-schema.md) [OIDC 토큰 매핑을 참조하세요](oidc-map-token-to-schema.md).

   1. (선택 사항) **토큰 클레임 - 선택 사항**에서 **토큰 클레임 추가를** 선택하고 토큰 이름을 입력한 다음 값 유형을 선택합니다.

   1. **사용자 및 그룹 토큰 클레임**에서 다음을 수행합니다.

      1. 자격 증명 소스의 **토큰에 사용자 클레임 이름을** 입력합니다. 이는 일반적으로 평가할 엔터티의 고유 식별자를 포함하는 ID 또는 액세스 토큰`sub`의 클레임입니다. 연결된 OIDC IdP의 ID는 정책 스토어의 사용자 유형에 매핑됩니다.

      1. 자격 증명 소스의 **토큰에 그룹 클레임 이름을** 입력합니다. 이는 일반적으로 사용자 그룹 목록이 포함된 ID 또는 액세스 토큰`groups`의 클레임입니다. 정책 스토어는 그룹 멤버십을 기반으로 요청을 승인합니다.

   1. **대상 검증**에서 정책 스토어가 권한 부여 요청에서 수락할 값을 `Add value` 선택하고 추가합니다.

   1. **다음**을 선택합니다.

1. 를 선택한 경우 **Amazon Cognito**Verified Permissions는 사용자 풀에서 그룹을 쿼리합니다. OIDC 공급자의 경우 그룹 이름을 수동으로 입력합니다. **그룹에 작업 할당** 단계에서는 그룹 구성원이 작업을 수행하도록 허용하는 정책 스토어에 대한 정책을 생성합니다.

   1. 정책에 포함할 그룹을 선택하거나 추가합니다.

   1. 선택한 각 그룹에 작업을 할당합니다.

   1. **다음**을 선택합니다.

1. **앱 통합 배포**에서 나중에 수동으로 Lambda 권한 부여자를 연결할지 아니면 Verified Permissions가 대신 연결하도록 할지 선택하고 Verified Permissions가 정책 스토어 및 Lambda 권한 부여자를 생성하기 위해 수행할 단계를 검토합니다.

1. 새 리소스를 생성할 준비가 되면 **정책 스토어 생성을** 선택합니다.

1. 브라우저에서 **정책 스토어 상태** 단계를 열어두어 Verified Permissions의 리소스 생성 진행 상황을 모니터링합니다.

1. 보통 약 1시간 후 또는 **Lambda 권한 부여자 배포** 단계에 **성공**이 표시되면 권한 부여자를 수동으로 연결하도록 선택한 경우 권한 부여자를 구성합니다.

   Verified Permissions는 API에 Lambda 함수와 Lambda 권한 부여자를 생성했습니다. **API 열기**를 선택하여 API로 이동합니다.

   Lambda 권한 부여자를 할당하는 방법을 알아보려면 *Amazon API Gateway 개발자 안내서*의 [API Gateway Lambda 권한 부여자 사용을](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html) 참조하세요.

   1. API의 **권한 부여자로** 이동하여 Verified Permissions가 생성한 권한 부여자의 이름을 기록해 둡니다.

   1. **리소스**로 이동하여 API에서 최상위 메서드를 선택합니다.

   1. **메서드 요청 설정**에서 **편집**을 선택합니다.

   1. **권한 부여자를** 이전에 기록한 권한 부여자 이름으로 설정합니다.

   1. **HTTP 요청 헤더를** 확장`AUTHORIZATION`하고 **이름** 또는를 입력한 다음 **필수**를 선택합니다.

   1. API 단계를 배포합니다.

   1. 변경 사항을 **저장합니다**.

1. 자격 **증명 소스 선택** 단계에서 선택한 토큰 **유형의** 사용자 풀 토큰으로 권한 부여자를 테스트합니다. 사용자 풀 로그인 및 토큰 검색에 대한 자세한 내용은 *Amazon Cognito 개발자 안내서*의 [사용자 풀 인증 흐름을](https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-authentication-flow.html) 참조하세요.

1. API에 대한 요청 `AUTHORIZATION` 헤더에서 사용자 풀 토큰으로 인증을 다시 테스트합니다.

1. 새 정책 스토어를 검사합니다. 정책을 추가하고 구체화합니다.

------
#### [ Sample policy store ]

****샘플 정책 스토어** 구성 방법을 사용하여 정책 스토어를 생성하려면**

1. **시작 옵션** 섹션에서 **샘플 정책 스토어**를 선택합니다.

1. **샘플 프로젝트** 섹션에서 사용할 샘플 Verified Permissions 애플리케이션의 유형을 선택합니다.
   + **PhotoFlash**는 사용자가 개별 사진 및 앨범을 친구와 공유할 수 있는 고객용 샘플 웹 애플리케이션입니다. 사용자는 사진을 보거나 댓글을 달고 재공유할 수 있는 사람의 권한을 세분화하여 설정할 수 있습니다. 계정 소유자는 친구 그룹을 만들고 사진을 앨범으로 정리할 수도 있습니다.
   + **DigitalPetStore**는 누구나 등록하여 고객이 될 수 있는 샘플 애플리케이션입니다. 고객은 판매할 반려동물을 추가하거나 반려동물을 검색하고 주문할 수 있습니다. 반려동물을 추가한 고객은 반려동물 소유자로 기록됩니다. 반려동물 소유자는 반려동물의 세부 정보를 업데이트하거나 반려동물 이미지를 업로드하고 반려동물 등록 내용을 삭제할 수 있습니다. 반려동물을 주문한 고객은 주문 소유자로 기록됩니다. 주문 소유자는 주문에 대한 세부 정보를 확인하거나 주문을 취소할 수 있습니다. 반려동물 스토어 매니저에게는 관리자 액세스 권한이 부여됩니다.
**참고**  
**DigitalPetStore** 샘플 정책 스토어에는 정책 템플릿이 포함되어 있지 않습니다. **PhotoFlash** 및 **TinyTodo** 샘플 정책 스토어에는 정책 템플릿이 포함되어 있습니다.
   + **TinyTodo**는 사용자가 작업 및 작업 목록을 생성할 수 있는 샘플 애플리케이션입니다. 목록 소유자는 목록을 관리 및 공유하고 목록을 보거나 편집할 수 있는 사람을 지정할 수 있습니다.

1. 샘플 정책 스토어의 스키마 네임스페이스는 선택한 샘플 프로젝트에 따라 자동으로 생성됩니다.

1. **정책 스토어 생성**을 선택합니다.

   선택한 샘플 정책 스토어에 대한 정책 및 스키마를 사용하여 정책 스토어가 생성됩니다. 샘플 정책 스토어에 대해 생성할 수 있는 템플릿이 연결된 정책에 대한 자세한 내용은 [Amazon Verified Permissions 예제 템플릿 연결 정책](policy-templates-example-policies.md)를 참조하세요.

------
#### [ Empty policy store ]

****빈 정책 스토어** 구성 방법을 사용하여 정책 스토어를 생성하려면**

1. **시작 옵션** 섹션에서 **정책 저장소 비우기를** 선택합니다.

1. **정책 스토어 생성**을 선택합니다.

빈 정책 스토어는 스키마 없이 생성되므로 정책이 검증되지 않습니다. 정책 스토어의 스키마 업데이트에 대한 자세한 내용은 [Amazon Verified Permissions 정책 스토어 스키마](schema.md)를 참조하세요.

정책 스토어의 정책 생성에 대한 자세한 내용은 [Amazon Verified Permissions 정적 정책 생성](policies-create.md) 및 [Amazon Verified Permissions 템플릿 연결 정책 생성](policy-templates-create-policy.md)을 참조하세요.

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

**AWS CLI를 사용하여 빈 정책 스토어를 생성하려면**  
`create-policy-store` 작업을 사용하여 정책 스토어를 생성할 수 있습니다.

**참고**  
를 사용하여 생성하는 정책 스토어 AWS CLI 는 비어 있습니다.  
스키마를 추가하려면 [Amazon Verified Permissions 정책 스토어 스키마](schema.md)를 참조하세요.
 정책을 추가하려면 [Amazon Verified Permissions 정적 정책 생성](policies-create.md)을 참조하세요.
정책 템플릿을 추가하려면 [Amazon Verified Permissions 정책 템플릿 생성](policy-templates-create.md)을 참조하세요.

```
$ aws verifiedpermissions create-policy-store \
    --validation-settings "mode=STRICT"
{
    "arn": "arn:aws:verifiedpermissions::123456789012:policy-store/PSEXAMPLEabcdefg111111",
    "createdDate": "2023-05-16T17:41:29.103459+00:00",
    "lastUpdatedDate": "2023-05-16T17:41:29.103459+00:00",
    "policyStoreId": "PSEXAMPLEabcdefg111111"
}
```

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

`CreatePolicyStore` API를 사용하여 정책 스토어를 생성할 수 있습니다. 자세한 내용은 Amazon Verified Permissions API 참조 가이드의 [CreatePolicyStore](https://docs.aws.amazon.com/verifiedpermissions/latest/apireference/API_CreatePolicyStore.html)를 참조하세요.

------