Каким образом можно настроить двухэтапную проверку подлинности для команд AWS через CLI?
Ответ от нейросети
sobes.tech AI
Для настройки двухэтапной проверки подлинности (MFA) при работе с AWS CLI необходимо выполнить следующие шаги:
-
Настроить MFA устройство в AWS IAM — в консоли AWS в разделе IAM добавьте MFA устройство (например, виртуальное приложение Google Authenticator) к вашей учетной записи или пользователю.
-
Получать временные сессионные токены с MFA — AWS CLI не поддерживает MFA напрямую при обычном вызове, поэтому нужно использовать команду
aws sts get-session-tokenс указанием serial number MFA устройства и текущего кода:
aws sts get-session-token --serial-number arn:aws:iam::123456789012:mfa/your-user --token-code 123456
-
Использовать полученные временные креденшелы — команда вернет временные ключи доступа (AccessKeyId, SecretAccessKey, SessionToken), которые нужно использовать для последующих вызовов AWS CLI.
-
Настроить профиль AWS CLI с временными ключами — можно сохранить их в отдельный профиль или экспортировать в переменные окружения:
export AWS_ACCESS_KEY_ID=...
export AWS_SECRET_ACCESS_KEY=...
export AWS_SESSION_TOKEN=...
Таким образом, каждый раз при работе с AWS CLI с MFA нужно получать временные токены через sts get-session-token, используя код из MFA устройства.
Пример скрипта для автоматизации:
MFA_SERIAL=arn:aws:iam::123456789012:mfa/your-user
TOKEN_CODE=$(read -p "Enter MFA code: " code && echo $code)
CREDS=$(aws sts get-session-token --serial-number $MFA_SERIAL --token-code $TOKEN_CODE --output json)
export AWS_ACCESS_KEY_ID=$(echo $CREDS | jq -r '.Credentials.AccessKeyId')
export AWS_SECRET_ACCESS_KEY=$(echo $CREDS | jq -r '.Credentials.SecretAccessKey')
export AWS_SESSION_TOKEN=$(echo $CREDS | jq -r '.Credentials.SessionToken')
Это обеспечит двухэтапную проверку при работе с AWS CLI.