MFA เชฆเซเชตเชพเชฐเชพ AWS CLI

เช†เช—เชณ AWS MFA เชธเซ‡เชŸ เช•เชฐเชตเชพ เช…เชจเซ‡ เชชเช›เซ€ AWS CLI เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช…เชจเซ‡ เช—เซ‹เช เชตเชตเชพ เชฎเชพเชŸเซ‡เชจเซ€ เชธเซ‚เชšเชจเชพเช“ เชนเชถเซ‡.

เช•เชฎเชจเชธเซ€เชฌเซ‡, เช† เชซเชฐเชœเชฟเชฏเชพเชค เชชเซเชฐเช•เซเชฐเชฟเชฏเชพเช เชฎเชจเซ‡ เชฎเชพเชฐเชพ เช•เชพเชฎเช•เชพเชœเชจเชพ เชฆเชฟเชตเชธเชจเซ‹ เช…เชกเชงเซ‹ เชญเชพเช— เชฒเซ€เชงเซ‹. เชœเซ‡เชฅเซ€ เช…เชจเซเชฏ เช…เชธเซเชฐเช•เซเชทเชฟเชค AWS เชตเชชเชฐเชพเชถเช•เชฐเซเชคเชพเช“ ๐Ÿ˜‰, เชฎเชพเชฐเซ€ เชœเซ‡เชฎ, เชคเซเชšเซเช› เชฌเชพเชฌเชคเซ‹เชฎเชพเช‚ เช•เชฟเช‚เชฎเชคเซ€ เชธเชฎเชฏ เชฌเช—เชพเชกเซ‡ เชจเชนเซ€เช‚, เชฎเซ‡เช‚ เชธเซ‚เชšเชจเชพเช“เชจเซเช‚ เชธเช‚เช•เชฒเชจ เช•เชฐเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚.

เชธเซ‡เชจเซเชกเชฌเซ‹เช•เซเชธ เชเช•เชพเช‰เชจเซเชŸ เชธเซ‡เชŸเชฟเช‚เช— เชฎเชพเชŸเซ‡ เชชเชฃ เชเชฎ.เชเชซ.เช. เช† เชธเชพเชฎเชพเชจเซเชฏ เชฐเซ€เชคเซ‡ เชซเชฐเชœเชฟเชฏเชพเชค เชœเชฐเซ‚เชฐเชฟเชฏเชพเชค เช›เซ‡. เช†เชชเชฃเซ€ เชธเชพเชฅเซ‡ เช†เชตเซเช‚ เชœ เช›เซ‡.

MFA เชธเซ‡เชŸ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

  1. เชธเซ‡เชŸ เช•เชฐเซ‹ เชธเซเชธเช‚เช—เชค เชฎเซ‹เชฌเชพเช‡เชฒ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจ
  2. เชชเชฐ เชœเชพเช“ AWS เช•เชจเซเชธเซ‹เชฒ
  3. เชฎเชพเชฐเชพ เชธเซเชฐเช•เซเชทเชพ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเซ‹ -> MFA เช‰เชชเช•เชฐเชฃ เชธเซ‹เช‚เชชเซ‹
    MFA เชฆเซเชตเชพเชฐเชพ AWS CLI
  4. เชตเชฐเซเชšเซเชฏเซเช…เชฒ MFA เช‰เชชเช•เชฐเชฃ
    MFA เชฆเซเชตเชพเชฐเชพ AWS CLI
  5. เชธเซเช•เซเชฐเซ€เชจ เชชเชฐเชจเซ€ เชธเซ‚เชšเชจเชพเช“เชจเซ‡ เช…เชจเซเชธเชฐเซ‹
    MFA เชฆเซเชตเชพเชฐเชพ AWS CLI
    MFA เชฆเซเชตเชพเชฐเชพ AWS CLI
  6. เชตเชฐเซเชšเซเชฏเซเช…เชฒ เช‰เชชเช•เชฐเชฃ เชคเซˆเชฏเชพเชฐ เช›เซ‡
    MFA เชฆเซเชตเชพเชฐเชพ AWS CLI

AWS CLI เช‡เชจเซเชธเซเชŸเซ‹เชฒ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html

เชจเชพเชฎเชตเชพเชณเซ€ เชชเซเชฐเซ‹เชซเชพเช‡เชฒ เชธเซ‡เชŸ เช•เชฐเซ€ เชฐเชนเซเชฏเซเช‚ เช›เซ‡

