authentication

5 개의 포스트

Agents have their own computers with Sandboxes GA (새 탭에서 열림)

Cloudflare는 AI 에이전트가 코드를 안전하게 개발하고 실행할 수 있도록 설계된 '샌드박스(Sandboxes)'와 'Cloudflare Containers'의 정식 출시(GA)를 발표했습니다. 이 서비스는 에이전트에게 격리된 가상 컴퓨터 환경을 제공하여 리포지토리 복제, 코드 빌드, 개발 서버 실행과 같은 복잡한 작업을 안전하게 수행할 수 있게 돕습니다. 이를 통해 개발자는 확장성, 상태 복구, 보안 등 인프라 구축의 난제들을 직접 해결할 필요 없이 고도화된 AI 에이전트 서비스를 배포할 수 있습니다. ### 샌드박스의 핵심 기능 및 업데이트 * **보안 인증 정보 주입(Secure Credential Injection)**: 프로그래밍 가능한 송신(Egress) 프록시를 통해 네트워크 계층에서 인증 정보를 주입합니다. 에이전트가 실제 비밀번호나 API 키에 직접 접근하지 못하게 차단하면서도 필요한 내부 서비스에는 안전하게 접근할 수 있도록 설계되었습니다. * **PTY(의사 터미널) 지원**: 단순한 텍스트 입력-출력 구조를 넘어, WebSocket과 xterm.js를 활용한 실제 터미널 환경을 제공합니다. 이를 통해 인간과 에이전트 모두 스트리밍 출력을 실시간으로 확인하고 상호작용할 수 있습니다. * **지속성 코드 인터프리터**: Python, JavaScript, TypeScript를 위한 상태 유지형 인터프리터를 기본 제공하여, 에이전트가 이전 실행 상태를 기억하며 연속적인 코드를 실행할 수 있습니다. * **스냅샷 및 상태 복구**: 스냅샷 기능을 통해 에이전트의 이전 작업 세션을 신속하게 복구할 수 있으며, 유휴 상태일 때는 자동으로 절전 모드에 진입하여 리소스를 절약합니다. ### 인프라 관리 및 운영 효율성 * **프로그래밍 방식의 제어**: `exec`, `gitClone`, `writeFile` 등의 API 메서드를 제공하여 개발자가 샌드박스의 생명주기와 파일 시스템을 코드만으로 손쉽게 조작할 수 있습니다. * **라이브 프리뷰 및 배경 프로세스**: 백그라운드에서 실행되는 개발 서버와 상호작용할 수 있는 라이브 프리뷰 URL을 지원합니다. 파일 시스템 변경 사항을 감지하는 모니터링 기능과 결합하여 에이전트의 작업 결과를 즉시 검증할 수 있습니다. * **유연한 과금 체계**: 'Active CPU Pricing' 정책을 도입하여 에이전트가 실제로 CPU를 사용하는 시간에 대해서만 비용을 지불합니다. 대규모 에이전트 함대를 운영하더라도 대기 상태의 유휴 리소스에 대한 비용 부담이 적습니다. ### 기술적 특징 및 작동 방식 * **Cloudflare Containers 기반**: 모든 샌드박스는 Cloudflare Containers에 의해 구동되며, 고유한 이름을 통해 요청 시 즉시 생성되거나 기존 환경을 재개합니다. * **전역 접근성**: 동일한 ID를 제공하면 전 세계 어디에서나 이전에 작업하던 동일한 샌드박스 환경에 다시 접속하여 작업을 이어갈 수 있습니다. * **검증된 안정성**: Figma의 'Figma Make'와 같은 실제 서비스에서 이미 활용되고 있으며, 신뢰할 수 없는 사용자 작성 코드나 에이전트 코드를 실행하는 데 최적화된 격리 환경을 보장합니다. AI 에이전트가 단순한 텍스트 응답을 넘어 실제 환경에서 도구를 사용하고 코드를 실행하는 '행동하는 에이전트'로 진화하기 위해서는 안전한 샌드박스가 필수적입니다. Cloudflare의 이번 GA 출시는 복잡한 인프라 설정 없이도 엔터프라이즈급 보안과 확장성을 갖춘 에이전트 실행 환경을 즉시 구축할 수 있는 실질적인 해답을 제공합니다.

