AWS CLI ื“ืจืš MFA

ื‘ื”ืžืฉืš ื™ื”ื™ื• ื”ื•ืจืื•ืช ืœื”ื’ื“ืจืช AWS MFA, ื•ืœืื—ืจ ืžื›ืŸ ื”ืชืงื ื” ื•ื”ื’ื“ืจื” ืฉืœ AWS CLI.

ืœืฆืขืจื™, ื”ืœื™ืš ื—ื•ื‘ื” ื–ื” ืœืงื— ืœื™ ื—ืฆื™ ืžื™ื•ื ื”ืขื‘ื•ื“ื” ืฉืœื™. ื›ื“ื™ ืฉืžืฉืชืžืฉื™ AWS ื—ืกืจื™ ื‘ื™ื˜ื—ื•ืŸ ืื—ืจื™ื ๐Ÿ˜‰, ื›ืžื•ื ื™, ืœื ื™ื‘ื–ื‘ื–ื• ื–ืžืŸ ื™ืงืจ ืขืœ ื”ื˜ืจื™ื•ื•ื™ืืœื™, ื”ื—ืœื˜ืชื™ ืœื”ืจื›ื™ื‘ ื”ื•ืจืื•ืช.

ืืคื™ืœื• ืœื”ื’ื“ืจืช ื—ืฉื‘ื•ืŸ ืืจื’ื– ื—ื•ืœ ืžืฉืจื“ ื—ื•ืฅ ื–ื• ื‘ื“ืจืš ื›ืœืœ ื“ืจื™ืฉื” ืžื—ื™ื™ื‘ืช. ื›ื›ื” ื–ื” ืืฆืœื ื•.

ื”ืงืžืช MFA

  1. ืœื”ืชืงื™ืŸ ืืคืœื™ืงืฆื™ื” ืกืœื•ืœืจื™ืช ืชื•ืืžืช
  2. ืœืš ืœ ืงื•ื ืกื•ืœืช AWS
  3. ืื™ืฉื•ืจื™ ื”ืื‘ื˜ื—ื” ืฉืœื™ -> ื”ืงืฆื” ื”ืชืงืŸ MFA
    AWS CLI ื“ืจืš MFA
  4. ืžื›ืฉื™ืจ MFA ื•ื™ืจื˜ื•ืืœื™
    AWS CLI ื“ืจืš MFA
  5. ื‘ืฆืข ืืช ื”ื”ื•ืจืื•ืช ืฉืขืœ ื”ืžืกืš
    AWS CLI ื“ืจืš MFA
    AWS CLI ื“ืจืš MFA
  6. ืžื›ืฉื™ืจ ื•ื™ืจื˜ื•ืืœื™ ืžื•ื›ืŸ
    AWS CLI ื“ืจืš MFA

ื”ืชืงื ืช 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. ืื™ืฉื•ืจื™ ื”ืื‘ื˜ื—ื” ืฉืœื™ -> ืฆื•ืจ ืžืคืชื— ื’ื™ืฉื”
    AWS CLI ื“ืจืš MFA
  2. ื”ืขืชืง ืืช ื”ืžืคืชื— ืœืœื•ื— ืฉืœืš. ืชื–ื“ืงืง ืœื–ื” ื‘ืฉืœื‘ ื”ื‘ื
  3. $ aws configure --profile <your profile name>

AWS CLI ื“ืจืš MFA

  1. ื”ืขืชืง ืืช ื”ืžื›ืฉื™ืจ ื”ื•ื™ืจื˜ื•ืืœื™ ARN
    AWS CLI ื“ืจืš MFA
  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

ื”ื•ืกืคืช ืชื’ื•ื‘ื”