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