정책 리스크를 파악하십시오. 정책에 대한 질문을 일상 언어로 하십시오. 데모 신청하기 →
Published:
클라우드 거버넌스 대통일 이론 개선하기
by Rich Mogull
1년이 조금 넘은 시점에 저는 클라우드 거버넌스 대통일 이론을 썼습니다. 이는 기업이 클라우드에 적응하면서 겪는 어려움의 근본 원인을 정리해 보기 위해 약 5~6년간 다듬어 온 개념입니다. 물론 제목이 다소 자만스럽게 들리지만, 제가 Gartner 애널리스트 출신이라서 그렇다고 해 두죠.
(바라건대) 좋은 이론이 그렇듯, 저는 더 많은 기업과 일하고 더 많은 사람과 이야기하면서 이 이론을 계속 발전시키고 있습니다. 특히 거버넌스 관련 상황에 더 자주 참여하게 되면서, 지난 몇 년간 강연과 교육에서 이 이론을 매우 자주 활용해 왔습니다. 제가 마주치는 주요 문제는 번번이 기술적인 것이 아니라 조직적인 것이었습니다. 물론 클라우드 보안에는 정말 많은 기술적 복잡성이 존재하고 그것이 침해로 이어질 수 있으며 실제로 이어지기도 하지만, 제 경험상 거버넌스 문제가 기술적 문제를 훨씬 능가합니다.
좋은 거버넌스가 제로데이를 패치해 주지는 못하지만, 나쁜 거버넌스는 공격자에게 제로데이 자체를 불필요하게 만듭니다.
이론의 핵심은 사실상 바뀌지 않았고, 저는 이를 더 잘 설명할 방법을 계속 찾고 있을 뿐입니다. 또한 내용을 조금 줄이기로 했습니다. 현재 제 슬라이드에는 다음과 같이 담고 있습니다.
- 클라우드는 운영과 인프라를 분산시킵니다
- 그러나 클라우드는 모든 관리 인터페이스를 통합합니다
- 그리고 모든 관리 포털과 리소스를 인터넷에 올려 두고 사용자 이름과 비밀번호로만 보호합니다
이전 버전과 비교하면 변화는 작지만 동시에 큽니다.
- 모든 관리 및 운영 기능이 인터넷에 존재하는 하나의 사용자 인터페이스로 통합됩니다.
- 사용자 이름, 비밀번호, 그리고 어쩌면 MFA로 보호됩니다.
- 기술은 거버넌스보다 빠르게 진화합니다.
저는 강연에서 여전히 "병목 지점과 게이트키퍼가 없다"는 표현을 쓰지만, 이는 "분산화"를 길게 풀어 쓴 것에 불과하다는 점을 알게 되었습니다. 근본적인 문제는 중앙 집중식 인프라 밖에서 전체 스택을 독립적으로 통제한다는 데 있습니다. 개발팀이나 애플리케이션팀이 신용카드 한 장만으로 자체 환경에서 자신들의 인프라 전부를 구축하고 관리할 수 있다는 것입니다. 물론 특히 데이터 플레인이나 네트워크와 연동해야 하는 경우에는 여전히 일부 종속성과 통제가 존재하지만, 그렇다고 핵심 논점이 달라지지는 않습니다.
완전한 재중앙화 시도는 성공하는 경우가 거의 없습니다.
다음으로, 관리 인터페이스의 통합에 관한 부분은 크게 바꾸지 않았습니다. 부연하자면, 배포 수준에서는 모든 인프라와 통제 권한이 분산되었지만, 전 세계 모든 사람이 동일한 웹 콘솔과 API 엔드포인트를 사용합니다.
공격자에게는 무한한 표적으로 통하는 단 하나의 관문이 있는 셈입니다.
그다음으로 첫 번째 버전의 하위 항목을 세 번째 항목으로 올렸습니다. 이 관리 포털은 모두 인터넷에 있으며, 기본적으로 사용자 이름과 비밀번호 정도만 사용합니다. 모든 리소스 또한 설정 하나만 바뀌면 인터넷에 노출됩니다. 그 많던 S3 버킷과 ElasticSearch 클러스터를 떠올려 보십시오.
정말 그만큼 단순합니다. 각 팀은 자신들의 자산을 독립적으로 관리합니다. 전 세계의 모든 팀이 동일한 웹 포털과 API 엔드포인트를 사용합니다. 그리고 올바른 자격 증명을 가진 사람이라면 누구든 여러분 "데이터센터"의 백엔드를 마음대로 들쑤실 수 있습니다.
놀라운 점은, 이 모든 내용이 이미 2011년 NIST 800-145, 즉 2페이지 분량의 NIST 클라우드 컴퓨팅 정의에 제시되어 있었다는 것입니다. 이 문서는 클라우드 컴퓨팅의 다섯 가지 필수 특성을 다음과 같이 정의했습니다.
- 온디맨드 셀프 서비스
- 광범위한 네트워크 접근
- 리소스 풀링
- 신속한 탄력성
- 측정 가능한 서비스
앞의 세 가지 항목을 정리하면 다음과 같습니다.
- 각 팀이 자신들의 자산을 관리합니다
- 모든 것이 인터넷에 있습니다
- 그리고 모두 공동 리소스 풀에 기반합니다
그렇다면 이 모든 것이 무엇을 의미하며 우리는 무엇을 해야 할까요?
받아들이십시오.
그것이 첫 번째 단계입니다. 문제를 이해하고, 그것을 해법을 고안하는 렌즈로 활용하십시오. 최근 제 강력한 인가(Strong Authorization) 게시글에서 쓴 것처럼 말입니다.
모든 것이 (잠재적으로) 인터넷에 놓이는 상황에 익숙하지 않기 때문입니다. 관리 플레인 전체가 인터넷에 있으므로, 공격자가 자격 증명을 확보하면 방화벽이나 서버 접근 차단만으로는 막을 수 없습니다.
여기서 시작하십시오. 기본 현실을 인정하십시오. 그 위험을 줄이기 위해 무엇을 할 수 있습니까? 그런 공격을 줄이려면 어떻게 해야 합니까? 가장 영향력이 큰 선택은 IAM, 그리고 거버넌스와 IAM의 접점에 집중하는 것이라고 생각합니다. 권한은 누가 관리합니까? 접근 권한은 어떻습니까? IAM 관련 공격을 예방, 탐지, 시정할 수 있는 보안 통제는 무엇입니까? IAM을 둘러싼 프로세스는 어떻습니까? 사고 대응 담당자가 사용 중인 클라우드 제공업체의 IAM을 속속들이 이해하고 있습니까? JIT/강력한 인가를 사용하고 있습니까? 협력업체와 외부 서비스의 IAM은 어떻게 관리합니까?
IAM 거버넌스와 프로세스부터 시작하십시오. 그런 다음 이를 뒷받침할 기술을 선택하고 활용하십시오. 이것이 클라우드 보안을 개선하는 가장 효과적인 단 하나의 방법입니다. 제가 이 말을 하는 첫 번째 사람이 아니기를 진심으로 바랍니다.