MFA เจฐเจพเจนเฉ€เจ‚ AWS CLI

เจ…เฉฑเจ—เฉ‡ AWS MFA เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจ, เจ…เจคเฉ‡ เจซเจฟเจฐ AWS CLI เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ…เจคเฉ‡ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐ เจ•เจฐเจจ เจฒเจˆ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจนเฉ‹เจฃเจ—เฉ‡เฅค

เจฌเจฆเจ•เจฟเจธเจฎเจคเฉ€ เจจเจพเจฒ, เจ‡เจธ เจฒเจพเจœเจผเจฎเฉ€ เจชเฉเจฐเจ•เจฟเจฐเจฟเจ† เจจเฉ‡ เจฎเฉ‡เจฐเฉ‡ เจ•เฉฐเจฎเจ•เจพเจœเฉ€ เจฆเจฟเจจ เจฆเจพ เจ…เฉฑเจงเจพ เจนเจฟเฉฑเจธเจพ เจฒเจฟเจ†เฅค เจคเจพเจ‚ เจœเฉ‹ เจนเฉ‹เจฐ เจ…เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค AWS เจ‰เจชเจญเฉ‹เจ—เจคเจพ ๐Ÿ˜‰, เจฎเฉ‡เจฐเฉ‡ เจตเจพเจ‚เจ—, เจฎเจพเจฎเฉ‚เจฒเฉ€ เจ—เฉฑเจฒ 'เจคเฉ‡ เจ•เฉ€เจฎเจคเฉ€ เจธเจฎเจพเจ‚ เจฌเจฐเจฌเจพเจฆ เจจเจพ เจ•เจฐเจจ, เจฎเฉˆเจ‚ เจจเจฟเจฐเจฆเฉ‡เจธเจผเจพเจ‚ เจจเฉ‚เฉฐ เจ•เฉฐเจชเจพเจ‡เจฒ เจ•เจฐเจจ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

เจธเฉˆเจ‚เจกเจฌเจพเจ•เจธ เจ–เจพเจคเจพ เจธเฉˆเจŸเจฟเฉฐเจ— เจฒเจˆ เจตเฉ€ MFA เจ‡เจน เจ†เจฎ เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจฒเจพเจœเจผเจฎเฉ€ เจฒเฉ‹เฉœ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค เจธเจพเจกเฉ‡ เจจเจพเจฒ เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚ เจนเฉˆเฅค

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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