서비스 기획자의 성장기록

[Today I learned] 2024.01.28.일: Zanzibar 본문

Today I leaned..

[Today I learned] 2024.01.28.일: Zanzibar

Jenny Noh 2024. 1. 28. 09:45

📌 구글의 권한 관리 도구, Zanzibar

Zanzibar은 구글앱들 사이에서 데이터 접근 권한을 관리해주는 도구이다. 구글 서비스들 간에 연동을 가능하게 하는게 Zanzibar이다. 

구글 메일에서 구글 드라이브에 저장된 파일에 접근하려고 하면 원래는 메일에서 드라이브 앱에 해당 접근이 유효한지 확인하는 작업이 수행돼야 한다. 하지만 구글처럼 많은 서비스 앱을 보유한 회사라면, 확인하려고 하는 서비스에 어떤 API가 존재하고, 데이터 베이스가 어떤 형태로 존재하는지 알아야하기 때문에 번거로울 수 밖에 없다. 

 

그래서 이것을 중앙에서 관리해주는 도구인 Zanzibar을 만든 것이다!
앞선 예시처럼 구글 메일에서 드라이브에 있는 파일에 접근하거나 구글 스프레드시트에서 구글 문서에 저장된 파일에 접근하려고 할 때, 메일앱 ↔️ 드라이브 앱, 스프레드시트 앱 ↔️ 문서 앱 사이에 요청을 주고 받는 것이 아니라 메일앱 ↔️ Zanzibar, 스프레드시트 앱 ↔️ Zanzibar 사이에 요청을 주고 받음으로써 권한을 중앙(Zanzibar)에서 관리한다. 

 

 

Zanzibar은 아래처럼 하나의 데이터 object에 대해서 유저들의 접근 권한을 저장해 둔다. 

출처: 코딩애플 유튜브

 

API를 통해 문서에 대한 접근권한 요청이 들어오면 Zanzibar은 아래처럼 해당 소유자가 해당 문서에 대한 접근 권한이 있는지 여부를 반환한다. 

출처: 코딩애플 유튜브

 

유저 그룹에 대해서도 권한 확인이 가능하다. (유저 그룹에 어떤 멤버들이 속해있는지에 대한 데이터도 Zanzibar에서 관리한다.)

출처: 코딩애플 유튜브

 

Zanzibar의 내부 구조는 대략 이렇게 생겼다..

출처: 코딩애플 유튜브

 

Zanzibar API!!

출처: 코딩애플 유튜브

 

 

 


🎥 [코딩애플] 개발자 연봉 높이기 1. 구글이 100억개의 권한 관리 하는 법

📝 Zanzibar: Google's Consistent, Global Authorization System

 

Zanzibar: Google’s Consistent, Global Authorization System

Security, Privacy and Abuse Prevention

research.google