Identity and Access Management
오늘의 주제는 IAM이다. 뉴스 기사를 보다가 알게 된 단어인데, 다뤄볼 만한 가치가 있다고 생각되어 정리하게 되었다. 그리고 오늘부터는 주제들을 조금 컴팩트하게 다뤄볼 생각이다. 너무 길어지니까 2~3일은 잡아먹더라...
IAM(Identity and Access Management)이란 정보 시스템에서 사용자의 신원을 관리하고, 적절한 자원에 대한 접근 권한을 통제하는 기술적·관리적 체계를 의미한다.
IAM은 단순히 사용자 계정을 생성하고 삭제하는 것을 넘어, 사용자 인증(Authentication), 인가(Authorization), 권한 할당, 세션 관리, 접근 기록 감사(Audit) 등을 포괄하는 개념이다.
IAM 시스템은 사용자, 그룹, 역할(Role) 등의 엔티티(Entity)를 체계적으로 관리하며, 이들이 애플리케이션, 데이터베이스, 서버, 네트워크 장비 등 다양한 정보 자산에 접근할 때, 정해진 정책(Policy)과 규칙에 따라 접근 여부를 결정한다.
이는 조직의 정보 보안 수준을 유지하고, 법적 규제 준수를 보장하며, 내부자 위협 및 외부 공격으로부터 자산을 보호하기 위한 필수 요소로 간주된다.
IAM은 다음과 같은 세 가지 핵심 기능을 수행한다.
IAM은 단일 시스템이 아닌 다양한 기술과 프로세스를 조합하여 구축되며, 기업 내부 환경뿐만 아니라 클라우드 및 하이브리드 환경에서도 점점 더 중요성이 커지고 있다.
IAM은 정보 자산 보호, 사용자 관리 효율화, 규제 준수 등의 측면에서 필수적인 역할을 수행한다.
그 필요성은 다음과 같은 구체적 이유를 통해 설명할 수 있다.
IAM은 올바른 사용자만 적절한 리소스에 접근할 수 있도록 제한함으로써, 내부자 위협 및 외부 공격을 방지한다. 특히 다단계 인증(MFA)이나 최소 권한 부여(Least Privilege) 같은 전략을 통해 무단 접근을 효과적으로 차단할 수 있다.
ISO/IEC 27001, GDPR, HIPAA, SOX법 등 다양한 국제 규제 및 산업 표준은 사용자 신원 확인과 접근 제어를 필수 요구사항으로 규정하고 있다.
IAM은 이러한 요구사항을 만족시키는 핵심 수단으로 활용되며, 감사(Audit) 기능을 통해 접근 이력을 체계적으로 기록하고 보고할 수 있다.
IAM 솔루션을 도입하면 신규 직원 온보딩(Onboarding), 직무 변경 시 권한 조정, 퇴사자 계정 삭제 등을 자동화할 수 있어 관리자의 수작업 부담을 줄일 수 있다.
또한 SSO(Single Sign-On) 같은 기능을 통해 사용자 경험을 향상시키고, 다수 시스템에 대한 인증 절차를 간소화할 수 있다.
기업이 클라우드 및 하이브리드 인프라를 도입함에 따라, 물리적 경계가 사라지고 있다. 이로 인해 네트워크 기반 보안만으로는 자산을 보호할 수 없게 되었으며, 신원 기반 접근 통제가 필수화되었다.
IAM은 다양한 환경에서도 일관된 보안 정책을 적용할 수 있게 함으로써, 조직 전반의 보안 수준을 균일하게 유지할 수 있도록 지원한다.
인증(Authentication)은 사용자가 주장하는 신원을 검증하는 절차를 의미한다. 시스템은 사용자가 제공하는 정보(예: 비밀번호, 인증서, 생체 정보 등)를 바탕으로 그 사용자가 실제로 누구인지 확인한다.
인증 방식은 다음과 같이 구분된다.
현대의 IAM 시스템은 보안 강화를 위해 다단계 인증(MFA, Multi-Factor Authentication)을 채택하고 있으며, 이는 서로 다른 유형의 인증 수단을 조합하여 신원 검증을 강화하는 방법이다.
인증 방법 | 특징 | 장점 | 단점 |
---|---|---|---|
비밀번호 | 기억하는 정보 | 간편성 | 탈취 위험 |
OTP 토큰 | 소지하는 장치 | 일회성, 높은 보안성 | 장치 분실 가능성 |
지문 인식 | 생체 정보 기반 | 사용자 편의성, 높은 정확도 | 오탐지 가능성, 프라이버시 우려 |
인가(Authorization)는 인증이 완료된 사용자에게 시스템 자원 접근 권한을 부여하거나 제한하는 절차를 의미한다. 사용자가 누구인지 확인된 후, 그 사용자가 수행할 수 있는 작업과 접근할 수 있는 자원의 범위를 결정하는 것이다.
IAM 시스템에서는 일반적으로 역할 기반 접근 제어(RBAC), 속성 기반 접근 제어(ABAC), 정책 기반 접근 제어(PBAC) 등의 모델을 통해 인가를 수행한다.
인가 절차의 목표는 '필요 최소한의 권한'만을 사용자에게 부여하여 보안을 강화하고, 불필요한 권한 남용을 방지하는 것이다.
계정 관리(Account Management)는 사용자 계정의 생성, 변경, 비활성화, 삭제를 체계적으로 관리하는 과정을 의미한다. 이는 IAM 시스템 운영의 기본이자 핵심이다.
계정 관리에는 다음과 같은 주요 활동이 포함된다.
정확하고 신속한 계정 관리는 보안 사고 예방에 핵심적이다. 예를 들어 퇴사자의 계정을 즉시 비활성화하지 않으면, 악의적 활동에 악용될 위험이 존재한다.
또한 계정 관리는 주기적인 권한 재검토(Access Review) 및 인증(Recertification) 절차와 연계되어야 하며, 이를 통해 부적절한 권한의 누적과 권한 부여 오류를 방지할 수 있다.
감사(Audit)는 사용자의 인증 및 인가 활동, 계정 및 권한 변경 이력 등을 기록하고 분석하는 과정을 의미한다. 이는 보안 사고 대응, 규제 준수, 내부 통제 강화에 필수적이다.
감사의 주요 목적은 다음과 같다.
IAM 감사는 단순한 기록 수집에 그치지 않고, 지속적인 모니터링과 자동화된 분석 시스템(SIEM, UEBA 등)과 연계되어야 실질적인 보안 효과를 기대할 수 있다.
SSO(Single Sign-On)는 사용자가 한 번의 인증으로 다수의 시스템이나 애플리케이션에 접근할 수 있도록 하는 기술이다. 사용자는 최초 로그인 시 인증을 완료한 후, 추가적인 로그인 과정 없이 허가된 여러 시스템에 접근할 수 있다.
그러나, SSO가 단일 실패 지점(Single Point of Failure, SPOF)이 될 수 있다는 점은 주의해야 한다. 만약 SSO 시스템이 침해된다면, 연결된 모든 시스템이 위험에 노출될 수 있다. 이를 방지하기 위해 MFA와 함께 SSO를 적용하는 것이 일반적이다.
MFA(Multi-Factor Authentication)는 사용자가 시스템에 접근할 때, 둘 이상의 서로 다른 인증 수단을 요구하는 인증 방법이다. MFA는 인증 요소를 복합적으로 요구함으로써 보안 수준을 대폭 향상시킨다.
MFA는 다음 세 가지 인증 요소 중 둘 이상을 조합하여 사용한다.
MFA의 도입은 특히 계정 탈취(Account Hijacking), 인증 정보 유출 사고를 방지하는 데 효과적이다. 최근에는 푸시 기반 인증(Push Notification)이나 FIDO(Fast IDentity Online) 기반 인증 장치 사용이 늘어나고 있으며, 이를 통해 사용자의 편의성과 보안성을 동시에 높이고 있다.
프로비저닝(Provisioning)은 사용자에게 필요한 시스템 계정, 접근 권한, 리소스 등을 생성하고 할당하는 일련의 과정을 의미한다. 반대로 디프로비저닝(Deprovisioning)은 더 이상 필요하지 않은 계정이나 권한을 제거하는 과정을 말한다.
이 두 과정은 다음과 같은 상황에서 발생한다.
프로비저닝 및 디프로비저닝의 효율적인 수행을 위해:
정확하고 신속한 프로비저닝·디프로비저닝은 보안 사고를 예방하고, 감사(Audit) 및 규제 준수를 위한 필수적인 기반을 제공한다.
RBAC(Role-Based Access Control)은 사용자의 역할(Role)에 따라 시스템 자원 접근 권한을 부여하는 접근 통제 모델이다. 사용자는 개인별로 권한을 부여받는 것이 아니라, 하나 이상의 역할을 할당받으며, 역할에 연결된 권한을 상속받는다.
그러나 RBAC는 역할 수가 과도하게 많아질 경우(Role Explosion), 관리가 복잡해질 수 있다는 단점을 지닌다. 이를 해결하기 위해 최근에는 속성 기반 접근 제어(ABAC)나 정책 기반 접근 제어(PBAC)와 함께 혼합하여 사용하는 사례가 증가하고 있다.
디렉터리 서비스(Directory Service)는 네트워크에서 리소스와 사용자 정보를 관리하고 제공하는 중앙집중식 시스템이다. IAM의 핵심 요소인 사용자 인증과 인가는 대부분 디렉터리 서비스를 통해 관리된다.
대표적인 디렉터리 서비스에는 LDAP(Lightweight Directory Access Protocol)과 Active Directory(AD) 가 있다.
LDAP는 디렉터리 서비스에 접근하기 위한 프로토콜로, 사용자의 정보와 권한 데이터를 포함하는 디렉터리 서비스를 효율적으로 검색하고 관리할 수 있다. LDAP는 중앙 집중식 사용자 관리와 역할 기반 접근 제어를 지원한다.
LDAP는 특히 다양한 시스템 간의 사용자 정보를 통합하고, 네트워크 자원에 대한 접근을 관리하는 데 유용하다.
Active Directory는 마이크로소프트에서 제공하는 디렉터리 서비스로, LDAP를 기반으로 하여 다양한 보안 기능을 제공한다. AD는 조직 내 모든 사용자, 그룹, 컴퓨터 및 기타 리소스에 대한 정보를 관리하며, Windows 환경에서 IAM의 중심 역할을 한다.
AD는 사용자 인증 및 인가뿐만 아니라, 그룹 정책(Group Policy)을 통한 권한 관리, 계정 정책 설정 등 다양한 관리 기능을 제공한다.
디렉터리 서비스는 중앙집중식 관리 기능을 제공함으로써, IAM 시스템이 일관된 방식으로 사용자 계정과 권한을 제어하고, 보안 및 규제 준수를 지원하는 데 중요한 역할을 한다.
연합 인증(Federated Identity)은 서로 다른 도메인이나 시스템 간에 사용자 신원을 안전하게 공유하고 인증을 수행하는 방식이다. 연합 인증을 통해 여러 시스템에서 동일한 사용자 정보를 사용할 수 있으며, 이는 다수의 애플리케이션에 대해 중앙 집중식 인증을 구현할 수 있는 방법이다.
SAML은 XML 기반의 표준 프로토콜로, 사용자 인증 정보를 서로 다른 서비스 제공자(SP)와 인증 제공자(IdP) 간에 교환할 수 있도록 한다. SAML은 주로 기업 환경에서 SSO(Single Sign-On) 기능을 구현하는 데 사용된다.
SAML의 특징은 인증 데이터를 XML 형태로 교환하기 때문에, 보안이 강력하고, 웹 애플리케이션에 적합하다.
OAuth는 제3자 애플리케이션에 사용자의 비밀번호를 입력하지 않고 특정 정보에 대한 접근 권한을 부여할 수 있는 프로토콜이다. 예를 들어, 사용자가 구글 계정을 이용해 다른 웹사이트에 로그인하거나, 제3자 애플리케이션에서 구글 계정의 데이터를 사용할 수 있도록 권한을 부여하는 방식이다.
OAuth는 사용자 비밀번호를 외부 애플리케이션에 노출하지 않으면서도 필요한 권한을 안전하게 부여할 수 있다.
OpenID Connect는 OAuth 2.0 프로토콜 위에 사용자 인증을 추가한 확장 프로토콜이다. OAuth는 권한 부여를 위한 표준이지만, OpenID Connect는 사용자 인증을 위한 표준을 제공한다.
따라서, OpenID Connect는 사용자 인증 정보와 권한을 함께 관리할 수 있어, SSO 및 사용자 정보 공유에 매우 적합하다.
연합 인증과 표준 프로토콜은 기업 간 협력 및 클라우드 환경에서 IAM을 보다 효율적으로 관리하고, 여러 시스템 간의 신뢰 관계를 구축하는 데 필수적인 기술이다.
접근 제어 모델은 사용자와 자원 간의 접근을 어떻게 관리할지에 대한 기본적인 규칙을 정의하는 시스템이다. IAM 시스템에서는 주로 RBAC(Role-Based Access Control), ABAC(Attribute-Based Access Control), PBAC(Policy-Based Access Control) 모델을 사용한다. 각 모델은 특정 상황에 적합한 방식으로 권한을 부여하고, 조직의 보안 정책을 지원한다.
RBAC는 사용자에게 역할(Role)을 부여하고, 역할에 따라 자원에 대한 접근 권한을 할당하는 방식이다. 이는 직무 중심으로 권한을 관리하며, 역할 변경만으로 권한을 쉽게 관리할 수 있다.
RBAC의 장점은 관리가 간편하고, 권한이 표준화되며, 역할 기반의 접근 제어가 가능하다는 것이다. 그러나 역할 수가 많아지면 관리가 복잡해질 수 있다.
ABAC는 사용자, 자원, 환경 등의 속성(Attribute)을 기준으로 접근 제어를 결정하는 방식이다. 예를 들어, 사용자의 부서, 직급, 시간대, 위치 등을 기반으로 권한을 부여하는 방식이다.
ABAC는 매우 세밀한 권한 제어가 가능하지만, 속성의 정의와 관리가 복잡해질 수 있으며, 대규모 환경에서 정책을 관리하는 데 어려움이 있을 수 있다.
PBAC는 사전에 정의된 정책(Policy)에 따라 접근 제어를 수행하는 방식이다. PBAC는 규칙에 따라 시스템이 자동으로 사용자에게 권한을 부여하며, 복잡한 정책을 설정하고 자동화할 수 있는 장점이 있다.
PBAC는 정책 기반으로 유연한 접근 제어가 가능하지만, 정책 설정과 관리가 복잡해질 수 있다.
접근 제어 모델은 조직의 규모, 필요에 따라 선택해야 하며, 다양한 모델을 혼합하여 사용하는 경우도 많다. 보안 요구 사항이 복잡한 경우, ABAC나 PBAC를 RBAC와 결합하여 사용하는 방식이 점차 늘어나고 있다.
계정 및 권한 수명 주기 관리(Lifecycle Management)는 IAM 시스템에서 계정 생성, 권한 할당, 계정 비활성화 및 삭제 등 계정과 권한의 전반적인 관리를 의미한다. 이 과정은 계정과 권한이 올바르게 생성되고, 적절히 변경 및 회수되며, 불필요하거나 위험한 상태가 되지 않도록 관리하는 것을 목표로 한다.
계정 및 권한 수명 주기 관리는 IAM의 핵심 요소로, 시스템에서 불필요한 권한이 남아 있지 않도록 하여 보안을 강화하고, 규정 준수 및 감사의 용이성을 제공한다.
권한 승계(Privilege Escalation)는 사용자가 본래 허용되지 않은 높은 수준의 권한을 갖게 되는 위험을 의미한다. 반면, 최소 권한 원칙(Least Privilege Principle) 은 사용자가 자신의 업무를 수행하는 데 필요한 최소한의 권한만을 부여받도록 하는 보안 원칙이다.
최소 권한 원칙을 준수하면, 시스템에서 발생할 수 있는 보안 사고를 예방할 수 있고, 관리자가 권한을 쉽게 추적하고 제어할 수 있어, 전반적인 보안 관리가 향상된다.
IAM 감사 및 모니터링 전략은 시스템 내에서 발생하는 모든 계정과 권한 관련 활동을 기록하고 분석하여, 보안 위협이나 규정 위반을 식별하고 대응할 수 있도록 하는 과정이다. 이는 보안 사고의 예방 및 사고 발생 시 신속한 대응을 가능하게 한다.
IAM 감사 및 모니터링 전략을 통해 조직은 보안 사고를 사전에 차단하고, 사고 발생 시 빠르게 대응할 수 있는 능력을 갖추게 된다. 또한, 규정 준수와 관련된 리포트 제공이 가능해져, 관리 감독을 강화하고 법적 요구사항을 충족할 수 있다.