https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-profiles.html

  1. เชฎเชพเชฐเชพ เชธเซเชฐเช•เซเชทเชพ เชชเซเชฐเชฎเชพเชฃเชชเชคเซเชฐเซ‹ -> เชเช•เซเชธเซ‡เชธ เช•เซ€ เชฌเชจเชพเชตเซ‹
    MFA เชฆเซเชตเชพเชฐเชพ AWS CLI
  2. เชคเชฎเชพเชฐเชพ เช•เซเชฒเชฟเชชเชฌเซ‹เชฐเซเชก เชชเชฐ เช•เซ€เชจเซ€ เชจเช•เชฒ เช•เชฐเซ‹. เชคเชฎเชจเซ‡ เช†เช—เชฒเชพ เชชเช—เชฒเชพเชฎเชพเช‚ เชคเซ‡เชจเซ€ เชœเชฐเซ‚เชฐ เชชเชกเชถเซ‡
  3. $ aws configure --profile <your profile name>

MFA เชฆเซเชตเชพเชฐเชพ AWS CLI

  1. เชตเชฐเซเชšเซเชฏเซเช…เชฒ เช‰เชชเช•เชฐเชฃ ARN เชจเซ€ เชจเช•เชฒ เช•เชฐเซ‹
    MFA เชฆเซเชตเชพเชฐเชพ AWS CLI
  2. aws sts get-session-token --profile <ะธะผั ะฟั€ะพั„ะธะปั> --serial-number <ARN ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะณะพ ัƒัั‚ั€ะพะนัั‚ะฒะฐ> --token-code <ะพะดะฝะพั€ะฐะทะพะฒั‹ะน ะฟะฐั€ะพะปัŒ>
    เชตเชจ-เชŸเชพเช‡เชฎ เชชเชพเชธเชตเชฐเซเชก เช…เช—เชพเช‰ เชฐเซ‚เชชเชฐเซ‡เช–เชพเช‚เช•เชฟเชค เช•เชฐเซ‡เชฒ เชฎเซ‹เชฌเชพเช‡เชฒ เชเชชเซเชฒเชฟเช•เซ‡เชถเชจเชฎเชพเช‚เชฅเซ€ เชฒเซ‡เชตเซ‹ เช†เชตเชถเซเชฏเช• เช›เซ‡.
  3. เช†เชฆเซ‡เชถ JSON เชจเซ‡ เช†เช‰เชŸเชชเซเชŸ เช•เชฐเชถเซ‡, เชœเซ‡เชจเชพเช‚ เชตเซเชฏเช•เซเชคเชฟเช—เชค เชซเซ€เชฒเซเชกเซเชธเชจเซ‡ เช…เชจเซเชฐเซ‚เชช เชชเชฐเซเชฏเชพเชตเชฐเชฃ เชšเชฒ AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN เชฎเชพเช‚ เชฌเชฆเชฒเชตเซเช‚ เช†เชตเชถเซเชฏเช• เช›เซ‡.

เชฎเซ‡เช‚ เชธเซเชตเชšเชพเชฒเชฟเชค เชฅเชตเชพเชจเซเช‚ เชจเช•เซเช•เซ€ เช•เชฐเซเชฏเซเช‚ ~/.bash_profile
JSON เชจเซ‡ เชชเชพเชฐเซเชธ เช•เชฐเชตเชพ เชฎเชพเชŸเซ‡, เช† เชธเซเช•เซเชฐเชฟเชชเซเชŸเชจเซ€ เชœเชฐเซ‚เชฐ เช›เซ‡ jq.

#!/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 <ะพะดะฝะพั€ะฐะทะพะฒั‹ะน ะฟะฐั€ะพะปัŒ>

เชนเซเช‚ เช†เชถเชพ เชฐเชพเช–เซเช‚ เช›เซเช‚ เช•เซ‡ เช† เชธเซ‚เชšเชจเชพ เชคเชฎเชจเซ‡ เช…เชงเชฟเช•เซƒเชค เชฆเชธเซเชคเชพเชตเซ‡เชœเซ‹ เชฆเซเชตเชพเชฐเชพ เชฒเชพเช‚เชฌเซ€ เชญเชŸเช•เชคเซ€ เชŸเชพเชณเชตเชพเชฎเชพเช‚ เชฎเชฆเชฆ เช•เชฐเชถเซ‡ ๐Ÿ˜‰

เชธเซ‹เชฐเซเชธ: www.habr.com

เชเช• เชŸเชฟเชชเซเชชเชฃเซ€ เช‰เชฎเซ‡เชฐเซ‹