У меня есть корневая учетная запись 1234 (идентификатор учетной записи), и у меня включена аутентификация с поддержкой MFA, мое имя пользователя myuser12.Я мог войти в систему с идентификатором учетной записи и моим именем пользователя, а также с моим паролем.И он запросит код токена MFA.Однажды я ввел код токена.Я мог видеть экземпляры под моей учетной записью root для определенного местоположения.
Я мог бы переключить роль на новую учетную запись (5678) со своей ролью (в моем случае роль одинакова для всех учетных записей) вместе с любым псевдонимом для этого.Когда роль переключателя завершена, я смог увидеть все экземпляры под новой учетной записью в определенных местах.
Все нормально через веб-консоль.Когда я пытаюсь получить к ним доступ через CLI, я не могу получить результат для новой учетной записи (5678).Но он работает для учетной записи 1234.
Account ID - Location - No. of instances
1234 - us-east-1 - 5 instances
1234 - eu-west-3 - 2 instances
5678 - eu-north-1 - 5 instances
5678 - eu-west-1 - 5 instances
и т. Д.
Мой начальный .aws/config
контент
[profile default]
region = us-east-1
output = json
.aws/credentials
контент,
[default]
aws_access_key_id = accesskeyIdFromDownloadedCSV
aws_secrect_access_key = secrectAccessKeyFromDownloadedCSV
Теперь, если я попытаюсь запросить какой-либо экземпляр, я получу ошибку, так как я не сгенерировал токен ключа доступа с MFA.
aws rds describe-db-instances --query 'DBInstances[?DBInstanceClass==`db.m3.large`]' --profile default --no-verify-ssl
Итак, я должен получить свой MFA arnurl и получите идентификатор ключа мгновенного доступа, секретный ключ доступа и токен сеанса.
aws iam list-mfa-devices --user-name myuser12
Я получил команду «SerialNumber» (MFA arn url) сверху, которая понадобится мне позже для генерации токена сеанса.
Теперь,
aws sts get-session-token --serial-number arn:aws:iam::1234:mfa/myuser12 --token-code 123456
Примечание: 123456
(токен-код), сгенерированный из моего виртуального устройства MFA
Теперь у меня есть SessionToken (aws_session_token), SecrectAccessKey (aws_secret_access_key), AccessKeyId (aws_access_key_id) сверху команда вместе с отметкой времени истечения.
Итак, я обновил файлы .aws/config
и .aws/credential
на основе новых учетных данных.
.aws/config
содержимое файла
[profile default]
region = us-east-1
output = json
[profile newacc]
region = eu-west-1
role_arn = arn:aws:iam::5678:role/myRole
source_profile default
output = json
.aws/credentials
содержимое,
[default]
aws_access_key_id = NewIdFromMFACommand
aws_secrect_access_key = NewKeyFromMFACommand
aws_aws_session_token = TokenFromMFACommand
[newacc]
region = eu-west-1
role_arn = arn:aws:iam::5678:role/myRole
source_profile default
output = json
Теперь я могу выполнить свою начальную команду
aws rds describe-db-instances --query 'DBInstances[?DBInstanceClass==`db.m3.large`]' --profile default --no-verify-ssl
И получить список db.m3.large
экземпляров типа.
Но, когда я пытаюсь с--profile newacc
Я ничего не получаю.Я действительно запутался, что менять и где менять?