동적이며 신원 기반의 안전한 샌드박스 인증 (새 탭에서 열림)

AI 에이전트와 같은 신뢰할 수 없는 워크로드를 안전하게 실행하기 위해서는 샌드박스 환경이 필수적이지만, 외부 서비스와의 통신 시 보안과 편의성을 동시에 확보하는 것은 어려운 과제였습니다. 이를 해결하기 위해 도입된 '아웃바운드 워커(outbound Workers)'는 프로그래밍 가능한 이그레스 프록시를 통해 샌드박스 내부로 비밀 키를 노출하지 않고도 안전하고 유연한 인증을 구현합니다. 이 방식은 제로 트러스트 원칙을 준수하면서도 개발자에게 강력한 통제권과 관찰 가능성을 제공하여 AI 워크로드의 보안 수준을 획기적으로 높여줍니다. ### 샌드박스의 핵심 가치와 아웃바운드 워커의 역할 * 샌드박스는 마이크로VM 기술을 활용해 신뢰할 수 없는 사용자나 LLM이 호스트 시스템이나 다른 워크로드를 침해하지 못하도록 격리하는 보안 기능을 제공합니다. * 단순한 격리를 넘어, 사용자가 이전 상태를 빠르게 복구할 수 있는 속도와 플랫폼이 샌드박스 내부 동작을 제어할 수 있는 통제권이 핵심입니다. * 아웃바운드 워커는 샌드박스에서 나가는 모든 트래픽을 가로채는 프록시 역할을 하며, 이를 통해 외부 서비스 연결, 로깅 추가, 동적 인증 주입 등을 프로그래밍 방식으로 처리합니다. ### 기존 에이전트 인증 방식의 문제점 * **표준 API 토큰:** 환경 변수나 파일로 토큰을 직접 주입하는 방식은 가장 단순하지만, 샌드박스가 탈취되거나 에이전트가 실수로 토큰을 노출할 경우 보안에 치명적입니다. * **워크로드 ID 토큰(OIDC):** 보안성은 높으나 많은 외부 서비스가 이를 직접 지원하지 않아, 토큰 교환을 위한 별도의 서비스를 구축해야 하는 등 통합의 유연성이 떨어집니다. * **커스텀 프록시:** 높은 유연성을 제공하지만 모든 트래픽을 효율적이고 동적으로 가로채는 시스템을 직접 설계하고 운영하는 것은 기술적 난이도가 매우 높습니다. ### 아웃바운드 워커를 통한 지능형 인증 매커니즘 * **제로 트러스트 구현:** 샌드박스 내부의 에이전트에게 토큰을 절대 전달하지 않습니다. 대신 프록시 계층에서 요청을 가로채 인증 헤더(예: `x-auth-token`)를 안전하게 삽입합니다. * **세밀한 통제와 관찰:** 자바스크립트 코드를 통해 특정 호스트(예: `github.com`)에 대해서만 인증을 적용하거나, GET 요청 이외의 동작을 차단하고 로깅하는 정책을 손쉽게 설정할 수 있습니다. * **성능과 투명성:** 프록시가 샌드박스와 동일한 머신에서 실행되므로 지연 시간이 거의 없으며, 샌드박스 내부의 워크로드는 프록시의 존재를 모른 채 평소처럼 통신하면 됩니다. * **동적 정책 변경:** 런타임 중에 인증 규칙이나 접근 권한을 즉시 변경할 수 있어, 에이전트의 작업 단계에 따른 유연한 권한 관리가 가능합니다. AI 에이전트가 외부 도구와 상호작용해야 하는 환경을 구축한다면, 에이전트에게 직접 권한을 부여하기보다 아웃바운드 워커와 같은 투명한 프록시 계층을 활용하는 것이 권장됩니다. 이를 통해 보안 사고의 위험을 원천 차단하면서도 개발 복잡성을 획기적으로 줄일 수 있습니다.

Docker 보안 강화 이미지를 활용한 GitLab 컨테이너 가상 레지스트리 (새 탭에서 열림)

