5 aws Установка и настройка aws-mfa

Thank you for reading this post, don't forget to subscribe!

AWS Multi‑Factor Authentication (AWS MFA) обес­пе­чи­ва­ет допол­ни­тель­ный уро­вень без­опас­но­сти, кото­рый мож­но исполь­зо­вать в сре­де AWS. Мож­но акти­ви­ро­вать AWS MFA для ваше­го акка­ун­та AWS, а так­же для отдель­ных поль­зо­ва­те­лей AWS Identity and Access Management (IAM), кото­рых вы созда­е­те под сво­им аккаунтом.

Суще­ству­ет два основ­ных спо­со­ба выпол­нить аутен­ти­фи­ка­цию с помо­щью устрой­ства AWS MFA.

  • Поль­зо­ва­те­ли Кон­со­ли управ­ле­ния AWS. При вклю­чен­ной MFA поль­зо­ва­те­лю, вхо­дя­ще­му на сайт AWS, пред­ла­га­ет­ся ука­зать свои имя поль­зо­ва­те­ля и пароль (пер­вый фак­тор – зна­ние), после чего запра­ши­ва­ет­ся код аутен­ти­фи­ка­ции с устрой­ства AWS MFA (вто­рой фак­тор – вла­де­ние). Все сай­ты AWS, где тре­бу­ет­ся вход, напри­мер Кон­соль управ­ле­ния AWS, пол­но­стью под­дер­жи­ва­ют AWS MFA. Мож­но так­же исполь­зо­вать AWS MFA сов­мест­но с функ­ци­ей S3 Secure Delete для допол­ни­тель­ной защи­ты хра­ни­мых в Amazon S3 версий.
  • Поль­зо­ва­те­ли API AWS. Мож­но обес­пе­чить при­ну­ди­тель­ное выпол­не­ние MFA путем добав­ле­ния свя­зан­ных с MFA огра­ни­че­ний в поли­ти­ки IAM. Для полу­че­ния досту­па к защи­щен­ным таким обра­зом API и ресур­сам раз­ра­бот­чи­ки могут запра­ши­вать вре­мен­ные дан­ные для досту­па и пере­да­вать допол­ни­тель­ные пара­мет­ры MFA в свои запро­сы API AWS Security Token Service (STS) – сер­вис, созда­ю­щий вре­мен­ные дан­ные для досту­па. Про­ве­рен­ные с помо­щью MFA вре­мен­ные дан­ные для досту­па мож­но исполь­зо­вать для вызо­ва API и ресур­сов, защи­щен­ных с исполь­зо­ва­ни­ем MFA. При­ме­ча­ние. Сер­вис AWS STS и API, доступ к кото­рым защи­щен с помо­щью MFA, в дан­ное вре­мя не под­дер­жи­ва­ют ключ без­опас­но­сти U2F как MFA.

 

Ста­вит­ся ути­ли­та просто:

https://github.com/broamski/aws-mfa

pip install aws-mfa

после того как созда­ли access key и поста­ви­ли AWS CLI

и запу­сти­ли aws configure, пра­виль­но отве­тив на вопро­сы и забив  Access Key ID и Secret Access Key(показывается толь­ко 1 раз)

созда­дут­ся 2 файл:
.aws/config
.aws/credentials

они будут созда­ны для default про­фи­ля, луч­ше все­го изме­нить имя чтоб не объе­бать­ся и не пере­пу­тать профиля.

поэто­му когда запус­ка­ем aws configure то луч­ше добав­лять имя про­фи­ля --profile user1   чтоб коман­да выгля­де­ла сле­ду­ю­щим образом:

aws configure --profile user1

смот­рим наш конфиг:

cat .aws/config

тут имя про­фи­ля mfa-profile

теперь смот­рим наши креды(учётные данные)

cat .aws/credentials

long-term добав­ля­ем как в инструкции:
https://github.com/broamski/aws-mfa

после чего можем запус­кать нашу ути­ли­ту что­бы на опре­де­лён­ное вре­мя мы полу­чи­ли доступ:
aws-mfa --duration 43200 --device arn:aws:iam::124546325678898729:mfa/mid@dev.test --profile test-mad

после этой коман­ды появит­ся запрос ввод кода (смот­рим его на мобиль­ни­ке в гуг аутентификаторе)

после смот­рим ещё раз в наш файл с кредами:

cat .aws/credentials

как видим доба­вил­ся [test-mid]

всё гото­во, теперь можем спо­кой­но рабо­тать напри­мер смот­ри какие есть s3 бакеты:
aws s3 ls --profile mfa-profile

обра­ща­ем вни­ма­ние что в каче­стве про­фай­ла исполь­зу­ем не test-mid  а mfa-profile