FAQ - AWS 권장 가이드

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

FAQ

이 섹션에서는 멀티테넌트 SaaS 애플리케이션에서 API 액세스 제어 및 권한 부여를 구현하는 것과 관련하여 자주 묻는 질문에 대한 답변을 제공합니다.

Q: 권한 부여와 인증의 차이점은 무엇인가요?

A.인증은 사용자가 누구인지 확인하는 프로세스입니다. 권한 부여는 사용자에게 특정 리소스에 액세스할 수 있는 권한을 부여합니다.

Q: SaaS 애플리케이션의 권한 부여와 테넌트 격리의 차이점은 무엇인가요?

A. 테넌트 격리는 공유 인프라에서 운영될 때에도 각 테넌트의 리소스가 격리되도록 SaaS SaaS 시스템에서 사용되는 명시적 메커니즘을 말합니다. 다중 테넌트 권한 부여는 인바운드 작업을 승인하고 잘못된 테넌트에서 작업이 구현되지 않도록 하는 것을 말합니다. 가상의 사용자는 인증 및 권한 부여를 받을 수 있지만 다른 테넌트의 리소스에 계속 액세스할 수 있습니다. 인증 및 권한 부여에 대한 어떤 것도 반드시이 액세스를 차단하지는 않지만,이 목표를 달성하려면 테넌트 격리가 필요합니다. 이 두 가지 개념에 대한 자세한 내용은 SaaS 아키텍처 기본 백서의 테넌트 격리 논의를 참조하세요. AWS SaaS

Q: SaaS 애플리케이션의 테넌트 격리를 고려해야 하는 이유는 무엇인가요?

A.SaaS 애플리케이션에는 여러 테넌트가 있습니다. 테넌트는 고객 조직 또는 해당 SaaS 애플리케이션을 사용하는 외부 엔터티일 수 있습니다. 애플리케이션 설계 방식에 따라 테넌트가 공유 APIs, 데이터베이스 또는 기타 리소스에 액세스할 수 있습니다. 한 테넌트의 사용자가 다른 테넌트의 프라이빗 정보에 액세스하지 못하도록 리소스에 대한 액세스를 엄격하게 제어하고 다른 테넌트의 리소스에 액세스하려는 시도를 차단하는 구성과 같은 테넌트 격리를 유지하는 것이 중요합니다. SaaS 애플리케이션은 애플리케이션 전체에서 테넌트 격리가 유지되고 테넌트가 자체 리소스에만 액세스할 수 있도록 설계되는 경우가 많습니다.

Q. 액세스 제어 모델이 필요한 이유는 무엇인가요?

A.액세스 제어 모델은 애플리케이션의 리소스에 대한 액세스 권한을 부여하는 방법을 결정하는 일관된 방법을 생성하는 데 사용됩니다. 이는 비즈니스 로직과 밀접하게 일치하는 역할을 사용자에게 할당하거나 시간대 또는 사용자가 사전 정의된 조건을 충족하는지 여부와 같은 다른 컨텍스트 속성을 기반으로 할 수 있습니다. 액세스 제어 모델은 사용자 권한을 결정하기 위해 권한 부여 결정을 내릴 때 애플리케이션이 사용하는 기본 로직을 형성합니다.

Q. 애플리케이션에 API 액세스 제어가 필요합니까?

A.예. APIs 항상 호출자에게 적절한 액세스 권한이 있는지 확인해야 합니다. 또한 퍼베이시브 API 액세스 제어를 사용하면 테넌트를 기반으로만 액세스 권한이 부여되므로 적절한 격리를 유지할 수 있습니다.

Q. 정책 엔진 또는 PDPs 권한 부여에 권장되는 이유는 무엇입니까?

A.정책 결정 시점(PDP)을 사용하면 애플리케이션 코드의 권한 부여 로직을 별도의 시스템으로 오프로드할 수 있습니다. 이렇게 하면 애플리케이션 코드가 간소화될 수 있습니다. 또한 APIs, 마이크로서비스, 프런트엔드용 백엔드(BFF) 계층 또는 기타 애플리케이션 구성 요소에 대한 권한 부여 결정을 내릴 수 있는 easy-to-use 멱등성 인터페이스를 제공합니다.

Q. PEP란 무엇입니까?

A.정책 적용 지점(PEP)은 평가를 위해 PDP로 전송되는 권한 부여 요청을 수신할 책임이 있습니다. PEP는 데이터와 리소스를 보호해야 하거나 권한 부여 로직이 적용되는 애플리케이션의 모든 위치에 있을 수 있습니다. PEPs는 PDPs. PEP는 권한 부여 결정을 요청하고 평가하는 데만 책임이 있으며 권한 부여 로직을 여기에 통합할 필요가 없습니다.

Q. Amazon Verified Permissions와 OPA 중에서 선택하려면 어떻게 해야 하나요?

A. Verified Permissions와 Open Policy Agent(OPA) 중에서 선택하려면 항상 사용 사례와 고유한 요구 사항을 염두에 두십시오. Verified Permissions는 밀리초 처리로 애플리케이션 지연 시간 요구 사항을 충족하면서 세분화된 권한을 정의하고, 애플리케이션 간에 권한을 감사하고, 애플리케이션의 정책 관리 시스템을 중앙 집중화하는 완전 관리형 방법을 제공합니다. OPA는 애플리케이션 스택에서 정책을 통합하는 데 도움이 되는 오픈 소스 범용 정책 엔진입니다. OPA를 실행하려면 일반적으로 컨테이너 또는 AWS Lambda 함수를 사용하여 AWS 환경에서 호스팅해야 합니다.

