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

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•