인포레터에서 최신 DevOps 트렌드를 격주로 만나보세요!
클라이언트 타임아웃 강제를 통한 세션 보안
Teleport의 client_idle_timeout
은 비활성 세션을 지정된 기간 후에 종료시켜 보안을 향상하는 구성 가능한 설정입니다. 이는 전역적으로 또는 역할별로 적용할 수 있으며, 조직의 보안 정책에 따라 유연성을 제공합니다. client_idle_timeout
구성은 특정 기간 동안 비활성 상태로 남아 있는 SSH 세션, 데스크톱 세션, kubectl exec 또는 데이터베이스 연결이 자동으로 종료되도록 보장합니다. 이는 귀중한 세션이 방치되어 발생할 수 있는 무단 접근과 같은 위험을 완화하는 데 도움이 됩니다.
사용 사례
- 보안 준수: 많은 조직들은 보안 정책의 일환으로 유휴 타임아웃 강제를 요구하여 비활성 세션이 열린 상태로 남지 않도록 합니다.
- 위험 완화: 사용자가 세션에서 연결을 끊는 것을 잊어버릴 경우, 유휴 타임아웃은 설정된 비활성 기간 후에 자동으로 로그아웃되도록 보장하여 무단 접근 위험을 줄입니다.
작동 방식
Teleport는 데스크톱 세션에서의 키 입력이나 마우스 이동, SSH 또는 데이터베이스 연결의 네트워크 트래픽과 같은 사용자 활동을 모니터링합니다.
client_idle_timeout
에 의해 정의된 기간 동안 활동이 감지되지 않으면 세션이 종료되어 사용자가 다시 연결해야 합니다.
구성
client_idle_timeout
은 전역적으로 또는 역할별로 구성할 수 있으며, 관리자가 클라이언트 유휴 타임아웃 규칙을 적용하는 방법에 유연성을 제공합니다.
전역 구성 (모든 사용자에게 적용)
텔레포트 클러스터 구성 (teleport.yaml
)의 auth_service
섹션에서 client_idle_timeout
을 전역적으로 설정할 수 있습니다:
auth_service:
client_idle_timeout: 15m
이 예제는 15분의 전역 클라이언트 유휴 타임아웃을 구성합니다. 클라이언트가 15분 동안 비활성 상태이기 때문에 세션이 종료됩니다.
클라우드 고객인 경우, 이러한 설정을 동적 구성으로 수정해야 합니다.
로그인하고 tctl
관리자 도구를 사용하십시오:
tsh login --proxy=myinstance.teleport.shtctl status
기존 cluster_auth_preference
리소스를 가져옵니다:
tctl get cap > cap.yaml
cap.yaml
에서 client_idle_timeout
을 포함합니다:
kind: cluster_auth_preference
metadata:
name: cluster-auth-preference
spec:
options:
client_idle_timeout: 30m # 원하는 타임아웃 값을 설정하십시오
tctl
를 통해 cluster_auth_preference
리소스를 생성합니다:
tctl create -f cap.yaml
그런 다음 다음과 같은 출력을 볼 수 있어야 합니다:
cluster auth preference가 생성되었습니다
역할별 구성 (특정 사용자 또는 그룹에 적용)
타임아웃을 역할별로 지정할 수도 있으며, 이를 통해 서로 다른 사용자나 그룹이 서로 다른 타임아웃 설정을 가질 수 있습니다. 예를 들어, 더 높은 권한의 역할의 경우 짧은 타임아웃을 원할 수 있습니다.
kind: role
version: v3
metadata:
name: admin-role
spec:
options:
client_idle_timeout: 10m
기본 동작
client_idle_timeout
이 설정되지 않은 경우, 다른 타임아웃 정책(disconnect_expired_cert
와 같은)이 적용되지 않는 한 세션은 비활성 상태로 자동 종료되지 않습니다.