주의!
학습하면서 얻은 정보를 토대로 적은 것이므로 부정확하거나 미비한 정보가 있을 수 있습니다.
이 점에 유의하면서 학습용 자료로서만 참고해주시기 바랍니다.
https://github.com/99designs/aws-vault/blob/master/USAGE.md
전체적인 내용은 이 글을 참고하였습니다.
이 방식의 장점은 .aws 폴더 안에 있는 credential 파일 없이도 AWS CLI 작업이 가능하다는 점으로, 액세스 키 등의 민감한 사항들이 평문으로 노출되지 않습니다.
따라서 aws-vault를 설치하고 제대로 세팅하고 나면 credential 파일은 오히려 삭제하는 것이 권장됩니다.
참고 : https://namejsjeongkr.tistory.com/2
IAM USER 및 MFA 인증 설정
먼저 AWS 관리 콘솔에서 IAM 메뉴로 들어갑니다.
여기서 IAM 사용자를 생성해야 하며, 해당 IAM 사용자에 액세스 키를 생성해줍니다.
**이 때 액세스 키와 시크릿 키는 단 한 번만 노출되므로, 따로 어딘가 안전하게 보관해둬야 합니다.
안 그러면 키를 지우고 다시 액세스 키를 생성해줘야 합니다.
MFA 인증도 하면 좋기에 MFA 인증 설정도 해줍니다.
AWS Vault 설치
Powershell을 실행하고 다음 명령어를 입력합니다.
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Optional: Needed to run a remote script the first time
a
irm get.scoop.sh | iex
scoop install aws-vault
AWS Vault 프로필 추가
IAM USER명이 student라는 가정하에 진행해보겠습니다.
aws-vault add student
(액세스 키 입력)
(시크릿 키 입력)
# 프로필 목록 확인
aws-vault ls
프로필과 credential은 정상적으로 추가됐지만 아직 세션은 열리지 않은 상태입니다.
Region 및 MFA 인증 설정
IAM USER명이 student,
내 윈도우 유저명이 myhost,
MFA 사용자 지정명이 mymfa (AWS 관리 콘솔의 IAM 메뉴에서 student 사용자 쪽 설정을 잘 찾아보면 나옴)
라고 가정하면,
C:\Users\myhost\.aws 폴더로 이동하면 안에 config 파일이 있습니다.
열어보면 Vault에 추가해준 프로필이 등록되어있습니다.
여기에 MFA 설정을 다음과 같이 집어넣고 저장합니다.
\[profile **student**\]
region = ap-northeast-2
mfa_serial = arn:aws:iam::**123456789101**:mfa/**mymfa**
AWS Vault 작동 확인
# 임시 credential을 사용하여 aws s3 목록 확인
aws-vault exec student -- aws s3 ls
# 임시 credential을 사용하지 않으면 정상작동 안 됨
aws s3 ls
MFA 코드 인증하라고 떠야 합니다.
그리고 명령어 실행 결과, 오류가 없으면 성공입니다.
(s3 버킷을 생성한 적이 없다면 당연히 아무런 결과도 나오지 않습니다. 오류만 안 나오면 됩니다.)
만일 진짜로 작동하는 건지 의문이라면 AWS 서비스 하나를 생성하고 실행해봅니다.
저는 VPC를 하나 생성해보겠습니다.
# 임시 credential을 사용하여 vpc 생성
aws-vault exec student -- aws ec2 create-vpc --cidr-block 10.0.0.0/24 --query Vpc.VpcId --output text
#웹브라우저에서 student 사용자의 AWS 관리 콘솔 열기
aws-vault login student
이렇게 하면 웹브라우저에서 student IAM USER 사용자의 AWS 관리 콘솔이 열립니다.
VPC 서비스 쪽으로 가보면 VPC 하나가 생성되어있는 걸 확인하실 수 있습니다.
기타 알아두면 좋은 명령어
# 웹브라우저에서 student 사용자의 AWS 관리 콘솔 열기
aws-vault login student
# student 프로필/credential 삭제
aws-vault remove student
# 전체 세션 삭제
aws-vault clear
# student 사용자의 세션만 삭제
aws-vault clear student
이래도 저래도 안 되면 그냥 config 파일을 삭제하고 처음부터 다시해줍니다.
C:\Users\myhost\.aws 폴더로 이동하면 안에 config 파일이 있습니다.
(여기서 myhost는 윈도우 사용자명)