티스토리 뷰

카테고리 없음

AWS Vault

Quill. 2020. 2. 16. 21:47

AWS 명령줄(CLI: Command-Line Interface) 환경을 사용하다보면 사용자인증과 권한확인을 위한 보안 키(Key)가 필요하다. 기본적으로 명령줄을 실행하는 환경에 파일로 저장하거나 환경변수로 등록해서 사용한다. 그러나 이러한 방법은 중요한 키를 암호화 되지 않고 저장하는 것이므로 보안사고의 위험이 있다. 그래서 RBAC with AWS IAM[각주:1]시스템을 구축하여 사용자는 임시 키를 발급받아 사용하도록 하였고 개별 사용자들은 AWS Vault[각주:2] 라는 도구를 이용하여 자신의 자격증명 보안 키를 암호화하도록 하였다. AWS Vault는 AWS 명령줄을 사용하기위한 보안 키를 각 환경의 보안공간에 안전하게 보관해 주는 도구이다. 만약 맥 운영환경(macOS)를 사용하고 있다면, 다음과 같이 간단하게 설치가 가능하다.

$ brew cask install aws-vault

사용법은 공식 문서를 참고하는 것이 좋으며, 여기서는 간단한 내용만 간추려 놓았다. 처음 설치했으면 자신의 자격증명서(Credential)를 가지고 프로파일(Profile)을 만들어야 한다.

$ aws-vault add yours
Enter Access Key Id: AKIABCDEFGHIJK
Enter Secret Key: 
$ aws-vault list
Profile                  Credentials              Sessions
=======                  ===========              ========
yours                    -                        -

설정이 끝났다면, 자격증명 정보가 암호화 되어 저장된 것을 확인할 수 있다. 만약 AWS-Vault를 사용하지 않았다면, ~/.aws/credentials에 암호화되지 않은 자격증명 정보가 있겠지만, AWS-Vault를 이용했다면 해당 파일이 없는 것을 확인할 수 있다. 이제 AWS 명령줄을 사용하는 방법을 살펴본다. 여기서는 역할을 위임받아서 사용하는 방법을 가정한다. 아래 예제는 target-role 이라는 역할 전환 대상을 설정하는 방법이다. 주석에 설명되어 있는 것처럼 선호하는 편집기로 내용을 입력한다.

### edit your aws cli configuration using favorite editor (~/.aws/config)
[profile yours]
role_arn = arn:aws:iam::123456789012:role/target-role
mfa_serial = arn:aws:iam::123456789013:mfa/yours
source_profile = default
region = us-east-1
output = text

그러면, 이제 원하는 역할로 전환을 할 수 있다. 아래와 같은 명령을 입력한 다음, 안내에따라 MFA(Multi-Factor Authentication)를 위한 일회용 암호를 입력하면 최종적으로 원하는 역할로 전환할 수 있다. 자격증명정보는 안전한 장소에 보관되며, 맥 사용자라면 키체인(Keychain)에 안전하게 보관된다.

$ aws-vault exec target-role
Enter MFA code for arn:aws:iam::123456789013:mfa/yours:

 

공지사항