소개
AWS 의 Multi Account 환경에서 CLI 나 콘솔을 통해 여러 계정에 접속하여 멀티뷰를 봐야할 때가 실무에서는 많습니다. AWS SSO 를 이용할 경우 SSO 페이지를 통해 쉽게 콘솔에서의 account 및 role 전환이 가능하긴 합니다만, 동시에 여러 account 의 role 을 보고 싶을때는 세션을 공유안하는 브라우저를 여러개 띄워야 한다거나 하는 번거로움이 많이 존재합니다.
AWS 에서는 인증시 임시자격증명을 이용하는 Role 기반 접근을 Best Practice 로 안내하고 있는데요.
AWS SSO 베이스로 account 및 role 별 스위칭을 보다 쉽게 해주면서 멀티 콘솔 이용도 편하게 해주는 툴을 한번 소개해보려 합니다.
Granted Tool
Granted 는 AWS SSO 베이스로 CLI 환경 및 콘솔 환경에서 손쉽게 Role 스위칭이 가능하도록 해줍니다.
사전에 profile 을 구성해 놓으면 명령어를 통해 쉽게 스위칭이 가능하며, Firefox 브라우저에서는 동일 Windows 에서 Tab 별로 다른 Account Role 을 띄워서 사용도 가능합니다. 다른 브라우저 경우에는 별도의 Windows 를 띄워 동시에 여러 Role 을 볼수있도록 해줍니다.
Firefox 경우 위처럼 Tab 별로 다른 색깔로 다른 Role 창을 띄울 수도 있습니다.
Granted 장점
Granted 를 사용해본 후 제가 생각하는 장점은 3가지정도 였습니다.
- 다루기 쉽다.
- 콘솔을 이용할 경우, 다양한 브라우저를 지원한다.
- SSO Credential 보안적으로 키체인 보관이 가능하다.
Granted 는 기본적으로 AWS SSO 기반의 Role assume 으로 동작합니다. 그래서 사전에 profile 을 account role 별로 작성해 놓고나면 쉽게 스위칭이 가능합니다.
콘솔 이용을 위한 기본 브라우저도 chrome 이외에 firefox, edge 등 다양한 브라우저를 지원하고 있습니다.
보안적으로도 장점을 가지고 있는데, AWS SSO 를 통할 경우 기본적으로 임시 credential 은 plaintext 로 저장을합니다. 보안적으로 취약한 부분인데 Granted 를 이용하면 OS별로 존재하는 키체인을 통해서 안전하게 credential 을 저장하여 강화된 보안을 제공해 줍니다.
Granted 설치 방법
Granted docs 를 보면 설치방법이 자세히 나오긴 합니다만 간단히 설치 및 사용 방법을 공유해보도록 하겠습니다.
절차는 아래의 절차대로 진행이 됩니다.
- AWS CLI 설치
- AWS Profile 작성
- Granted 설치
1. AWS CLI 설치
AWS CLI 설치 가이드에 따라 본인의 OS 에 맞게 설치를 진행해주면 되겠습니다.
2. AWS Profile 작성
~/.aws/config 에 사용중인 AWS 환경에 대한 Profile 들을 정의해 줍니다.
간단한 예시입니다.
# ~/.aws/config
[profile prod]
sso_start_url=https://gogoyeon.awsapps.com/start
sso_region=ap-northeast-2
sso_account_id=123456789012
sso_role_name=AdministratorAccess
region=ap-northeast-2
[profile blog]
sso_start_url=https://gogoyeon.awsapps.com/start
sso_region=ap-northeast-2
sso_account_id=123456789013
sso_role_name=AdministratorAccess
region=ap-northeast-2
[profile 프로파일-이름] 구조로 프로파일을 분리해줍니다.
AWS SSO url, region, account id, role name, 접속하고자 하는 account region 을 각각 명시해 주면 됩니다.
혹시 AWS SSO 를 사용하고 있지 않으시다면 별도 설정을 한 후 설정해주시면 되겠습니다. AWS SSO 는 무료이기도 하기 때문에 부담없이 설정하여 사용하시면 될것같습니다.
3. Granted 설치
MacOS 나 Linux 에서 brew 를 설치하여 운영중시라면 brew 를 통해 간단히 설치가 가능합니다.
brew tap common-fate/granted
brew install granted
아닌 다른 환경에서의 설치라면 granted docs – install 페이지 안내대로 설치하시면 되겠습니다.
# 설치 확인
granted --version
Granted 사용 방법
사용방법은 간단합니다.
AWS CLI 사용을 위한 role 스위칭은 assume
명령어를 이용하면 됩니다.
assume 할 profile 명을 선택하면 해당 role 로 AWS CLI 이용이 가능합니다.
AWS 콘솔을 이용하고 싶다면 아래와 같이 -c
옵션을 추가해주면 됩니다.
그전에 기본 브라우저를 설정해줘야하는데 아래 명령어를 통해 설정을 해줍니다.
저는 firefox 를 주로 이용하여 tab 별로 다른 환경을 열어 사용하는데요. firefox 로 선택하신다면 extention 설치하였는지 물어보는 메시지가 나오는데요. 안내대로 새로 설치를 진행하시면 firefox 를 통해 이용이 가능합니다.
그리고 assume -c 명령어로 콘솔을 오픈하여 사용합니다.
마무리
AWS 인증을 위한 다양한 방법이 있겠지만, 개인적으로 granted 를 이용하여 손쉽게 전환하여 이용을 하고 있습니다. 보안적으로 임시자격증명을 이용하면서 안전한 임시자격증명 저장도 하고싶다 하시는 분은 granted 한번 사용해보시면 좋을 듯합니다.