MFA āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§‡ AWS CLI

āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ AWS MFA āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻžāĻ° āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° AWS CLI āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻāĻŦāĻ‚ āĻ•āĻ¨āĻĢāĻŋāĻ—āĻžāĻ° āĻ•āĻ°āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻĨāĻžāĻ•āĻŦā§‡ā§ˇ

āĻĻā§āĻ°ā§āĻ­āĻžāĻ—ā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻ‡ āĻŦāĻžāĻ§ā§āĻ¯āĻ¤āĻžāĻŽā§‚āĻ˛āĻ• āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻŸāĻŋ āĻ†āĻŽāĻžāĻ° āĻ•āĻžāĻœā§‡āĻ° āĻĻāĻŋāĻ¨ā§‡āĻ° āĻ…āĻ°ā§āĻ§ā§‡āĻ• āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻ¯āĻžāĻ¤ā§‡ āĻ…āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ…āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ AWS āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°ā§€āĻ°āĻž 😉, āĻ†āĻŽāĻžāĻ° āĻŽāĻ¤ā§‹, āĻ¤ā§āĻšā§āĻ› āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻŽā§‚āĻ˛ā§āĻ¯āĻŦāĻžāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻ¨āĻˇā§āĻŸ āĻ¨āĻž āĻ•āĻ°ā§‡, āĻ†āĻŽāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ¸āĻ‚āĻ•āĻ˛āĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§‡āĻ›āĻŋāĨ¤

āĻāĻŽāĻ¨āĻ•āĻŋ āĻ¸ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŦāĻ•ā§āĻ¸ āĻ…ā§āĻ¯āĻžāĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻ¸ā§‡āĻŸāĻŋāĻ‚ āĻāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻŽāĻāĻĢāĻ āĻāĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ§ā§āĻ¯āĻ¤āĻžāĻŽā§‚āĻ˛āĻ• āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨āĨ¤ āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻāĻ­āĻžāĻŦā§‡āĻ‡ āĻšāĻ¯āĻŧāĨ¤

āĻāĻŽāĻāĻĢāĻ āĻ¸ā§‡āĻŸ āĻ†āĻĒ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡

  1. āĻ‡āĻ¨āĻ¸ā§āĻŸāĻ˛ āĻ•āĻ°ā§āĻ¨ āĻ¸āĻžāĻŽāĻžā§āĻœāĻ¸ā§āĻ¯āĻĒā§‚āĻ°ā§āĻŖ āĻŽā§‹āĻŦāĻžāĻ‡āĻ˛ āĻ…ā§āĻ¯āĻžāĻĒ
  2. āĻ¯āĻžāĻ“ AWS āĻ•āĻ¨āĻ¸ā§‹āĻ˛
  3. āĻ†āĻŽāĻžāĻ° āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻļāĻ‚āĻ¸āĻžāĻĒāĻ¤ā§āĻ° -> āĻāĻŽāĻāĻĢāĻ āĻĄāĻŋāĻ­āĻžāĻ‡āĻ¸ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻ•āĻ°ā§āĻ¨
    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

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