티스토리 뷰

개발도구/aws

EC2 Instance Connect 설정

jin-park 2022. 3. 12. 21:18

1. EC2 Instance Connect

  • ec2 ssh접속시 pem 파일을 이용하여 접속을 해야한다.
  • 접속 할때마다 pem파일을 이용하여 접속하기 귀찮아 살펴보던중 찾아내어 설정 방법을 정리하고자 한다.
  • Instance Connect 설정시 pem파일 없이 아래와 같이 간단한 명령어로 ec2 접속이 가능하다.
mssh ubuntu@[[ec2 인스턴스 아이디]]

1.1. 인스턴스에 EC2 Instance Connect 설치

  • Amazon Linux 2 2.0.20190618 이상, Ubuntu 20.04 이상은 설치되어있으므로 건너뛰어도 된다.
  • 아래 예시는 Ubuntu 18버전을 기반으로 진행함.

1.1.1. EC2 SSH 접속

ssh -i "[[pem 파일 경로]]" ubuntu@[[퍼블릭 IPv4 DNS 주소]]

1.1.2. 모든 패키지 업데이트

sudo apt-get update
sudo apt-get upgrade

1.1.3. Instance Connect 패키지를 설치

sudo apt-get install ec2-instance-connect

1.1.4. 설치 확인

sudo less /lib/systemd/system/ssh.service.d/ec2-instance-connect.conf

다음 두 줄이 포함되어 있으면 설치가 완료된것으로 간주한다.

  • AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f
  • AuthorizedKeysCommandUser ec2-instance-connect

1.2. EC2 Instance Connect의 IAM 권한 구성

  • EC2 Instance Connect를 사용하여 인스턴스에 연결할 경우 퍼블릭 키를 인스턴스에 푸시하도록
    권한(ec2-instance-connect:SendSSHPublicKey)을 부여해야 한다.

1.2.1. 정책 생성

  • iam -> 정책 페이지 내의 정책 생성을 클릭한다.

  • 아래 내용을 수정하여 입력하고 정책을 생성한다.
  • account id의 경우 상단 계정정보에서 볼수있다.
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey",
            "Resource": "arn:aws:ec2:[[리젼명]]:[[account id]]:instance/[[ec2 인스턴스 아이디]]",
            "Condition": {
                "StringEquals": {
                    "ec2:osuser": "ubuntu" // 또는 ec2-user
                }
            }
        }
    ]
}

1.2.2. 생성된 정책 사용자에게 부여

  • 위에 생성된 정책을 iam 사용자에게 부여한다.

1.3. EC2 Instance Connect CLI 설치

  • EC2 Instance Connect CLI는 단일 명령인 mssh를 통해 EC2 인스턴스에 연결할 수 있는 간소화된 환경을 제공한다.
pip3 install ec2instanceconnectcli

1.4. EC2 Instance Connect CLI를 통한 ec2 SSH 접속

  • iam에 권한을 부여한 사용자로 aws cli를 접속후에 mssh를 통해서 ec2에 접속한다.
aws configure

mssh ubuntu@[[ec2 인스턴스 아이디]]


Welcome to Ubuntu 18.04.6 LTS (GNU/Linux 5.4.0-1060-aws x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Sat Mar 12 12:17:43 UTC 2022
  
....
....
....

2. EC2 Instance Connect의 원리

https://blog.mathpresso.com/aws-ec2-instance-connect-%EB%8F%84%EC%9E%85%EA%B8%B0-goodbye-key-pair-646380952f0e


출처

https://blog.mathpresso.com/aws-ec2-instance-connect-%EB%8F%84%EC%9E%85%EA%B8%B0-goodbye-key-pair-646380952f0e

 

AWS EC2 Instance Connect 도입기 (Goodbye Key Pair!)

AWS EC2 Key Pair 없이 인스턴스 접속하기

blog.mathpresso.com

https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/ec2-instance-connect-set-up.html

 

EC2 Instance Connect 설정 - Amazon Elastic Compute Cloud

사용자가 Amazon EC2 콘솔(브라우저 기반 클라이언트) 또는 SSH 클라이언트만 사용하여 인스턴스에 연결하는 경우, EC2 Instance Connect CLI를 설치할 필요가 없습니다.

docs.aws.amazon.com

 

'개발도구 > aws' 카테고리의 다른 글

Ubuntu 18버전에서 Jenkins 설치  (0) 2022.03.14
Jenkins to AWS ECR  (0) 2022.03.12
AWS ECR - Docker Image Push  (0) 2022.03.11
댓글