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 접근 권한이 있는 사람은 보관소(vault)에 저장된 마스터 키를 사용하여 모든 계정에 로그인할 수 있습니다.
일반적인 유지 관리 절차
bastion 서버에 새 사용자 추가하기
bastion에 새 사용자를 추가하려면 해당 사용자의 키를 ansible/roles/common/files/ssh-keys에 <username>.pub이라는 이름의 파일로 추가하고, Ansible 플레이북을 수정하여 해당 사용자를 권한 없는 사용자 목록에 추가해야 합니다. 해당 사용자가 어떤 서버에 접근할 수 있는지 밝히는 주석을 남겨 주십시오.
작업을 마쳤으면 플레이북을 적용하십시오.