рдЕрд░реНрдХреЛ AWS MFA рд╕реЗрдЯрдЕрдк рдЧрд░реНрди рд░ рддреНрдпрд╕рдкрдЫрд┐ AWS CLI рд╕реНрдерд╛рдкрдирд╛ рд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреЗ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╣реБрдиреЗрдЫрдиреНред
рджреБрд░реНрднрд╛рдЧреНрдпрд╡рд╢, рдпреЛ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рд▓реЗ рдорд▓рд╛рдИ рдореЗрд░реЛ рдХрд╛рдордХреЛ рджрд┐рдирдХреЛ рдЖрдзрд╛ рд▓рд┐рдпреЛред рддрд╛рдХрд┐ рдЕрдиреНрдп рдЕрд╕реБрд░рдХреНрд╖рд┐рдд AWS рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВ ЁЯШЙ, рдо рдЬрд╕реНрддреИ, рддреБрдЪреНрдЫ рдХреБрд░рд╛рдорд╛ рдмрд╣реБрдореВрд▓реНрдп рд╕рдордп рдмрд░реНрдмрд╛рдж рдирдЧрд░реНрдиреБрд╣реЛрд╕реН, рдореИрд▓реЗ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВ рд╕рдВрдХрд▓рди рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВред
рд╕реНрдпрд╛рдиреНрдбрдмрдХреНрд╕ рдЦрд╛рддрд╛ рд╕реЗрдЯрд┐рдЩрдХреЛ рд▓рд╛рдЧрд┐ рдкрдирд┐
MFA рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ
- рд╕реЗрдЯ
рдЙрдкрдпреБрдХреНрдд рдореЛрдмрд╛рдЗрд▓ рдПрдк - рдЬрд╛рдиреБрд╣реЛрд╕реН
AWS рдХрдиреНрд╕реЛрд▓ рдореЗрд░реЛ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдорд╛рдгрд╣рд░реВ -> MFA рдпрдиреНрддреНрд░ рдЕрд╕рд╛рдЗрди рдЧрд░реНрдиреБрд╣реЛрд╕реН
- рднрд░реНрдЪреБрдЕрд▓ MFA рдпрдиреНрддреНрд░
- рдкрд░реНрджрд╛ рдорд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реБ рдкрд╛рд▓рдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
- рднрд░реНрдЪреБрдЕрд▓ рдЙрдкрдХрд░рдг рддрдпрд╛рд░ рдЫ
AWS CLI рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрджреИ
рдирд╛рдорд┐рдд рдкреНрд░реЛрдлрд╛рдЗрд▓ рд╕реЗрдЯрдЕрдк рдЧрд░реНрджреИ
рдореЗрд░реЛ рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рдорд╛рдгрд╣рд░реВ -> рдкрд╣реБрдБрдЪ рдХреБрдЮреНрдЬреА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН
- рддрдкрд╛рдИрдВрдХреЛ рдХреНрд▓рд┐рдкрдмреЛрд░реНрдбрдорд╛ рдХреБрдЮреНрдЬреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рддрдкрд╛рдИрдВрд▓рд╛рдИ рдЕрд░реНрдХреЛ рдЪрд░рдгрдорд╛ рдпрд╕рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдкрд░реНрдиреЗрдЫ
$ aws configure --profile <your profile name>
MFA рдорд╛рд░реНрдлрдд AWS CLI
- рднрд░реНрдЪреБрдЕрд▓ рдЙрдкрдХрд░рдг ARN рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реН
aws sts get-session-token --profile <╨╕╨╝╤П ╨┐╤А╨╛╤Д╨╕╨╗╤П> --serial-number <ARN ╨▓╨╕╤А╤В╤Г╨░╨╗╤М╨╜╨╛╨│╨╛ ╤Г╤Б╤В╤А╨╛╨╣╤Б╤В╨▓╨░> --token-code <╨╛╨┤╨╜╨╛╤А╨░╨╖╨╛╨▓╤Л╨╣ ╨┐╨░╤А╨╛╨╗╤М>
рдПрдХ рдкрдЯрдХрдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдкрд╣рд┐рд▓реЗ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдореЛрдмрд╛рдЗрд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧрдмрд╛рдЯ рд▓рд┐рдиреБ рдкрд░реНрдЫред- рдЖрджреЗрд╢рд▓реЗ JSON рдЖрдЙрдЯрдкреБрдЯ рдЧрд░реНрдиреЗрдЫ, рдЬрд╕рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдХреНрд╖реЗрддреНрд░рд╣рд░реВ рд╕рдореНрдмрдиреНрдзрд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_SESSION_TOKEN рдорд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреБрдкрд░реНрдЫред
рдореИрд▓реЗ рдорд╛рд░реНрдлрдд рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЧрд░реНрдиреЗ рдирд┐рд░реНрдгрдп рдЧрд░реЗрдВ ~/.bash_profile
JSON рдкрд╛рд░реНрд╕ рдЧрд░реНрди, рдпреЛ рд▓рд┐рдкрд┐ рдЖрд╡рд╢реНрдпрдХ рдЫ
#!/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