본문 바로가기
IT기술, 정보

[AWS] sudo user 추가 및 AWS CLI profile 나누기 on CentOS7

by DanielShin 2023. 2. 22.

서론

하나의 OS에서 다수 AWS 계정의 configure를 등록했다면, AWS CLI 명령어 뒤에 --profile [프로파일명] 옵션을 사용하여 이 명령어가 실행될 AWS 계정을 구분할 수 있습니다.
하지만 명령어를 칠때마다 뒤에 --profile [프로파일명] 을 붙이는 것은 여간 귀찮은 일이 아니며, 명령어도 길어지고, 자칫 프로파일을 붙이지 않아 엉뚱한 AWS 계정에 명령어를 날리는 실수를 할 수 있습니다.
이러한 일들을 방지하고자 아예 AWS 계정별로 OS user를 생성하고, 각 user 에 로그인 하면 기본적으로 해당 AWS 계정의 profile을 사용하게끔 설정을 해봅시다.
 
alpha 라는 AWS 계정에 CLI 명령을 하고 싶다면 alpha 라는 OS user로 로그인
bravo 라는 AWS 계정에 CLI 명령을 하고 싶다면 bravo 라는 OS user로 로그인

 

본문에서는 설정 후 확인 명령어로 s3 list 를 조회 하였으나, S3가 없다면 상황에 따라 다른 명령어를 쓰시면 됩니다.
CentOS 7 을 기준으로 작성 하였으므로 OS에 따라 적절히 변경하여 사용하시면 됩니다.


[ root user ] - OS User 추가, sudoers 파일 수정, AWS CLI 설치

sudo su - root

yum update -y

 

 

alpha, bravo 계정 추가

useradd alpha
useradd bravo

passwd alpha
passwd bravo

 

/etc/sudoers 파일 수정

chmod +w /etc/sudoers

vi /etc/sudoers
root    ALL=(ALL)       ALL
alpha        ALL=NOPASSWD:    ALL
bravo        ALL=NOPASSWD:    ALL

chmod -w /etc/sudoers

 

AWS CLI 설치

cd ~

curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"

unzip awscliv2.zip

sudo ./aws/install

aws --version


[ alpha User ] - AWS Configure 설정

sudo su - alpha

aws configure --profile=alpha

AWS Access Key ID [None]: ****************2KGQ
AWS Secret Access Key [None]: ****************YxEJ
Default region name [None]: {aws-region-code}
Default output format [None]:

aws s3 ls --profile alpha

 

AWS_DEFAULT_PROFILE 을 설정, 또한 헷갈리지않게 명령어 프롬프트에 색깔도 넣어줌.

vi ~/.bash_profile
export AWS_DEFAULT_PROFILE=alpha
SERVER_NAME=`echo -e "\033[1m\033[41m$HOSTNAME\033[0m"`
if [ "$LOGNAME" = "root" ]; then
   export PS1="[$LOGNAME@ ${SERVER_NAME} :\$PWD]# "
else
   export PS1="[$LOGNAME@ ${SERVER_NAME} :\$PWD]$ "
fi

source ~/.bash_profile

aws s3 ls


[ bravo User ] - AWS Configure 설정

sudo su - bravo

aws configure --profile=bravo

AWS Access Key ID [None]: ****************ISPW
AWS Secret Access Key [None]: ****************yB/w
Default region name [None]: {aws-region-code}
Default output format [None]:

aws s3 ls --profile bravo

 

AWS_DEFAULT_PROFILE 을 설정, 또한 헷갈리지않게 명령어 프롬프트에 색깔도 넣어줌.

vi ~/.bash_profile
export AWS_DEFAULT_PROFILE=bravo
SERVER_NAME=`echo -e "\033[1m\033[44m$HOSTNAME\033[0m"`
if [ "$LOGNAME" = "root" ]; then
   export PS1="[$LOGNAME@ ${SERVER_NAME} :\$PWD]# "
else
   export PS1="[$LOGNAME@ ${SERVER_NAME} :\$PWD]$ "
fi

source ~/.bash_profile

aws s3 ls

 

결과

 

 

 

(참고) : 프롬프트 색상 정보

C_DEFAULT="\[\033[m\]"
C_WHITE="\[\033[1m\]"
C_BLACK="\[\033[30m\]"
C_RED="\[\033[31m\]"
C_GREEN="\[\033[32m\]"
C_YELLOW="\[\033[33m\]"
C_BLUE="\[\033[34m\]"
C_PURPLE="\[\033[35m\]"
C_CYAN="\[\033[36m\]"
C_LIGHTGRAY="\[\033[37m\]"
C_DARKGRAY="\[\033[1;30m\]"
C_LIGHTRED="\[\033[1;31m\]"
C_LIGHTGREEN="\[\033[1;32m\]"
C_LIGHTYELLOW="\[\033[1;33m\]"
C_LIGHTBLUE="\[\033[1;34m\]"
C_LIGHTPURPLE="\[\033[1;35m\]"
C_LIGHTCYAN="\[\033[1;36m\]"
C_BG_BLACK="\[\033[40m\]"
C_BG_RED="\[\033[41m\]"
C_BG_GREEN="\[\033[42m\]"
C_BG_YELLOW="\[\033[43m\]"
C_BG_BLUE="\[\033[44m\]"
C_BG_PURPLE="\[\033[45m\]"
C_BG_CYAN="\[\033[46m\]"
C_BG_LIGHTGRAY="\[\033[47m\]"

댓글