Windows Server로 Active Directory 환경을 구성하면서 OU, 사용자, 그룹, GPO까지 하나씩 잡아가다 보면 언젠가 권한 설계 단계에서 AGDLP 구조를 만나게 된다.
처음 이 개념을 봤을 때는 “아, 권한을 체계적으로 관리하는 방식이구나” 정도는 이해됐다. 그런데 막상 직접 그룹을 만들고 사용자를 넣고, 다시 글로벌 그룹을 도메인 로컬 그룹에 넣는 과정을 해보니 이상하게도 한 번에 직관적으로 와닿지는 않았다.
특히 나는 처음에 이런 생각이 먼저 들었다.
“왜 글로벌 그룹이 도메인 로컬 그룹 안으로 들어가야 하지?” “뭔가 반대여야 할 것 같은데?”
결론부터 말하면 AGDLP는 매우 합리적인 구조다. 다만 처음에는 ‘사람을 묶는 그룹’과 ‘권한을 받는 그룹’의 역할이 머릿속에서 분리되지 않아서 직관적으로 느껴지지 않았던 것 같다.
AGDLP는 무엇인가
AGDLP는 다음 순서를 뜻한다.
- Accounts
- Global Groups
- Domain Local Groups
- Permissions
즉 구조는 이렇게 본다.
사용자 계정 → 글로벌 그룹 → 도메인 로컬 그룹 → 실제 권한
예를 들어 본사 환경에서 BIGHIT 부서 사용자가 BIGHIT 공유폴더에 접근해야 한다고 하면 다음처럼 연결할 수 있다.
bts.jimin→ 사용자 계정BIGHIT_USERS_GRP→ 글로벌 그룹BIGHIT_RW_DLG→ 도메인 로컬 그룹\\서버\BIGHIT수정 권한 → 실제 권한
문장으로 풀면 이런 뜻이다.
빅히트 소속 사용자들을
BIGHIT_USERS_GRP에 넣고, 그 그룹을 다시BIGHIT_RW_DLG에 넣은 뒤, 실제 공유폴더 권한은BIGHIT_RW_DLG에 부여한다.
와 닿지 않았던 이유 1: 그룹이 두 번 나와서 역할이 겹쳐 보였다
처음 봤을 때 가장 헷갈렸던 부분은 “왜 그룹이 두 개나 필요한가”였다.
이미 BIGHIT_USERS_GRP라는 그룹이 있는데,
왜 또 BIGHIT_RW_DLG 같은 그룹을 하나 더 만들어야 하는지 바로 납득이 되지 않았다.
처음엔 그냥 이렇게 생각하기 쉽다.
“사용자를
BIGHIT_USERS_GRP에 넣었으면, 그 그룹에 바로 폴더 권한을 주면 되는 것 아닌가?”
기술적으로 단순한 환경에서는 그렇게 해도 당장 큰 문제는 없을 수 있다. 하지만 AGDLP는 단순히 “되게 하는 방식”이 아니라, 권한 변경과 조직 변경에 강한 구조를 만들기 위한 방식이다.
즉 여기서 핵심은 그룹이 두 개라는 사실이 아니라, 두 그룹의 역할이 다르다는 점이다.
- 글로벌 그룹: 사람을 묶는 그룹
- 도메인 로컬 그룹: 권한을 받는 그룹
이 역할이 머릿속에서 분리되지 않으면, 두 그룹이 중복처럼 느껴진다.
와 닿지 않았던 이유 2: 사람 기준과 권한 기준이 섞여 있었다
내가 처음 AGDLP를 볼 때 가장 크게 헷갈렸던 지점은 여기였다.
나는 처음에 그룹을 보면 그냥 전부 “사람을 묶는 단위”로만 봤다.
그래서 BIGHIT_USERS_GRP도 그룹이고, BIGHIT_RW_DLG도 그룹이니까 둘 다 비슷한 존재처럼 느껴졌다.
그런데 실제로는 기준점이 다르다.
글로벌 그룹은 사람 기준이다
글로벌 그룹은 “누가 어느 조직에 속해 있는가”를 기준으로 만든다.
예를 들면 다음과 같다.
BIGHIT_USERS_GRPBELIFT_USERS_GRPSOURCE_USERS_GRP
이 그룹들은 “소속”을 표현한다. 즉 사람을 묶는 명단에 가깝다.
도메인 로컬 그룹은 권한 기준이다
도메인 로컬 그룹은 “어떤 리소스에 어떤 권한을 줄 것인가”를 기준으로 만든다.
예를 들면 다음과 같다.
BIGHIT_RW_DLGBIGHIT_RO_DLGWEVERSE_RW_DLG
이 그룹들은 “권한”을 표현한다. 즉 리소스 접근 권한의 창구에 가깝다.
이 차이를 이해하고 나니, 글로벌 그룹을 도메인 로컬 그룹 안에 넣는 방향이 오히려 자연스럽게 느껴지기 시작했다.
처음에 직관적으로 와 닿지 않았던 이유 3: 권한을 사용자에게 직접 준다는 사고방식에 익숙했기 때문이다
처음 Windows Server를 배우기 전에는 파일 권한이나 접근 권한을 생각할 때, 자연스럽게 “누구에게 권한을 줄지”부터 먼저 떠올랐다.
예를 들어 이런 식이다.
bts.jimin에게 권한 부여lsf.sakura에게 권한 부여it.admin에게 권한 부여
이 방식은 소규모 테스트에서는 바로 이해되지만, 사용자가 늘어나면 관리가 급격히 복잡해진다.
AGDLP는 반대로 생각한다.
사용자에게 직접 권한을 주지 말고, 사람은 사람 그룹에 넣고, 권한은 권한 그룹에 부여하자.
즉 사람과 권한을 분리해서 관리하는 구조다.
처음에는 이게 한 단계 더 돌아가는 것처럼 보였지만, 실제로 사용자를 추가하거나 부서를 이동시키는 상황을 떠올려보면 왜 이렇게 설계하는지 금방 이해가 된다.
예시로 보니 왜 필요한지 더 잘 보였다
예를 들어 BIGHIT 부서 공유폴더에 접근 권한을 줘야 한다고 해보자.
단순한 방식
bts.jiminbts.vbts.rm
이런 계정들에게 직접 폴더 권한을 준다.
이 방식은 지금은 단순해 보인다. 하지만 사람이 늘어나거나 조직 개편이 생기면, 폴더마다 권한을 다시 수정해야 한다.
AGDLP 방식
- 사용자들을
BIGHIT_USERS_GRP에 넣는다. BIGHIT_USERS_GRP를BIGHIT_RW_DLG에 넣는다.- 실제 폴더 권한은
BIGHIT_RW_DLG에만 준다.
이렇게 하면 사용자가 바뀌어도 폴더 권한은 건드릴 필요가 없다. 사람 명단만 바꾸면 된다.
즉 권한은 리소스 쪽에서 안정적으로 유지하고, 사용자 변화는 그룹 멤버십에서만 처리할 수 있게 된다.
결국 AGDLP가 직관적으로 안 와닿았던 핵심 이유
정리하면 내가 처음 AGDLP를 직관적으로 이해하지 못했던 이유는 다음 세 가지였다.
1. 그룹이 두 개 등장해서 역할이 겹쳐 보였다
둘 다 그룹이니까 같은 역할처럼 느껴졌지만, 실제로는 전혀 다르다.
2. 사람을 묶는 그룹과 권한을 받는 그룹을 구분해서 생각하지 못했다
소속 기준과 권한 기준이 머릿속에서 섞여 있었다.
3. 권한을 사용자에게 직접 준다는 방식에 더 익숙했다
그래서 중간에 그룹을 한 단계 더 두는 구조가 처음엔 우회처럼 느껴졌다.
지금은 어떻게 이해하게 됐는가
지금은 AGDLP를 이렇게 이해하고 있다.
- 글로벌 그룹은 사람 명단
- 도메인 로컬 그룹은 권한 창구
- 실제 리소스 권한은 도메인 로컬 그룹에만 부여
즉 구조를 말로 바꾸면 이렇다.
사람은 글로벌 그룹에 넣고, 그 사람 그룹을 권한 그룹에 연결하고, 실제 리소스는 권한 그룹만 보게 만든다.
이렇게 이해하고 나니 “왜 글로벌 그룹이 도메인 로컬 그룹 안에 들어가는가”도 더 이상 이상하지 않았다.
오히려 이 방향이어야만 사람 변경과 권한 관리를 분리할 수 있다는 점이 보였다.
마무리
AGDLP는 처음 보면 문법처럼 느껴진다. 약어도 낯설고, 그룹이 두 단계로 나뉘는 것도 한 번에 와 닿지 않는다.
그런데 직접 사용자 계정을 만들고, 글로벌 그룹을 만들고, 도메인 로컬 그룹을 만들고, 실제 권한 구조에 연결해보면 왜 이런 설계가 필요한지 점점 보이기 시작한다.
나도 처음엔 “이게 왜 이렇게 연결되지?”라는 느낌이 강했지만, 지금은 오히려 이 구조 덕분에 사용자 관리와 권한 관리가 분리된다는 점이 가장 큰 장점으로 느껴진다.
결국 AGDLP는 복잡하게 보이지만, 실제로는 복잡해질 환경을 버티기 위해 미리 정리된 구조에 가깝다.