GitLab의 Container Virtual Registry는 분산된 여러 외부 레지스트리를 하나의 엔드포인트로 통합하여 관리 효율성과 보안을 동시에 해결하는 풀스루 캐시(pull-through cache) 솔루션입니다. 개발자는 개별 레지스트리의 인증 정보를 직접 관리할 필요 없이 단일 URL을 통해 이미지를 불러올 수 있으며, 첫 호출 시 캐싱된 이미지를 사용하여 빌드 속도를 획기적으로 개선합니다. 특히 보안이 강화된 Docker Hardened Images(DHI)를 도입할 때 발생하는 운영상의 복잡성을 제거하고 전사적인 보안 표준 준수를 용이하게 합니다. **멀티 레지스트리 환경의 운영 한계** * 플랫폼 팀은 일반적으로 Docker Hub, dhi.io(보안 이미지), MCR(.NET), Quay 등 3~5개의 레지스트리를 동시에 관리하며, 각기 다른 인증 방식과 네트워크 지연 문제를 겪습니다. * CI/CD 설정 내에 레지스트리별 로직이 파편화되어 자격 증명 관리가 복잡해지며, 동일한 이미지를 반복해서 외부망으로부터 다운로드하느라 빌드 시간이 늘어납니다. * 보안 강화를 위해 Docker Hardened Images와 같은 새로운 레지스트리를 도입하려 해도, 모든 팀의 파이프라인 설정을 변경해야 하는 운영적 마찰이 발생합니다. **가상 레지스트리의 작동 메커니즘** * 사용자가 GitLab의 가상 레지스트리 URL로 이미지를 요청하면 시스템은 우선 내부 캐시를 확인하고, 없을 경우 설정된 업스트림 레지스트리들을 순차적으로 검색합니다. * 업스트림에서 찾은 이미지는 자동으로 캐싱되며, 이후의 요청은 외부망을 거치지 않고 GitLab 인프라 내에서 즉시 제공됩니다. * 업스트림 레지스트리별로 우선순위를 지정할 수 있으며, 캐시 유효 기간(기본 24시간)을 설정하여 이미지의 최신성을 유지할 수 있습니다. **보안 이미지(DHI) 도입 가속화** * Docker Hardened Images는 CVE가 거의 없고 SBOM을 제공하는 등 보안상 우수하지만, 별도의 인증이 필요하여 전사 도입이 까다롭습니다. * 가상 레지스트리를 사용하면 관리자가 한 번만 dhi.io 자격 증명을 설정하면 되므로, 개발 팀은 개별 인증 없이 보안 이미지를 손쉽게 사용할 수 있습니다. * 가상 레지스트리의 캐시 기록을 통해 팀들이 실제로 어떤 이미지를 사용하고 있는지 모니터링할 수 있어, 일반 이미지에서 보안 이미지로의 전환 현황을 파악하는 감사 도구로 활용 가능합니다. **시스템 구성 및 설정 프로세스** * **레지스트리 생성**: Python 클라이언트 등을 이용해 특정 그룹 내에 가상 레지스트리를 생성하고 고유 ID를 할당받습니다. * **업스트림 등록**: Docker Hub(`registry-1.docker.io`), Microsoft MCR, Quay.io 등을 업스트림으로 등록하며, 각 업스트림별로 캐시 유지 시간을 개별 설정합니다. * **인증 통합**: dhi.io와 같이 유료나 보안이 필요한 레지스트리는 사용자 이름과 액세스 토큰을 가상 레지스트리 레벨에서 중앙 집중식으로 설정합니다. * **단일 엔드포인트 활용**: 모든 파이프라인에서 각기 다른 도메인 대신 `gitlab.com/virtual_registries/container/<ID>/<image>` 형태의 단일 주소를 사용하도록 통일합니다. 보안과 성능이라는 두 마리 토끼를 잡아야 하는 플랫폼 엔지니어에게 GitLab 가상 레지스트리는 필수적인 도구입니다. Docker Hardened Images를 최상위 업스트림으로 설정하여 가상 레지스트리를 구성하면, 개발자에게 추가적인 학습이나 설정의 부담을 주지 않으면서도 조직 전체의 컨테이너 보안 공급망을 자연스럽게 강화할 수 있습니다.

