반응형
Bastion Host란?
Bastion Host(배스천 호스트)는 외부에서 AWS 내부 네트워크(VPC)에 접근할 수 있도록 중간에서 보안 게이트웨이 역할을 하는 서버입니다. 보통 AWS 환경에서 프라이빗 서브넷(Private Subnet)에 위치한 서버에 접근해야 할 때 사용됩니다.
Bastion Host의 주요 역할
보안 강화
- 직접 프라이빗 서브넷의 인스턴스에 접근하는 것이 아니라, Bastion Host를 통해서만 접속할 수 있도록 하여 보안을 강화합니다.
- SSH 또는 RDP 접근을 중앙 집중화하고, 접근 제어 및 로깅을 쉽게 관리할 수 있습니다.
퍼블릭 서브넷에 위치
- Bastion Host는 퍼블릭 서브넷에 위치하며, 외부에서 SSH(22번 포트) 또는 RDP(3389번 포트)로 접속할 수 있습니다.
- 내부에 있는 프라이빗 서브넷의 서버와만 연결됩니다.
IAM 및 보안 그룹을 활용한 접근 제어
- 보안 그룹(SG)을 활용하여 특정 IP 주소에서만 SSH/RDP 접속을 허용할 수 있습니다.
- AWS Systems Manager (SSM) Session Manager와 함께 사용하면 SSH 키 없이도 Bastion Host에 접속할 수 있습니다.
Bastion Host 아키텍처 예시
VPC 구성
- 퍼블릭 서브넷: Bastion Host가 위치 (인터넷 게이트웨이 연결됨)
- 프라이빗 서브넷: 중요한 애플리케이션 서버, 데이터베이스 서버 위치
Bastion Host를 이용한 접근 흐름
- 개발자가 퍼블릭 서브넷의 Bastion Host에 SSH 접속
- Bastion Host에서 프라이빗 서브넷 내부 서버로 SSH 또는 RDP 접속
- 최종적으로 내부 서버에 안전하게 접근
Bastion Host 운영 방식
전통적인 SSH 방식
- SSH 키를 사용하여 Bastion Host에 접속한 후, 내부 서버로 다시 SSH 접속하는 방식입니다.
- 보안 그룹에서 SSH 접속을 특정 IP (예: 사내망)로 제한해야 합니다.
AWS Systems Manager (SSM) Session Manager 활용
- SSH 포트를 열지 않고, AWS SSM을 이용해 터미널을 통해 내부 서버에 접속하는 방법입니다.
- IAM 역할 기반 접근 제어가 가능하며, 보안성이 뛰어납니다.
- Bastion Host 없이도 가능하지만, 기존 SSH 방식을 함께 운영할 때 활용됩니다.
Bastion Host 보안 모범 사례
✅ 보안 그룹 설정
- SSH 접속을 특정 신뢰된 IP (예: 회사 VPN, 관리용 네트워크)에서만 허용
- 내부 서버 보안 그룹은 Bastion Host에서만 접속 허용
✅ IAM 역할 및 정책 활용
- Bastion Host에는 필요한 최소 권한만 부여
- AWS SSM을 사용하여 Bastion Host의 SSH Key 관리 부담 줄이기
✅ 로그 및 모니터링 활성화
- AWS CloudTrail, AWS Config, VPC Flow Logs를 이용해 접속 로그 감시
- AWS Systems Manager Session Manager 사용 시 접속 기록 자동 저장
✅ Auto Scaling 및 비용 절감 고려
- 필요할 때만 Bastion Host를 실행하고, 평소에는 꺼두는 방식 고려
- Lambda + Auto Scaling을 활용하여 사용 시점에만 Bastion Host 생성
Bastion Host를 대체할 수 있는 AWS 서비스
🔹 AWS Systems Manager (SSM) Session Manager
- SSH 포트(22번)를 열지 않고 내부 서버에 안전하게 접속 가능
- 별도의 Bastion Host 필요 없이 IAM 역할을 통해 접근 제어 가능
- CloudWatch Logs와 연동하여 접속 내역 자동 저장
🔹 AWS Client VPN
- 사용자가 AWS VPC 내부 네트워크에 VPN으로 직접 연결 가능
- SSH 없이도 내부 네트워크 리소스에 안전하게 접근 가능
🔹 AWS EC2 Instance Connect
- AWS 콘솔에서 바로 EC2 인스턴스에 접속 가능
- Amazon Linux 및 Ubuntu에서만 지원
결론
- Bastion Host는 퍼블릭 서브넷에 위치하여 프라이빗 서브넷의 서버로 접속할 수 있도록 중계하는 서버입니다.
- SSH/RDP 접속을 Bastion Host에서만 가능하도록 설정하여 보안을 강화할 수 있습니다.
- 최근에는 AWS Systems Manager (SSM) Session Manager를 활용하여 Bastion Host 없이도 안전하게 내부 서버에 접속하는 방식이 많이 사용됩니다.
Bastion Host를 운영해야 한다면 보안 그룹, IAM 정책, 로깅 등을 철저히 설정하여 안전하게 관리하는 것이 중요합니다!
728x90
반응형
'AWS' 카테고리의 다른 글
AWS Lambda 따라하기 - Hello World (0) | 2024.06.29 |
---|---|
AWS Lambda란 (0) | 2024.06.29 |
[AWS] Elasticache Redis 에 Python 으로 사용하기 (0) | 2023.12.16 |
[AWS] Elasticache Redis 사용하기 (0) | 2023.12.16 |
[AWS] "cannot import name 'DEFAULT_CIPHERS' from 'urllib3.util.ssl_'" on AWS Lambda using a layer (0) | 2023.09.16 |
댓글