접근 제어이란 무엇인가요?
접근 제어는 어떤 사용자, 시스템, 프로세스가 특정 리소스에 접근하고 그 리소스에 어떤 작업을 수행할 수 있는지를 규율하는 보안 메커니즘과 정책의 집합이다.
다른 이름: authorization, access management
접근 제어는 두 수준에서 작동한다. 인증(신원 검증: "당신은 누구인가?")과 권한 부여(권한 검증: "무엇을 할 수 있는가?")다. 인증은 비밀번호, 토큰, 인증서 같은 자격 증명으로 신원을 확립한다. 권한 부여는 정책, 역할, 속성에 기반해 그 신원이 무엇에 접근할 수 있는지 결정한다.
접근 제어 모델은 복잡성과 유연성에서 차이가 있다. 임의 접근 제어(DAC)는 리소스 소유자가 권한을 설정하도록 허용한다. Unix 파일 권한이 그 예다. 강제 접근 제어(MAC)는 소유자의 선호를 무시하는 시스템 전역 정책을 시행하며 군사 및 고보안 환경에서 쓰인다. 역할 기반 접근 제어(RBAC)는 권한을 역할에 부여하고, 사용자는 역할 소속을 통해 권한을 상속한다. 속성 기반 접근 제어(ABAC)는 여러 속성(사용자 부서, 시간대, 리소스 민감도)을 평가해 동적 권한 부여 결정을 내린다.
효과적인 접근 제어는 최소 권한 원칙을 따른다. 최소한으로 필요한 접근을, 최소한으로 필요한 시간 동안 부여하는 것이다. 이는 인간 사용자뿐 아니라 서비스 계정, API 키, 머신 대 머신 통신에도 적용된다. 과도하게 허용적인 접근 제어는 데이터 유출의 주요 원인 중 하나인데, 공격자가 초기 침해 이후 시스템을 측면으로 이동하는 데 잉여 권한을 이용하기 때문이다.
Vaulted가 접근 제어을 사용하는 방법
Vaulted는 신원 기반 인증이 아니라 암호학적·기계적 수단으로 접근 제어를 구현한다. 비밀에 접근하려면 URL 프래그먼트에 암호화 키를 담은 고유한 링크의 소유가 필요하다. 추가 접근 제어는 조회 제한(특정 횟수의 접근 후 비밀 삭제), 시간 기반 만료(Redis의 자동 TTL 삭제), 그리고 지식 요소를 더하는 선택적 패스프레이즈 보호로 시행된다. 이 모델은 사용자 계정이나 신원 시스템 없이도 견고한 접근 제어를 제공한다.