기존에는 ec2 인스턴스에 연결하려면 키페어가 필요했다. 아마 대부분 다음 명령어로 인스턴스에 접속했을 것이다.
ssh -i /path/key-pair-name.pem instance-user-name@instance-public-dns-name
키페어를 관리하는 게 번거롭고 신경쓰이는 부분들이 많았다. 만약 전임자가 퇴사하면서 키도 함께 삭제하거나 분실되면 ...
링크드인에서 팔로우하고있는 AWS 엔지니어의 게시글을 통해 이제 키페어 없이 instance id만 알고있다면 aws cli로 Linux 인스턴스에 연결할 수 있다는 소식을 알게됐다.
인스턴스 연결 방법과 제한 사항에 대해 간단히 정리해보려한다. 아직 한국 공식 문서에는 올라오지 않았으나 영문 문서에는 게시되어있다.
EC2 Instance Connect는 일시적인 SSH 키를 사용해서 Linux 인스턴스에 접속하는 방법이다.
사용자가 인스턴스 연결을 요청하면 Instance Connect API가 SSH 퍼블릭 키를 인스턴스 메타데이터에 푸시하고, SSH 데몬이 인스턴스 메타데이터에서 퍼블릭 키를 확인하여 사용자를 인스턴스에 연결해 준다. 이 때 사용자는 IAM 주체이고, 이 주체에게 키를 인스턴스에 푸시할 수 있는 권한이 있어야한다.
✔️ 2023.06.21 기준 Amazon Linux 2
와 Ubuntu 16.04 이상
배포 버전에 대해서만 지원하고 있다.
이 글에서는 퍼블릭 환경에 있는 인스턴스를 기준으로 설명한다. 프라이빗 환경에 있는 인스턴스에는 엔드포인트를 통해 접근할 수 있다.
내가 사용중이던 2.11.27 버전에서는 ec2-instance-connect
커맨드를 인식하지 못했다. 2.12.1로 업그레이드 후 가능해졌다.
AWS CLI를 사용중이라면 업데이트를 하고, AWS CLI가 설치되어 있지 않다면 최신 버전으로 설치한다.
macOS를 사용중이라 다음 명령어로 업그레이드했다.
brew update
brew upgrade awscli
(이미 인스턴스 ID를 알고 있다면 생략 가능)
콘솔에서 직접 인스턴스 ID를 확인하거나, CLI에서 접속할 인스턴스 ID를 조회한다.
aws ec2 describe-instances
Public subnet에 위치한 인스턴스
다음 명령어를 통해 인스턴스에 접속한다.
aws ec2-instance-connect ssh --instance-id [instance-id]
성공 !
Instance Connect는 콘솔에서도 사용할 수 있는 기능이었지만 CLI가 지원되면서 훨씬 간편하게 접속할 수 있게 되었다. 다만 전자금융감독규정상 Instance Connect를 사용하는 것 자체가 보안상 취약하다고 여겨지니, 상황에 따라 적절히 사용하시길 .. ! 참고
AWS 인스턴스 메타데이터와 IMDS (0) | 2023.09.07 |
---|---|
AWS S3 취약점 및 보안 (0) | 2023.09.02 |
System Manager로 특정 시간에 EC2 인스턴스 시작/중지 자동화하기 (0) | 2023.06.03 |
EC2 상태 변경 알람 Slack으로 받아보기 (0) | 2023.06.01 |
AWS User Notifications로 AWS EC2 상태 변경 알람 받기 (0) | 2023.05.25 |
댓글 영역