๋ค์์ AWS MFA๋ฅผ ์ค์ ํ ํ AWS CLI๋ฅผ ์ค์น ๋ฐ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ง์นจ์ ๋๋ค.
์ํ๊น๊ฒ๋ ์ด ํ์ ์ ์ฐจ๋ฅผ ์ํํ๋ ๋ฐ ๊ทผ๋ฌด ์๊ฐ์ ์ ๋ฐ์ด ๊ฑธ๋ ธ์ต๋๋ค. ์ ์ฒ๋ผ ์์ ํ์ง ์์ ๋ค๋ฅธ AWS ์ฌ์ฉ์๋ค์ด ์ฌ์ํ ์ผ์ ๊ท์คํ ์๊ฐ์ ๋ญ๋นํ์ง ์๋๋ก ์ง์นจ์ ์ปดํ์ผํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค.
์๋๋ฐ์ค ๊ณ์ ์ค์ ์๋
MFA ์ค์
- ์ธํธ
ํธํ๋๋ ๋ชจ๋ฐ์ผ ์ฑ - ์ด๋
AWS ์ฝ์ ๋ด ๋ณด์ ์๊ฒฉ ์ฆ๋ช -> MFA ์ฅ์น ํ ๋น
- ๊ฐ์ MFA ๋๋ฐ์ด์ค
- ํ๋ฉด์ ์ง์๋ฅผ ๋ฐ๋ฅด์ญ์์ค
- ๊ฐ์ ์ฅ์น๊ฐ ์ค๋น๋์์ต๋๋ค
AWS CLI ์ค์น
๋ช ๋ช ๋ ํ๋กํ ์ค์
๋ด ๋ณด์ ์๊ฒฉ ์ฆ๋ช -> ์ก์ธ์ค ํค ์์ฑ
- ํค๋ฅผ ํด๋ฆฝ๋ณด๋์ ๋ณต์ฌํ์ธ์. ๋ค์ ๋จ๊ณ์์ ํ์ํฉ๋๋ค.
$ aws configure --profile <your profile name>
MFA๋ฅผ ํตํ AWS CLI
- ๊ฐ์ ๋๋ฐ์ด์ค ARN ๋ณต์ฌ
aws sts get-session-token --profile <ะธะผั ะฟัะพัะธะปั> --serial-number <ARN ะฒะธัััะฐะปัะฝะพะณะพ ััััะพะนััะฒะฐ> --token-code <ะพะดะฝะพัะฐะทะพะฒัะน ะฟะฐัะพะปั>
์ผํ์ฉ ๋น๋ฐ๋ฒํธ๋ ์ด์ ์ ๊ตฌ์ฑํ ๋ชจ๋ฐ์ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ์ ธ์์ผ ํฉ๋๋ค.- ์ด ๋ช ๋ น์ JSON์ ์ถ๋ ฅํ๋ฉฐ, ํด๋น ๊ฐ๋ณ ํ๋๋ ํด๋น ํ๊ฒฝ ๋ณ์ AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN์ผ๋ก ๋์ฒด๋์ด์ผ ํฉ๋๋ค.
์๋ํํ๊ธฐ๋ก ๊ฒฐ์ ํ์ด์ ~/.bash_profile
JSON์ ๊ตฌ๋ฌธ ๋ถ์ํ๋ ค๋ฉด ์ด ์คํฌ๋ฆฝํธ์ ๋ค์์ด ํ์ํฉ๋๋ค.
#!/usr/bin/env bash
aws_login() {
session=$(aws sts get-session-token "$@")
echo "${session}"
AWS_ACCESS_KEY_ID=$(echo "${session}" | jq -r '.Credentials.AccessKeyId')
export AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY=$(echo "${session}" | jq -r '.Credentials.SecretAccessKey')
export AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN=$(echo "${session}" | jq -r '.Credentials.SessionToken')
export AWS_SESSION_TOKEN
}
alias aws-login-dev='aws_login --profile <ะธะผั dev ะฟัะพัะธะปั> --serial-number <ARN ะฒะธัััะฐะปัะฝะพะณะพ ััััะพะนััะฒะฐ> --token-code '
alias aws-login-prod='aws_login --profile <ะธะผั prod ะฟัะพัะธะปั> --serial-number <ARN ะฒะธัััะฐะปัะฝะพะณะพ ััััะพะนััะฒะฐ> --token-code '
ะัะฟะพะปัะทะพะฒะฐะฝะธะต :
$ aws-login-dev <ะพะดะฝะพัะฐะทะพะฒัะน ะฟะฐัะพะปั>
์ด ์ง์นจ์ด ๊ณต์ ๋ฌธ์๋ฅผ ํค๋งค๋ ๋ฐ ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๋ ๊ฒ์ ํผํ๋ ๋ฐ ๋์์ด ๋๊ธฐ๋ฅผ ๋ฐ๋๋๋ค ๐
์ถ์ฒ : habr.com