Dev./Terraform

Terraform: AWS ssh connection

Ivan'show 2023. 9. 9.
728x90
반응형

NCP 로 접속할 땐 access key 와 secret key 를 변수로 선언해서 접근할 때마다 인증해주는 방식이었으나 aws 의 경우 credential 정보를 aws cli 로 대체하여 이를 대신한다.

aws configure

# result
kimminhyeok@Ivans-Mac lion_infra % aws configure
AWS Access Key ID [****************VCFO]: 
AWS Secret Access Key [****************e2+m]: 
Default region name [ap-northeast-2]: 
Default output format [JSON]:

작업하고 있는 로컬환경에서 등록해 놓은 aws configure 정보를 사용하여 해당 aws 콘솔로 접근을 하게 되니 이를 기억하는게 좋다.

또한, 클라우드 서버 인스턴스가 실행되고 띄워지면 ssh 명령어를 이용하여 접근했었는데 이때 aws 는 ssh 페어키에 대한 권한을 물어본다.

git 서버에서 작업을 하면서 생성해둔 ssh 공개키를 이 때 사용하게 된다.

# 만들어진 키가 없다면 만들어주자
ssh-keygen

# result
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/kimminhyeok/.ssh/id_rsa):
...
...
kimminhyeok@Ivans-Mac .ssh % ls -l  
total 56
-rw-r--r--@ 1 kimminhyeok  staff   476 Aug 29 15:51 config
-rw-------  1 kimminhyeok  staff  3434 Apr 21 12:16 id_rsa
-rw-r--r--  1 kimminhyeok  staff   748 Apr 21 12:16 id_rsa.pub
...

생성이 되면 비공개키와 공개키가 생성되는데 공개키는 외부에서 사용가능한 정보로 페어키를 체크하는 다른 한쪽으로 사용된다.

이 부분을 자동화 하기 위해서 init script 안쪽에 삽입시켜준다.

# db_init_script.sh

# .ssh 폴더 생성
mkdir /home/$USERNAME/.ssh

# id_rsa.pub 키를 넣어준다
echo "ssh-rsa AAAAB3NzaCdX ... ... ... @gmail.com" >> /home/$USERNAME/.ssh/authorized_keys

echo "done"
# tip !

.sh 파일이더라도 init 스크립트를 넣는 과정에서 안쪽까지 terraform 이 체크를 하기 때문에 안쪽에 ${} 로 변수를 감싸게 되면 terraform vars 안에 매칭되는 변수가 선언되어 있는지 확인하니 주의할 것

넣어준 값이 서버에서, 비공개 키가 로컬에서 확인되면 ssh 접속이 가능하다.

kimminhyeok@Ivans-Mac staging % ssh -i ~/.ssh/id_rsa lion@aws-db-server-staging 
Enter passphrase for key '/Users/kimminhyeok/.ssh/id_rsa':
# 설정해둔 비밀번호 입력

ssh 명령어를 사용하면 -i 로 직접 키를 설정해주는 게 번거롭다면 config 에서 해당 설정을 해줄 수 있다.

Host aws-db-server-staging
  HostName ${public ip address}
  User lion
  IdentityFile ~/.ssh/id_rsa

이렇게 쉘간 보안을 위한 ssh 페어키 설정을 해두면 보다 안전하게 환경구성이 가능하다고 한다.

728x90
반응형

'Dev. > Terraform' 카테고리의 다른 글

Terraform: nks resource  (0) 2023.09.23
Terraform: AWS 서버구축2  (0) 2023.09.10
Terraform: AWS 서버구축  (0) 2023.09.08
Terraform: Status 가 꼬이는 현상  (0) 2023.09.07
Terraform: Separating  (0) 2023.09.06

댓글