콘텐츠로 이동하기
보안 & 아이덴티티

비하인드 스토리: Google Cloud에서 IAM 추천을 지원하는 보안 분석

2020년 10월 20일
Abhi Yadav

Product Manager

Liang Zhang

Software Engineer, Google Cloud

Google Cloud 사용해 보기

$300의 무료 크레딧과 20개 이상의 항상 무료인 제품으로 Google Cloud 사용을 시작해보세요.

무료 체험

* 본 아티클의 원문은 2020년 8월 15일 Google Cloud 블로그(영문)에 게재되었습니다. 

IAM 추천자(IAM Recommender)는 보안 전문가가 Google Cloud Platform(GCP) 리소스에 대한 불필요한 액세스를 파악하고 삭제하여 최소 권한의 원칙을 시행하는 데 도움이 됩니다. 이전 블로그에서는 IAM 추천자를 사용하여 적은 노력으로 최소 권한을 달성하는 방법을 설명했습니다. 이 방법은 실제로 필요한 사용자 권한을 파악하기 위해 머신러닝을 사용하여 90일 동안 사용자 권한을 분석합니다. 

본 게시물에서는 IAM 추천자의 작동 방식에 대한 비하인드 스토리를 단계별 예시를 곁들여 살펴보겠습니다.

DIY 접근 방식

배경을 조금 더 설명하자면 IAM 추천자는 매일 정책 추천을 생성하여 자동으로 사용자에게 제공합니다. Google은 위험을 최소화하기 위해 로그를 수집하고, 데이터의 상관관계를 파악하고, 수정된 IAM 정책을 추천합니다. 그런 다음 이러한 결과를 Cloud Console의 추천 허브, BigQuery를 통해 Cloud Console IAM 권한 페이지의 컨텍스트 내 여러 위치에 표시하여 가시성을 확보합니다.

이 모두를 처음부터 수행하는 분석 시스템을 구축하기 위해서는 무엇이 필요한지 생각해 보겠습니다. 

1.우선 모든 리소스에 대해 정규화된 역할 binding을 정기적으로 수집하는 사용 권한 웨어하우스를 구축해야 하기 때문에 계층 구조와 상속된 역할 binding에 유의해야 합니다.

2.그 다음에는 추천이 기존 워크로드를 손상시키지 않도록 최근 사용된 권한을 파악하는 원격 분석을 수집하고 구축해야 합니다. 이를 위해서는 분석할 리소스에 대한 Cloud 감사 로그 데이터 액세스 로그를 저장하면 됩니다. 하지만 이러한 로그는 비용이 많이 드는 대용량 로그 데이터이며 분석하는 데 반복적인 로그 처리, 파싱, 정규화, 집계가 필요하기 때문에 간단한 일이 아닙니다.

3.액세스 로그 데이터가 비어 있는 경우도 있는데 이는 사용자가 휴가를 가거나 프로젝트를 변경하는 등의 산발적인 개인 행동으로 인해 발생할 수 있습니다. 머신러닝을 사용하여 이러한 빈 부분을 메워야 하는데 학습 데이터가 고차원적이고 희소 특성을 가지고 있기 때문에 이 역시 간단한 일이 아닙니다.

4.비즈니스 연속성을 확보하려면 모니터링 및 컨트롤을 구축하고 긴급 상황에 대한 조항을 추가해야 합니다.

5.이 작업이 완료되면 삭제해도 무방한 권한을 결정하기 위해 분석 파이프라인을 사용하여 정책 데이터 활용을 분석할 수 있습니다. 이를 머신러닝을 통해 개선하면 향후에 필요한 권한을 예측할 수 있으므로 사용자가 추가적인 액세스를 위해 다시 돌아올 필요가 없습니다.

6.마지막으로 적합한 권한, 역할, 조건, 리소스를 결정한 후에는 사용자 니즈를 충족하는 최적의 IAM 정책의 순위를 결정하는 모델을 만들어야 합니다.

Google에서는 실용적인 인텔리전스를 지원하면서도 이러한 모든 수고가 필요하지 않도록 만들고자 했습니다. 이러한 노력의 결과가 바로 Google 규모로 분석을 수행하는 Active Assist입니다. 

하지만 이 모든 작업을 수행할 수 있다 하더라도 자체 데이터만을 분석할 수 있을 뿐입니다. Google에서는 고객 간 분석을 통해 유용한 정보를 추가적으로 얻을 수 있기 때문에 정책에서 간극과 잠재적인 구성 오류가 문제가 되기 전에 파악합니다. Google Cloud는 여기의 블로그에 자세히 설명된 기법을 통해 분석을 수행하는 동안 사용자 개인정보를 사전 예방적으로 보호합니다.

