OPA를 사용하여 PDP 구현 - AWS 규범적 지침

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

OPA를 사용하여 PDP 구현

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

OPA를 사용하여 PDP 구현

OPA는 사용자 지정 정책 엔진에 비해 몇 가지 장점이 있습니다.

  • OPA와 Rego를 통한 정책 평가 기능은 권한 부여 결정에 필요한 정책과 데이터를 삽입하기만 하면 되는 유연하고 사전 구축된 정책 엔진을 제공합니다. 이 정책 평가 로직은 맞춤형 정책 엔진 솔루션에서 다시 만들어야 할 것입니다.

  • OPA는 정책을 선언적 언어로 작성하여 권한 부여 논리를 단순화합니다. 애플리케이션 개발 기술 없이도 애플리케이션 코드와 독립적으로 이러한 정책과 규칙을 수정하고 관리할 수 있습니다.

  • OPA는 정책 적용 지점 (PEP) 과의 통합을 간소화하는 RESTful API를 제공합니다.

  • OPA는 JSON 웹 토큰 (JWT) 의 검증 및 디코딩을 위한 기본 지원을 제공합니다.

  • OPA는 인정된 권한 부여 표준이므로 특정 문제를 해결하기 위해 지원이나 연구가 필요한 경우 문서와 예제가 풍부합니다.

  • OPA와 같은 권한 부여 표준을 채택하면 팀 응용 프로그램에서 사용하는 프로그래밍 언어에 관계없이 Rego로 작성된 정책을 팀 간에 공유할 수 있습니다.

OPA가 자동으로 제공하지 않는 두 가지가 있습니다.

  • OPA에는 정책 업데이트 및 관리를 위한 강력한 컨트롤 플레인이 없습니다. OPA는 관리 API를 노출하여 정책 업데이트, 모니터링 및 로그 집계를 구현하기 위한 몇 가지 기본 패턴을 제공하지만 이 API와의 통합은 OPA 사용자가 처리해야 합니다. 가장 좋은 방법은 지속적 통합 및 지속적 배포 (CI/CD) 파이프라인을 사용하여 OPA에서 정책 버전을 관리, 수정 및 추적하고 정책을 관리하는 것입니다.

  • OPA는 기본적으로 외부 소스에서 데이터를 검색할 수 없습니다. 권한 부여 결정을 위한 외부 데이터 소스는 사용자 속성을 보관하는 데이터베이스일 수 있습니다. 외부 데이터를 OPA에 제공하는 방식에는 어느 정도 유연성이 있습니다. 즉, 사전에 로컬에 캐시하거나 권한 부여 결정 요청 시 API에서 동적으로 검색할 수 있습니다. 하지만 이 정보를 가져오는 작업은 OPA가 대신 수행할 수 있는 작업이 아닙니다.