소규모 조직에서 IAM 권한은 어떻게 관리되어야 할까

· Infra, AWS, IAM

문제 정의 (As-Is)

스타트업이나 소규모 개발 조직에서는 운영 환경 접근 권한 관리가 표준화되어 있지 않거나, 수동 작업에 의존하는 경우가 많습니다. 하지만 팀 규모가 10명에서 20명, 50명으로 커질수록 이 방식은 점점 운영 병목이 됩니다.

예를 들어 개발자가 운영 환경에 접근하려면, 데브옵스 조직을 통해 별도의 운영용 IAM Role을 발급받고 AssumeRole 방식으로 접근한다고 가정해보겠습니다. 이때 권한 부여와 회수는 Jira나 Github Issue 같은 티켓 발급 절차를 통해 처리하고 있습니다.

현재 방식

문제점

이 방식은 적은 인원의 조직에서는 큰 문제 없이 운영될 수 있습니다. 권한 요청 건수 자체가 많지 않고 누가 언제 왜 요청했는지 맥락도 비교적 쉽게 파악할 수 있기 때문입니다. 하지만 조직이 커질수록 문제가 생기기 시작합니다.

해결 정의 (To-Be)

운영 환경 접근 제어는 다음을 만족시키는 형태로 개선되어야 합니다.

해결 방안 후보들

1. 사전 정의된 IAM Role을 수동 할당하는 방법

운영 환경 접근 권한을 표준 Role로 미리 정의하고, 필요할 때마다 수동으로 부여하는 방식입니다.

Pros

Cons

2. AWS IAM Identity Center 기반 권한 관리

AWS에서 제공하는 IAM Identity Center를 사용해 사용자와 권한을 중앙에서 관리하는 방식입니다. Permission Set을 사용해 권한을 표준화할 수 있습니다. Temporary Elevated Access 방식을 통해 일시적 권한 요청도 가능합니다.

Pros

Cons

3. Google Workspace + SSO + AWS Role 매핑

사용자 관리는 외부 IdP에서 처리합니다. AWS 접근은 SSO를 통해 필요한 Role만 매핑해 부여합니다.

Pros

Cons

선택한 해결 방안

저는 1번 방안을 기반으로 자동화 시스템을 덧붙이는 방법을 택했습니다.

3번은 사용자 관리는 편리해지겠지만, 본질적인 해결책은 아니었으며 대규모 조직에 적합한 방식입니다. 2번 방안인 IAM Identity Center도 충분히 좋은 선택지긴 하였으나, 기존 AWS 계정 관리가 IAM Identity Center 기반으로 이루어지지 않고 있었기 때문에 이를 사용하기 위해서는 계정 관리부터 정비해야 하는 단점이 있었습니다.

반면 1번 방안은 당장 적용 가능한 현실적인 선택지였습니다. 표준 Policy/Role을 미리 정의하여 권한 모델을 단순화할 수 있고, 여기에 자동화만 얹으면 현재 조직 규모에서 필요한 문제를 해결할 수 있다고 판단했습니다.

실제 구현 방식

실제 구현은 비교적 단순합니다. 권한 모델은 표준화하고, 운영 절차는 자동화하는 방향으로 접근하였습니다.

한계점 및 보완점

소규모 조직이 커지는 과정에서는 완벽한 체계를 갖추기보다는 Toil을 줄이면서도 실제로 잘 동작할 수 있는 구조를 갖추는 것이 중요하다고 보았습니다.