

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

# OPA를 사용하여 PDP 구현
<a name="opa"></a>

Open Policy Agent(OPA)는 오픈 소스 범용 정책 엔진입니다. OPA에는 많은 사용 사례가 있지만 PDP 구현과 관련된 사용 사례는 권한 부여 로직을 애플리케이션에서 분리하는 기능입니다. 이를 *정책 분리라고 합니다*. OPA는 여러 가지 이유로 PDP를 구현하는 데 유용합니다. 정책 및 규칙 초안을 작성하기 위해 Rego라는 상위 수준의 선언적 언어를 사용합니다. 이러한 정책 및 규칙은 애플리케이션과 별도로 존재하며 애플리케이션별 로직 없이 권한 부여 결정을 렌더링할 수 있습니다. 또한 OPA는 RESTful API를 노출하여 권한 부여 결정을 간단하고 간단하게 검색할 수 있습니다. 권한 부여 결정을 내리기 위해 애플리케이션은 JSON 입력으로 OPA를 쿼리하고 OPA는 지정된 정책에 대해 입력을 평가하여 JSON으로 액세스 결정을 반환합니다. 또한 OPA는 권한 부여 결정과 관련이 있을 수 있는 외부 데이터를 가져올 수 있습니다.

![\[OPA를 사용하여 PDP 구현\]](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/saas-multitenant-api-access-authorization/images/opa.png)


OPA는 사용자 지정 정책 엔진에 비해 몇 가지 이점이 있습니다.
+ Rego를 사용한 OPA 및 정책 평가는 정책 및 권한 부여 결정을 내리는 데 필요한 데이터만 삽입하면 되는 유연한 사전 구축된 정책 엔진을 제공합니다. 이 정책 평가 로직은 사용자 지정 정책 엔진 솔루션에서 다시 생성해야 합니다.
+ OPA는 선언적 언어로 작성된 정책을 통해 권한 부여 로직을 간소화합니다. 애플리케이션 개발 기술 없이 애플리케이션 코드와 관계없이 이러한 정책 및 규칙을 수정하고 관리할 수 있습니다.
+ OPA는 정책 적용 지점(PEP)과의 통합을 간소화하는 RESTful API를 노출합니다.PEPs
+ OPA는 JSON 웹 토큰(JWTs.
+ OPA는 공인된 권한 부여 표준으로, 특정 문제를 해결하기 위해 도움이나 조사가 필요한 경우 설명서와 예제가 풍부합니다.
+ OPA와 같은 권한 부여 표준을 채택하면 팀의 애플리케이션에서 사용하는 프로그래밍 언어에 관계없이 Rego로 작성된 정책을 팀 간에 공유할 수 있습니다.

OPA가 자동으로 제공하지 않는 두 가지 사항이 있습니다.
+ OPA에는 정책을 업데이트하고 관리하기 위한 강력한 컨트롤 플레인이 없습니다. OPA는 관리 API를 노출하여 정책 업데이트, 모니터링 및 로그 집계를 구현하기 위한 몇 가지 기본 패턴을 제공하지만이 API와의 통합은 OPA 사용자가 처리해야 합니다. 가장 좋은 방법은 지속적 통합 및 지속적 배포(CI/CD) 파이프라인을 사용하여 정책 버전을 관리, 수정 및 추적하고 OPA에서 정책을 관리하는 것입니다.
+ OPA는 기본적으로 외부 소스에서 데이터를 검색할 수 없습니다. 권한 부여 결정을 위한 외부 데이터 소스는 사용자 속성을 포함하는 데이터베이스일 수 있습니다. 외부 데이터를 OPA에 제공하는 방법에는 약간의 유연성이 있습니다. 권한 부여 결정이 요청될 때 미리 로컬로 캐시하거나 API에서 동적으로 검색할 수 있지만,이 정보를 얻는 것은 OPA가 사용자를 대신하여 수행할 수 있는 작업은 아닙니다.