AWS MFA CLI 설정 변경 자동화하기

​ ​

클라우드 인프라를 관리하는 경우 여러 계정에 걸친 CLI를 사용하는 경우가 빈번합니다. 만일 CLI 사용 시 MFA 인증을 요구하는 계정과 아닌 계정이 혼재되어 있다면 설정이 정말 귀찮아집니다. 이 글에서는 간단한 스크립트를 통해 AWS CLI 설정 변경을 자동화해보려 합니다.

AWS Credential 설정

먼저 사용하는 프로필의 credential 정보를 설정해줍니다. MFA인 프로필과 MFA가 아닌 프로필을 구분하기 위해 아래와 같은 구조로 저장하겠습니다. -default가 붙은 프로필이 MFA를 사용하는 프로필입니다. 스크립트 실행을 통해 autogen 값이 자동생성됩니다.

  • aws_arn_mfa : MFA 에 대한 ARN 값 입니다. 콘솔의 security credentials 메뉴에서 확인하실 수 있습니다.
  • aws_session_token: MFA 인증을 거치게 되면 생성되는 STS 토큰 값 입니다. 스크립트를 통해 자동생성 됩니다.


MFA 설정 스크립트

다음으로 아래의 스크립트를 각 awsp.sh, mfa.py 이름으로 ~/.aws/ 경로에 추가해줍니다. 이후에 ~/.zshrc 또는 ~/.bashrc 경로에 source ~/.aws/awsp.sh를 추가해줍니다.


이제 awsp [프로필명] [mfa code]과 같은 명령어로 사용하실 수 있습니다. 예를 들어 dev 프로필의 경우 awsp dev 012345와 같이 실행합니다. MFA 조건이 없는 프로필의 경우 awsp test 0과 같이 실행하시면 됩니다.