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 |
댓글