AWS

MSSH 방식 EC2 접근 (feat. MSFTP)

빠빠담 2021. 12. 19. 16:22
반응형

 

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

 

sudo apt update
sudo apt-get install ec2-instance-connect

인스턴스에 Instance Connect 패키지를 설치합니다.

 

sudo apt-get update
sudo apt-get install python3-pip

install pip

 

pip install ec2instanceconnectcli

install ec2instanceconnectcli

 

pip show ec2instanceconnectcli

Name: ec2instanceconnectcli
Version: 1.0.2
Summary: Command Line Interface for AWS EC2 Instance Connect
Home-page: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Connect-using-EC2-Instance-Connect.html
Author: Amazon Web Services
Author-email: UNKNOWN
License: Apache License 2.0
Location: /home/kyd/.local/lib/python3.8/site-packages
Requires: cryptography, botocore
Required-by:

mssh 파일의 경로를 확인한다. 

 

좀더 찾아보니 위 경로에 존재하였다

 

./mssh i-123456
# amazon linux의 경우

./mssh ubuntu@i-123456
# ubuntu instance의 경우

mssh 명령어와 함께 ec2 인스턴스 아이디를 입력하여 접속한다.

./msftp i-06cc189551552b619
./msftp ubuntu@i-06cc189551552b619

msftp 명령어 사용

 

EC2 Instance Connect의 IAM 권한 구성

콘솔 방식 정책 등록

aws iam create-policy --policy-name my-policy --policy-document file://JSON-file-name

cli 방식 정책 등록

 

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2-instance-connect:SendSSHPublicKey",
            "Resource": [
                "arn:aws:ec2:ap-northeast-2:${account-id}:instance/${instance-id|*}"
            ],
            "Condition": {
                "StringEquals": {
                    "ec2:osuser": [
                        "ec2-user",
                        "ubuntu"
                    ]
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeInstances",
            "Resource": "*"
        }
    ]
}

account-id 와 instance-id 를 맞춰서 입력하여 정책을 추가한다.

instance-id는 특정 인스턴스를 설정하거나 와일드카드(*)로 설정하여 모든 인스턴스에 대해 접근이 가능하도록 설정한다.

 

 

{ 
   "Version":"2012-10-17",
   "Statement":[ 
      { 
         "Effect":"Allow",
         "Action":"ec2-instance-connect:SendSSHPublicKey",
         "Resource": "arn:aws:ec2:region:account-id:instance/*",
         "Condition":{ 
            "StringEquals":{ 
               "aws:ResourceTag/tag-key":"tag-value"
            }
         }
      },
      {
        "Effect": "Allow",
        "Action": "ec2:DescribeInstances",
        "Resource": "*"
      }
   ]
}

또는 특정 태그를 설정하여 해당 태그가 등록된 인스턴스만 접근하도록 설정 가능하다.

 

 

aws iam attach-user-policy --policy-arn arn:aws:iam::account-id:policy/my-policy --user-name IAM-friendly-name

특정 사용자에 해당 정책을 등록하거나

그룹을 통해 사용자에게 정책을 적용하도록 한다.

 

 

위 내용은 아래의 AWS CLI Credentials 설정이 되었다는 가정하에 적용되는 내용이므로

이전 정책이 적용된 사용자의 Access Key 를 등록하도록 한다.

https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-configure-quickstart.html

 

 


sftp 명령어

sftp> get [filename]
# remote to local

sftp> put [filename]
# local to remote

https://cccding.tistory.com/100

 

 


Alias 설정

vim ~/.zshrc

alias mssh="/home/user/.local/bin/mssh"
alias msftp="/home/user/.local/bin/msftp"

alias bastion="mssh ${instance-id}"
alias bastion-f="msftp ${instance-id}"

source ~/.zshrc

 

 

 

반응형

'AWS' 카테고리의 다른 글

VPC - overview  (0) 2023.02.15
CodeBuild  (0) 2021.12.25
AWS - EBS 볼륨 스케일업  (0) 2020.09.17
ELB - 연결 유휴 시간  (0) 2020.09.10
RDS - collation_database  (0) 2020.09.09