외국인 유저 리서치: 캐나다인 "B"씨는 왜 토스 인증에 실패했을까 (새 탭에서 열림)

토스는 '모두를 위한 금융'이라는 비전을 실현하기 위해 외국인 사용자가 국내 금융 앱 가입 과정에서 겪는 본인 인증 실패 원인을 심층 분석했습니다. 산업단지와 다문화 센터를 직접 찾아가 진행한 리서치를 통해 이름 입력 포맷의 불일치와 주소 검색의 어려움이 핵심 이탈 요인임을 확인했습니다. 이를 바탕으로 인증 로직과 UI를 개선한 결과, 외국인 사용자의 인증 통과율을 약 15% 끌어올리며 내국인 수준의 서비스 접근성을 확보했습니다. ### 현장 리서치를 통한 사용자 페인 포인트 발굴 * 정보 접근성이 상대적으로 낮은 블루칼라 외국인 노동자들의 금융 생활을 파헤치기 위해 시화공단과 포천 다문화 센터 등에서 현장 인터뷰를 수행했습니다. * 외국인들이 모바일 앱 대신 오프라인 은행 창구를 선호하는 이유가 단순한 선호도가 아닌, 가입 단계부터 발생하는 기술적 허들 때문임을 파악했습니다. * 정형화된 설문조사 대신 친근한 방식의 길거리 인터뷰와 심층 인터뷰를 병행하여, 실제 사용자가 겪는 맥락적인 어려움을 수집했습니다. ### 본인 인증의 최대 걸림돌: 이름 입력 방식 * 외국인 등록증상의 이름과 통신사, 은행 등에 등록된 이름의 포맷(성·이름 순서, 띄어쓰기 등)이 서로 달라 본인 인증에 반복적으로 실패하는 문제가 가장 컸습니다. * 'BRAD PITT'를 'BR AD'로 띄어 써야 인증이 되는 등, 시스템마다 요구하는 형식이 달라 사용자가 스스로 성공 케이스를 학습해야 하는 불합리한 상황이 발생했습니다. * 인증 실패 시 구체적인 원인 안내가 부족하고, 5회 오류 시 시도가 차단되는 정책은 외국인 사용자들을 8년 넘게 온라인 인증에서 소외시키기도 했습니다. ### 한국어 주소 입력 및 검색의 난관 * 한국어 타이핑이 서툰 외국인들에게 주소 입력은 가입을 포기하게 만드는 주요 허들이었습니다. * 영문 주소나 우편번호로 검색하더라도 검색 결과 리스트가 너무 방대하여, 본인의 정확한 거주지를 스크롤 내에서 찾아내기가 매우 어려웠습니다. * 입력 방식의 반복된 시도에도 불구하고 원하는 결과를 얻지 못해 결국 서비스 이용 자체를 중도에 포기하는 이탈 구간이 발생했습니다. ### 리서치 기반의 개선 성과 * 유저리서치 결과를 바탕으로 담당 팀에서 이름 입력 구조를 유연하게 변경하고 인증 절차 전반을 고도화했습니다. * 개선 이후 외국인 사용자의 인증 퍼널 통과율이 15% 상승하는 가시적인 성과를 거두었습니다. * 현재는 외국인과 내국인 간의 인증 통과율 격차가 거의 해소되었으며, 디지털 금융 소외 계층을 위한 장벽을 낮추는 기술적 기틀을 마련했습니다. 디지털 금융 서비스에서 외국인 사용자의 접근성을 높이려면 단순한 번역을 넘어, 국내 인증 체계(통신사, 실명확인 기관)와 사용자 입력 데이터 간의 '포맷 불일치' 문제를 기술적으로 해결하는 것이 필수적입니다. 사용자가 직접 시스템에 맞추게 하는 것이 아니라, 시스템이 다양한 케이스를 수용할 수 있도록 설계를 개선하는 것이 진정한 금융 포용의 시작입니다.

Google Workspace로 GitLab SAML (새 탭에서 열림)

