Bastion 서버
- FQDN:
bastion.infra.rust-lang.org - 이 서버를 배포하기 위한 Ansible 플레이북입니다.
- AWS 리소스를 생성하기 위한 Terraform 설정입니다.
- 인스턴스 메트릭(인프라 팀 구성원만 이용 가능합니다).
Bastion을 통해 서버에 로그인하기
인프라 보안을 향상시키기 위해 프로덕션 서버에 SSH로 직접 연결할 수 없습니다. 대신, 모든 연결은 “bastion“이라고 불리는 소규모 서버를 거쳐야 하며, 이 서버는 화이트리스트에 등록된 소수의 네트워크에서 오는 연결만 허용하고 모든 연결 시도를 기록합니다.
Bastion을 통해 서버에 로그인하려면 다음 방법 중 하나를 사용하십시오.
-
SSH의
-J플래그를 사용하십시오.ssh -J <username>@bastion.infra.rust-lang.org <username>@servername.infra.rust-lang.org -
호스트에 연결할 때 항상 bastion을 거치도록 SSH 클라이언트를 설정하십시오.
-
SSH 설정 파일(보통
~/.ssh/config에 위치)에 다음 스니펫을 추가하십시오.Host servername.infra.rust-lang.org ProxyJump <username>@bastion.infra.rust-lang.org -
SSH를 사용하십시오.
ssh <username>@servername.infra.rust-lang.org
-
각 계정에 로그인할 수 있도록 승인된 SSH 키는 simpleinfra 저장소에 저장되어 있습니다. 또한 민감한 1password 접근 권한이 있는 사람들은 볼트에 저장된 마스터 키를 사용하여 모든 계정에 로그인할 수 있습니다.
일반적인 유지 관리 절차
Bastion 서버에 새 사용자 추가하기
Bastion에 새 사용자를 추가하려면 ansible/roles/common/files/ssh-keys에 <username>.pub라는 이름의 파일로 해당 사용자의 키를 추가하고, Ansible playbook을 수정하여 해당 사용자를 비특권 사용자 목록에 추가해야 합니다. 해당 사용자가 어떤 서버에 접근할 수 있는지를 명확히 하는 코멘트를 남겨 주십시오.
그 작업이 끝나면 플레이북을 적용하십시오.