AWS 외부 ID 없이 보안

Panther는 AWS 네이티브 애플리케이션으로서 접근 관리를 위해 AWS IAM 역할에 크게 의존합니다. Panther 배포 내에서 모든 람다 함수의 실행 역할은 해당 작업을 수행하는 데 필요한 최소 권한으로 구성됩니다. 여기에는 고객 계정의 역할을 맡을(assume) 수 있는 권한이 포함될 수 있습니다.

Panther는 또한 소프트웨어형 서비스(SaaS)로 제공됩니다. 고객 계정의 IAM 역할을 맡는 SaaS 서비스는 전통적으로 보안상의 이유로 external ID(외부 ID)를 사용해야 하는 것으로 여겨집니다. Panther는 외부 ID를 사용하지 않으며, 이로 인해 일부 보안에 민감한 고객들로부터 질문이 제기된 바 있습니다.

Panther는 단일 테넌트(single-tenant) SaaS 제공이기 때문에 외부 ID를 사용할 필요가 없습니다. 즉, 각 고객의 Panther 인스턴스를 전용 AWS 계정에 배포합니다. 고객의 Panther 계정 AWS 계정 ID는 외부 ID가 해결하려는 문제에 대한 대안적 해결책으로 작동합니다.

외부 ID란 무엇이며 어떤 문제를 해결하나요?

이 AWS 블로그 게시물은arrow-up-right 외부 ID가 무엇인지 및 다중 테넌트 서비스의 문제를 해결하는 방식에 대해 설명합니다. 요약하자면, 외부 ID는 IAM 역할을 맡겠다는 요청에 추가할 수 있는 정보 조각입니다. 그 역할의 신뢰 정책(trust policy)은(필수는 아니지만) 해당 IAM 역할에 접근을 허용할 때 어떤 외부 ID를 수락할지 지정할 수 있습니다. 외부 ID는 효과적이기 위해 비밀이거나 추측하기 어려울 필요는 없으며; 단지 고유하면 됩니다.

외부 ID의 주요 기능은 "혼란스러운 대리인(confused deputy)" 문제를arrow-up-right해결하는 것입니다. AWS 맥락에서 “혼란스러운 대리인” 문제의 기본 전제는 다음과 같습니다: SaaS 서비스 제공자가 여러 고객의 AWS 계정에서 역할을 맡을 수 있는 접근 권한을 가지고 있다면, 한 고객이 서비스 제공자를 속여 다른 고객 계정의 역할을 맡게 할 가능성이 있을 수 있습니다.

Panther가 교차 계정 역할 접근에 외부 ID를 사용할 필요가 없는 이유

Panther가 외부 ID를 필요로 하지 않는 이유는 그것이 다중 테넌트 SaaS 제공이 아니기 때문입니다. 모든 Panther SaaS 배포는 한 개별 고객을 위해 Panther를 호스팅하는 전용 AWS 계정에 배포됩니다.

Panther가 사용하는 IAM 역할의 신뢰 정책은 어떤 AWS 계정이 해당 역할을 맡을 수 있는지 지정합니다. 각 고객의 Panther 배포가 서로 다른 AWS 계정에 있으므로, 한 고객의 Panther 배포는 외부 ID와 상관없이 다른 고객이 배포한 역할을 맡을 수 있는 접근 권한을 가지지 않습니다.

이는 외부 ID를 사용하는 것보다 훨씬 더 안전합니다. 고객이 Panther 계정을 완전히 침해하여 데이터 저장소에 직접 접근하고 람다를 실행할 수 있는 지경에 이르더라도, 다른 고객의 계정을 스캔할 수는 없습니다. 외부 ID를 사용하는 전통적인 다중 테넌트 모델에서는 SaaS 계정을 완전히 침해하면 조직과 연관된 외부 ID를 단순히 변경함으로써 다른 고객 계정에 대한 전체 접근 권한을 얻을 수 있습니다.

그렇다면 왜 외부 ID를 굳이 추가하지 않는가?

  • 실질적인 도움이 되지 않습니다.

    • 보호 효과가 없는 안전성의 외관에 불과합니다.

  • 추가적인 요소는 복잡성을 더합니다.

    • 정당한 이유 없이 외부 ID를 추가하면 배포를 망가뜨릴 위험이 있습니다. 예를 들어, 외부 ID 버그로 인해 장기간 동안 스캔/로그 처리 기능이 사용할 수 없게 되는 것이 실제적인 보안 위협이 될 수 있습니다. 그 위험은 낮지만 불가능한 것은 아니며; 이러한 외부 ID를 추가하는 것은 아예 추가하지 않는 것보다 훨씬 더 큰 위험을 초래할 수 있습니다.

  • 아키텍처적으로도 합리적이지 않습니다.

    • 외부 ID를 의미 있게 지원하려면 아키텍처 변경이 필요하며, 이는 Panther 배포에 보안 가치를 추가하지 않는 기능을 지원하기 위한 것입니다.

외부 ID에 대해 질문이 있으시면 Panther 지원팀에 문의해 주세요.

Last updated

Was this helpful?