회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
*KubeCon + Cloud Native North America 2023에서 발표한 <Beyond Passwords: Keycloak's Contributions to IAM(Identity and Access Management) + Security>를 정리한 글입니다. 발표 내용을 3회로 나누어 발행합니다. 이번 1부에서는 키클락의 기능과 이점에 대해 살펴봅니다. 2부에서는 키클락을 구성하기 위해 실행해야 할 사전 작업을 알아보고, 3부에서는 키클락을 사용하여 EKS, GKE와 같은 관리형 쿠버네티스 클러스터를 통합인증 하여 관리하는 방법에 대해 살펴봅니다. 발표 자료는 KubeCon NA 2023 홈페이지에서 다운받으실 수 있습니다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
*KubeCon + Cloud Native North America 2023에서 발표한 <Beyond Passwords: Keycloak's Contributions to IAM(Identity and Access Management) + Security>를 정리한 글입니다. 발표 내용을 3회로 나누어 발행합니다. 이번 1부에서는 키클락의 기능과 이점에 대해 살펴봅니다. 2부에서는 키클락을 구성하기 위해 실행해야 할 사전 작업을 알아보고, 3부에서는 키클락을 사용하여 EKS, GKE와 같은 관리형 쿠버네티스 클러스터를 통합인증 하여 관리하는 방법에 대해 살펴봅니다. 발표 자료는 KubeCon NA 2023 홈페이지에서 다운받으실 수 있습니다.
1부: 신원확인, 통합인증관리 오픈소스 ‘키클락’을 알아보자
2부: 키클락 구성을 위한 기나긴 사전 작업 한번에 보기
3부: 키클락을 활용한 통합 인증 실습하기
이번 1부에서 살펴볼 내용은 다음과 같습니다.
키클락은 신원(Identity)을 확인하고 통합 인증 관리(Access Management)를 해 줄 수 있는 오픈소스입니다. 키클락은 2023년 4월에 CNCF(Cloud Native Computing Foundation)에 인큐베이팅(incubating) 레벨로 합류하였습니다. 주요 관리 주체는 레드햇입니다.
키클락이 쿠버네티스와 같은 컨테이너 오케스트레이션에서 차지하는 위상을 알고자 하신다면 다음의 링크를 통해서 왼쪽 상단에 있는 키클락을 확인해 보시는 것도 좋습니다.
키클락에서 언급하는 신원 확인 및 통합 인증 관리라는 의미로 쓰이는 IAM에 대해서 이미 클라우드 서비스를 사용하시는 분들이라면 한 번쯤은 들어보셨을 것입니다. 하지만 IAM은 클라우드 서비스에 국한 되어 사용되는 것은 아닙니다. IAM에 대해서 익숙하지 않은 분들을 위해서 이를 우선 설명하도록 하겠습니다.
IAM(Identity and Access Management)은 한마디로, 식별할 수 있는 '특정 대상'에게 리소스에 대해 적합한 접근 '권한'을 부여하는 관리 시스템입니다. 여기서 '특정 대상'은 Email 같은 사용자 계정이나, 특정 서버가 될 수 있고 '권한'은 CRUD(create, read, update, delete) 같은 권한(Permission)이나, 다수의 권한이 하나로 묶인 역할(Role)이 될 수 있습니다.
따라서 IAM은 특정 대상을 확인하는 인증(Authentication, Authn)과 인증 이후 리소스에 접근할 수 있는 권한을 부여하는 인가(Authorization, Authz)로 이루어져 있습니다. 그러므로 IAM을 이해하기 위해서는 인증과 인가를 이해할 필요가 있습니다. 다음 그림과 함께 인증과 인가에 대해서 정리해 보겠습니다.
인증은 IT를 제외하고도 우리 일상에서 굉장히 많이 사용되는 개념입니다. 대표적인 예시로는 인터넷뱅킹을 사용하기 위해서 뱅킹 애플리케이션 상에서 우리가 공동인증서(공인인증서)를 통해서 송금자가 본인임을 확인하는 것도 인증으로 볼 수 있습니다.
여기서 또 다른 예시를 들자면, KubeCon과 같은 행사에서는 입장하는 사람들의 신원을 확인하기 위해서 신분증 및 여권과 KubeCon 행사 입장권을 구매 내역으로 본인임을 증빙하여 아래와 같은 KubeCon 입장을 위한 티켓을 받을 수 있습니다.
이 티켓에는 이름, 소속, 그리고 행사장에서의 역할이 쓰여있습니다. 그래서 KubeCon 행사장에서 이 티켓을 패용하고 있다면 행사장 입구를 지키는 사람이 티켓을 보고, 이 사람이 KubeCon 행사장에 입장이 가능한지 판별합니다. 이 절차를 인증이라고 합니다. (사실 QR을 찍어서 정확하게 확인합니다.)
인가는 인증을 통해서 대상이 허용되는 사람이라는 것을 안 이후에 일어나게 됩니다. 예를 들면 IT 컨퍼런스라면 행사 참여자는 크게 발표자와 청중으로 나누어질 것입니다. 이때 모든 행사 참석자가 발표자로 인가되지 않기 때문에 발표자 단상에 올라서 발표할 수는 없을 것입니다. 하지만 발표자라고 인가가 된 사람이라면 아래의 그림과 같이 발표자로서 무대에 올라가서 발표를 할 수 있습니다! 이와 같은 것을 ‘특정 권한을 인가 받았다’고 말할 수 있습니다.
그런데 인증/인가라는 개념이 키클락을 통해서만 이루어질까요?
우리가 이미 즐겨 사용하고 있는 아이디와 비밀번호에는 인증/인가가 이미 포함되어 있습니다. 하지만 아이디와 비밀번호에는 치명적인 단점이 존재하는데, 모두 다 기억하고 있어야 한다는 것입니다. 그리고 보안적인 관점에서 모든 아이디와 비밀번호를 쉽게 작성하는 것은 매우 안 좋습니다.
위의 그림은 웃자고 만든 것이기는 하지만, 실제로 근거가 있는 게, 비밀번호가 쉬워서 탈취되는 경우가 꽤 많이 있습니다. 아래 통계는 2023년 기준으로 가장 많이 사용된 비밀번호 입니다.
'Top 20 most common passwords of 2023'
RANK | PASSWORD | TIME TAKEN TO CRACK | NUMBER OF TIMES USED |
1 | 123456 | < 1 Second | 4,524,867 |
2 | admin | < 1 Second | 4,008,850 |
3 | 12345678 | < 1 Second | 1,371,152 |
4 | 123456789 | < 1 Second | 1,213,047 |
5 | 1234 | < 1 Second | 969,811 |
6 | 12345 | < 1 Second | 728,414 |
7 | password | < 1 Second | 710,321 |
8 | 123 | < 1 Second | 528,086 |
9 | Aa123456 | < 1 Second | 319,725 |
10 | 1234567890 | < 1 Second | 302,709 |
[그림 7] 2023년에 가장 많이 사용된 비밀번호 순위 20 (출처: [CNBC] Most overused passwords in the world — make sure yours isn’t on the list)
보안 안정성 측면에서 안전한 비밀번호를 만들기 위해서는 다음과 같은 방법을 권고하고 있습니다.
|
[그림 8] 비밀번호 베스트 프랙티스 2023 (출처: World Password Day 2023 – Password Tips and Best Practices)
위 권고대로 비밀번호를 생성할 때 ‘계정마다 고유한 비밀번호를 만들기'는 어려울 뿐만 아니라 관리하기도 어렵습니다. 이런 문제가 개인으로서는 각자의 방법으로 진행하면 되지만, 조직에서는 정책적으로 시스템적으로 해결해야 합니다.
이런 경우에 보통 일반적인 기업에서는 중앙 집중 시스템에서 계정을 인증하고 각 서비스에 인증된 사용자임을 알려주는 방법을 사용하고 있습니다. 이러한 기능을 구현하는 대표적인 서비스가 윈도의 AD(Active Directory)를 이용한 LDAP 인증입니다. 그리고 이와 같은 형태를 바로 SSO(Single-Sign On)라고 부릅니다.
SSO는 사용자가 한 가지 로그인 정보로 여러 애플리케이션과 서비스에 대해 동시에 인증을 받는 방법입니다. 위에서 예시로 설명한 회사 내부의 AD를 이용한 통합 인증 외에도 각 서비스에서 소셜 로그인을 통해서 로그인을 진행하는 것도 SSO를 통한 기능입니다.
사실 SSO 기능은 Okta나 OneLogin 처럼 유명한 Identity 관리 솔루션이 유료로 제공하는 기능이지만 키클락은 오픈소스이기에 우리는 이 기능을 무료로 구현할 수 있습니다.
키클락은 위와 같은 통합 인증을 위해서 인증 표준인 'OIDC(OpenId Connect / OAuth 2.0(Open Authorization 2.0)'를 사용할 수 있습니다. 물론 OIDC 외에도 'SAML 2.0(Security Assertion Markup Language)'을 사용할 수 있습니다.
이와 같은 표준 프로토콜은 다양한 인증 사업자(IDP, Identity Provider, 쉽게 말하면 구글 깃허브 카카오등 에서 서비스 형태로 제공합니다. 따라서 손쉽게 통합 인증을 구현할 수 있습니다.
위에서 키클락의 여러 기능들에 인증과 인가가 들어있다고 말씀드렸던 이유가 바로 여기 있습니다. 키클락이 준수하는 'OIDC'와 'SAML 2.0'가 바로 인증과 인가를 위한 표준 프로토콜이기 때문입니다.
여기까지 키클락의 개념, IAM, 인증/인가 그리고 키클락의 이점과 통합 인증을 위한 기법에 대해서 대해 알아보았습니다.
다음 2부에서 키클락으로 멀티 쿠버네티스를 통합 인증하는 방법에 대해 알아보겠습니다.
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.