Verified Permissions는 오픈 소스 Cedar 정책 언어를 사용하는 반면, OPA는 Rego를 사용합니다. 따라서 이러한 언어 중 하나에 익숙해지면 해당 솔루션을 선택해야 할 수 있습니다. 그러나 두 언어에 대해 모두 읽은 다음 해결하려는 문제에서 돌아가서 사용 사례에 가장 적합한 솔루션을 찾는 것이 좋습니다.

Q. Verified Permissions 및 OPA에 대한 오픈 소스 대안이 있나요?

A.공통 표현식 언어(CEL)와 같이 Verified Permissions 및 Open Policy Agent(OPA)와 유사한 몇 가지 오픈 소스 시스템이 있습니다. 이 가이드는 확장 가능한 권한 관리 및 세분화된 권한 부여 서비스인 Verified Permissions와 다양한 유형의 애플리케이션 및 권한 부여 요구 사항에 광범위하게 채택, 문서화 및 적용할 수 있는 OPA 모두에 중점을 둡니다.

Q. OPA를 사용하려면 권한 부여 서비스를 작성해야 합니까? 아니면 OPA와 직접 상호 작용할 수 있습니까?

A. OPA와 직접 상호 작용할 수 있습니다. 이 지침의 맥락에서 권한 부여 서비스는 권한 부여 결정 요청을 OPA 쿼리로 변환하는 서비스를 가리키며, 그 반대의 경우도 마찬가지입니다. 애플리케이션이 OPA 응답을 직접 쿼리하고 수락할 수 있는 경우 이러한 추가 복잡성을 도입할 필요가 없습니다.

Q: 가동 시간 및 감사 목적으로 OPA 에이전트를 모니터링하려면 어떻게 해야 하나요?

A.OPA는 로깅 및 기본 가동 시간 모니터링을 제공하지만 기본 구성은 엔터프라이즈 배포에 충분하지 않을 수 있습니다. 자세한 내용은이 가이드 앞부분의 DevOps, 모니터링 및 로깅 섹션을 참조하세요.

Q: 가동 시간 및 감사 목적으로 Verified Permissions를 모니터링하려면 어떻게 해야 하나요?

A.Verified Permissions는 AWS 관리형 서비스이며를 통해 가용성을 모니터링할 수 있습니다 AWS Health Dashboard. 또한 Verified Permissions는 Amazon CloudWatch Logs AWS CloudTrail, Amazon S3 및 Amazon Data Firehose에 로그인할 수 있습니다.

Q: OPA를 실행하는 데 사용할 수 있는 운영 체제 및 AWS 서비스는 무엇입니까?

A.macOS, Windows 및 Linux에서 OPA를 실행할 수 있습니다. OPA 에이전트는 Amazon Elastic Compute Cloud(Amazon EC2) 에이전트뿐만 아니라 Amazon Elastic Container Service(Amazon ECS) 및 Amazon Elastic Kubernetes Service(Amazon EKS)와 같은 컨테이너화 서비스에서 구성할 수 있습니다.

Q: Verified Permissions를 실행하는 데 사용할 수 있는 운영 체제 및 서비스는 무엇입니까 AWS?

A.Verified Permissions는 AWS 관리형 서비스이며에서 운영합니다 AWS. 서비스에 대한 권한 부여 요청을 수행하는 기능을 제외하고 Verified Permissions를 사용하는 데 추가 구성, 설치 또는 호스팅이 필요하지 않습니다.

Q:에서 OPA를 실행할 수 있습니까 AWS Lambda?

A.Lambda에서 OPA를 Go 라이브러리로 실행할 수 있습니다. API Gateway Lambda 권한 부여자에 대해이 작업을 수행하는 방법에 대한 자세한 내용은 AWS 블로그 게시물 Creating a custom Lambda authorizer using Open Policy Agent를 참조하세요.

Q: 분산 PDP 접근 방식과 중앙 집중식 PDP 접근 방식 중에서 어떻게 결정해야 하나요?

A. 이는 애플리케이션에 따라 다릅니다. 분산형 PDP 모델과 중앙 집중식 PDP 모델의 지연 시간 차이를 기반으로 결정될 가능성이 높습니다. 개념 증명을 작성하고 애플리케이션의 성능을 테스트하여 솔루션을 확인하는 것이 좋습니다.

Q: APIs 이외의 사용 사례에 OPA를 사용할 수 있나요?

A.예. OPA 설명서는 Kubernetes, Envoy, Docker, Kafka, SSH 및 sudo, Terraform에 대한 예제를 제공합니다. 또한 OPA는 Rego 부분 규칙을 사용하여 쿼리에 대한 임의의 JSON 응답을 반환할 수 있습니다. 쿼리에 따라 OPA를 사용하여 JSON 응답으로 많은 질문에 답할 수 있습니다.

Q. API 이외의 사용 사례에 Verified Permissions를 사용할 수 있나요? APIs

A.예. Verified Permissions는 수신하는 모든 권한 부여 요청에 대해 ALLOW 또는 DENY 응답을 제공할 수 있습니다. Verified Permissions는 권한 부여 결정이 필요한 모든 애플리케이션 또는 서비스에 대한 권한 부여 응답을 제공할 수 있습니다.

Q. IAM 정책 언어를 사용하여 Verified Permissions에서 정책을 생성할 수 있나요?

A. 아니요. 정책을 작성하려면 Cedar 정책 언어를 사용해야 합니다. Cedar는 고객 애플리케이션 리소스에 대한 권한 관리를 지원하도록 설계된 반면, AWS Identity and Access Management (IAM) 정책 언어는 AWS 리소스에 대한 액세스 제어를 지원하도록 개선되었습니다.