Google Workspace와 GitLab.com(SaaS)을 SAML SSO로 연동하면 중앙 집중식 사용자 인증과 자동 계정 생성이 가능해져 보안성과 관리 효율성을 크게 높일 수 있습니다. 특히 구글 워크스페이스의 그룹 정보를 GitLab 역할과 동기화함으로써, 복잡한 권한 관리를 자동화하고 구성원의 변경 사항을 실시간으로 접근 제어에 반영할 수 있는 보안 환경을 구축하게 됩니다. ### SSO 연동의 아키텍처와 기대 효과 * **인증 흐름:** 사용자가 GitLab SSO URL로 접속하면 구글 워크스페이스로 리다이렉트되어 인증을 거치며, 성공 시 SAML 응답을 통해 GitLab에 최종 로그인됩니다. * **자동 프로비저닝:** 구글에 계정이 있는 사용자가 처음 로그인할 때 GitLab 계정이 자동으로 생성되어 수동 관리의 번거로움이 사라집니다. * **동적 권한 관리:** 로그인할 때마다 구글 그룹 멤버십 정보를 확인하여 GitLab 내 그룹 권한을 최신 상태로 업데이트합니다. * **중앙 집중식 보안:** 구글 워크스페이스의 보안 정책(2단계 인증 등)을 GitLab 접근에도 동일하게 적용하여 보안 수준을 강화할 수 있습니다. ### GitLab 설정 정보 수집 및 준비 사항 * **설정 위치:** SAML SSO 설정은 반드시 GitLab의 최상위 그룹(Top-level group)에서 수행해야 하며, Premium 또는 Ultimate 티어 구독이 필요합니다. * **필수 URL 정보:** GitLab 설정 페이지(Settings > SAML SSO)에서 ACS URL(Assertion Consumer Service), Identifier(Entity ID), GitLab SSO URL을 미리 복사하여 보관합니다. * **권한 요구사항:** 구글 워크스페이스의 슈퍼 관리자 권한과 GitLab 그룹의 Owner 권한이 필요합니다. ### Google Workspace 커스텀 SAML 앱 구성 * **앱 생성:** 구글 관리 콘솔의 '웹 및 모바일 앱' 메뉴에서 커스텀 SAML 앱을 추가하고 GitLab 로고와 이름을 설정합니다. * **IDP 정보 확보:** 구글 측의 SSO URL을 복사하고 IDP 인증서(.pem)를 다운로드합니다. GitLab 등록을 위해 이 인증서는 향후 SHA-1 지문(Fingerprint) 형식으로 변환해야 합니다. * **서비스 제공업체(SP) 세부 정보:** 앞서 GitLab에서 복사한 ACS URL과 Entity ID를 구글 설정 화면에 정확히 입력합니다. * **앱 활성화:** 설정을 마친 후 '사용자 액세스' 설정에서 전체 조직 또는 특정 조직 단위(OU)에 대해 앱 사용을 활성화해야 합니다. ### 속성 매핑 및 그룹 동기화 핵심 설정 * **사용자 속성 연결:** 사용자의 이메일, 성, 이름을 GitLab 속성(email, first_name, last_name)에 각각 매핑하여 정보가 정확히 전달되도록 합니다. * **그룹 동기화 설정:** 구글 그룹 정보를 GitLab으로 전달하기 위해 앱 속성 이름을 반드시 소문자 `groups`로 지정해야 합니다. 이는 GitLab이 권한 동기화를 위해 인식하는 예약어입니다. * **그룹 선택:** 동기화할 구글 워크스페이스 그룹을 최대 75개까지 선택할 수 있으며, 이를 통해 엔지니어링, 보안팀 등 조직 구조에 맞는 권한 할당이 가능해집니다. 효율적인 사용자 관리를 위해 SSO 연동 후에는 반드시 그룹 동기화 기능을 활성화하여 관리 부하를 줄이는 것을 권장합니다. 특히 퇴사자 발생 시 구글 워크스페이스 계정만 정지하면 GitLab 접근 권한도 즉시 차단되므로, 보안 사고 방지를 위한 강력한 오프보딩 프로세스를 구축할 수 있습니다.