보안을 지원하는 클라우드 디자인 패턴

워크로드 아키텍처를 디자인할 때 일반적인 문제를 해결하는 업계 패턴을 사용해야 합니다. 패턴은 워크로드 내에서 의도적으로 절충하고 원하는 결과를 최적화하는 데 도움이 될 수 있습니다. 또한 안정성, 성능, 비용 및 운영에 영향을 줄 수 있는 특정 문제에서 발생하는 위험을 완화하는 데 도움이 될 수 있습니다. 이러한 위험은 무인 상태로 두면 비즈니스에 상당한 위험을 초래할 수 있는 보안 보증의 부족을 나타낼 수 있습니다. 이러한 패턴은 실제 환경에서 지원되고, 클라우드 규모 및 운영 모델을 위해 설계되었으며, 기본적으로 공급업체에 구애받지 않습니다. 워크로드 디자인을 표준화하는 방법으로 잘 알려진 패턴을 사용하는 것은 운영 우수성의 구성 요소입니다.

많은 디자인 패턴은 하나 이상의 아키텍처 핵심을 직접 지원합니다. 보안 핵심 요소 를 지원하는 디자인 패턴은 세분화 및 격리, 강력한 권한 부여, 균일한 애플리케이션 보안 및 최신 프로토콜과 같은 개념의 우선 순위를 지정합니다.

보안을 위한 디자인 패턴

다음 표에는 보안 목표를 지원하는 클라우드 디자인 패턴이 요약됩니다.

패턴 요약
특사 네트워크 통신과 관련된 교차 절단 작업을 오프로드하여 네트워크 통신을 캡슐화하고 관리합니다. 결과 도우미 서비스는 클라이언트를 대신하여 통신을 시작합니다. 이 조정 지점은 네트워크 통신에 대한 보안을 강화할 수 있는 기회를 제공합니다.
프런트 엔드에 대한 백 엔드 특정 프런트 엔드 인터페이스에만 적용되는 별도의 서비스를 만들어 워크로드의 서비스 계층을 개별화합니다. 이러한 분리로 인해 한 클라이언트를 지원하는 서비스 계층의 보안 및 권한 부여는 해당 클라이언트에서 제공하는 기능에 맞게 조정될 수 있으며, 이로 인해 API의 노출 영역과 다양한 기능을 노출할 수 있는 여러 백 엔드 간의 횡적 이동이 감소할 수 있습니다.
격벽 오작동의 폭발 반경을 격리하기 위해 구성 요소 간의 의도적이고 완전한 구분을 도입합니다. 이 전략을 사용하여 손상된 격벽에 대한 보안 인시던트도 포함할 수 있습니다.
클레임 검사 메시지 흐름과 데이터를 분리하여 메시지와 관련된 데이터를 별도로 검색하는 방법을 제공합니다. 이 패턴은 중요한 데이터를 메시지 본문에서 유지하는 대신 보안 데이터 저장소에서 관리되는 상태를 유지하는 것을 지원합니다. 이 구성을 사용하면 데이터를 사용해야 하는 서비스의 중요한 데이터에 대한 액세스를 지원하지만 큐 모니터링 솔루션과 같은 보조 서비스에서 가시성을 제거하기 위해 더 엄격한 권한 부여를 설정할 수 있습니다.
페더레이션 ID 사용자를 관리하고 애플리케이션에 대한 인증을 제공하기 위해 워크로드 외부에 있는 ID 공급자에게 신뢰를 위임합니다. 사용자 관리 및 인증을 외부화하면 워크로드에서 이러한 기능을 구현할 필요 없이 ID 기반 위협 탐지 및 방지를 위한 향상된 기능을 얻을 수 있습니다. 외부 ID 공급자는 최신 상호 운용 가능한 인증 프로토콜을 사용합니다.
게이트 키퍼 요청을 백 엔드 노드로 전달하기 전과 후에 보안 및 액세스 제어 적용을 위한 요청 처리를 오프로드합니다. 요청 흐름에 게이트웨이를 추가하면 웹 애플리케이션 방화벽, DDoS 보호, 봇 검색, 요청 조작, 인증 시작 및 권한 부여 검사와 같은 보안 기능을 중앙 집중화할 수 있습니다.
게이트웨이 집계 단일 요청에서 여러 백 엔드 서비스에 대한 호출을 집계하여 워크로드와의 클라이언트 상호 작용을 간소화합니다. 이 토폴로지는 종종 클라이언트가 시스템에 사용하는 터치 포인트 수를 줄여 공용 노출 영역 및 인증 지점을 줄입니다. 집계된 백 엔드는 클라이언트에서 완전히 네트워크 격리된 상태를 유지할 수 있습니다.
게이트웨이 오프로딩 요청을 백 엔드 노드로 전달하기 전과 후에 게이트웨이 디바이스로 요청 처리를 오프로드합니다. 요청 흐름에 게이트웨이를 추가하면 웹 애플리케이션 방화벽 및 클라이언트와의 TLS 연결과 같은 보안 기능을 중앙 집중화할 수 있습니다. 플랫폼에서 제공하는 오프로드된 기능은 이미 향상된 보안을 제공합니다.
게시자/구독자 중간 메시지 브로커 또는 이벤트 버스를 통해 직접 클라이언트-서비스 통신을 통신으로 대체하여 아키텍처의 구성 요소를 분리합니다. 이 대체는 큐 구독자가 게시자로부터 네트워크를 격리할 수 있도록 하는 중요한 보안 구분 경계를 도입합니다.
격리 외부 자산이 워크로드에서 사용할 수 있는 권한을 부여하기 전에 팀에서 합의한 품질 수준을 충족하도록 합니다. 이 검사 외부 아티팩트에서 첫 번째 보안 유효성 검사 역할을 합니다. 아티팩트의 유효성 검사는 SDL(보안 개발 수명 주기) 내에서 사용되기 전에 분할된 환경에서 수행됩니다.
사이드카 기본 애플리케이션과 함께 존재하는 동반 프로세스에서 기본이 아닌 또는 교차 절단 작업을 캡슐화하여 애플리케이션의 기능을 확장합니다. 이러한 작업을 캡슐화하고 out-of-process로 배포하면 중요한 프로세스의 노출 영역을 작업을 수행하는 데 필요한 코드로만 줄일 수 있습니다. 사이드카를 사용하여 해당 기능으로 고유하게 설계되지 않은 애플리케이션 구성 요소에 교차 절단 보안 컨트롤을 추가할 수도 있습니다.
제한 리소스 또는 구성 요소에 들어오는 요청의 속도 또는 처리량에 제한을 적용합니다. 시스템의 자동화된 남용으로 인해 발생할 수 있는 리소스 소모를 방지하기 위해 제한을 디자인할 수 있습니다.
발레 키 중간 리소스를 사용하여 액세스를 프록시하지 않고 리소스에 대한 보안 제한 액세스 권한을 부여합니다. 이 패턴을 사용하면 클라이언트가 오래 지속되거나 유지되는 자격 증명 없이도 리소스에 직접 액세스할 수 있습니다. 모든 액세스 요청은 감사 가능한 트랜잭션으로 시작합니다. 그런 다음, 부여된 액세스는 scope 기간 모두에서 제한됩니다. 또한 이 패턴을 사용하면 부여된 액세스 권한을 더 쉽게 취소할 수 있습니다.

다음 단계

다른 Azure Well-Architected Framework 핵심 요소들을 지원하는 클라우드 디자인 패턴을 검토합니다.