Google이 이를 어떻게 구현했는지 좀 더 자세히 살펴보겠습니다.

안전한 적용

이 제품을 출시할 당시 Google은 추천을 안전하게 적용하여 워크로드에 손상이 없도록 하는데 중점을 두었습니다. 안전한 추천을 제공하려면 고품질의 입력 데이터를 보유해야 합니다. IAM 추천자는 승인 원격 분석 데이터를 분석하여 정책 활용을 계산하고 이에 따른 추천을 제공합니다. 

Google Cloud의 프로덕션 시스템은 처리를 관리하고 바로 로그 소스에서 데이터 품질 및 최신 상태를 확보합니다. 중요한 점은 IAM 추천자가 규모에 맞게 모든 고객에 대해 이러한 작업을 수행하며 이는 각 고객이 직접 수행할 때보다 더 효율적이라는 것입니다. Google은 페타바이트 규모의 로그 데이터를 수집하고 저장하여 추가적인 비용 없이 이러한 기능을 제공합니다.

하지만 승인 로그가 전부는 아닙니다. Google Cloud 리소스는 계층적으로 구성될 수 있으며 하위 리소스가 상위 리소스에 연결된 IAM 정책을 상속합니다. 정확한 추천을 제공하기 위해 분석에 해당 상속 데이터도 적용합니다. 

추천의 품질을 보장하기 위해 감지 및 검증 스크립트를 통해 포괄적인 모니터링 및 알림 시스템을 구축했습니다. 그리고 ML로 이러한 확인 절차를 자동화하여 새로운 추천을 기준과 비교하여 분석했습니다. 이 같은 기준과의 비교 분석은 업스트림 입력 데이터부터 다운스트림 종속 항목에 이르는 분석 파이프라인을 적용하기에 안전한지 확인합니다. 기준과의 편차가 감지되면 예방 조치를 취해 파이프라인을 중단하여 신뢰할 수 있는 추천을 제공합니다.

페타바이트 규모의 ML 보안 분석

Google은 추천을 제공하기 위해 Google Cloud의 Dataflow 처리 엔진을 사용하여 여러 단계의 파이프라인을 구축했습니다. 규모를 가늠할 수 있도록 표현하자면 Cloud IAM은 초당 수억 건의 승인 요청을 처리하는 전 세계적 규모의 승인 엔진입니다. IAM 추천자는 이러한 승인 로그를 수집하여 매일 수억 건의 추천을 생성하고 재검증하여 고객에게 최상의 결과를 제공합니다. Google Cloud의 확장 가능한 인프라를 통해 Google은 서비스를 합리적인 비용으로 제공할 수 있습니다.

Google 시스템은 최신 정책 구성 스냅샷과 리소스 메타데이터를 통해 승인 로그를 재실행하는 세부적인 정책 활용 분석을 매일수행합니다. 이 데이터는 ML 학습 모델에 적용되고 출력은 추천을 지원하는 정책 활용에 관한 유용한 정보에 통합됩니다. 다음으로 개인정보 보존 ML 기법을 사용하여 추천 변이, 시스템 장애, 기타 문제로 인해 발생할 수 있는 관찰 데이터의 간극을 메웁니다. (이러한 ML 기법에 대한 자세한 내용은 블로그를 참조하세요.)

위험과 복잡성 간 균형 유지

IAM 추천자는 비용 함수를 사용하여 필요한 권한 집합을 다루는 역할 집합을 파악하고 보안 위험에 따라 역할의 순위를 결정하며 위험도가 가장 낮은 역할을 선정합니다. 최소한의 역할 집합을 파악하는 것은 NP 완료 집합 범위 문제와 같습니다. 이 접근 방식에서는 오버헤드를 절감하기 위해 해당 조직 내 여러 프로젝트에 걸쳐 반복되는 패턴에 최적화하여 권한은 축소하면서 역할 멤버십은 최대화합니다. 

시스템이 조직 전반에서 재사용 기회를 발견하더라도 최고의 역할은 아직 생성되지 않았다고 판단하는 경우도 있으며 이러한 경우에는 커스텀 역할을 생성하는 것이 좋습니다.

자세히 알아보기

IAM 추천자에 대한 자세한 내용은 Cloud IAM 추천자를 지원하는 머신러닝 모델 살펴보기에 관한 문서와 블로그를 참조하세요. Active Assist에 대한 자세한 내용은 웹사이트를 참조하세요. 

Google 고객이 최소 권한 문제를 해결한 방법을 알아보려면 Google Cloud Next ‘20: OnAir의 다음 세션을 참조하세요.

게시 위치