2016-09-02 2 views
1

Мне не удается выполнить команду AWS CLI из cmd.exe, выполняемую как системная учетная запись.Windows AWS CLI «Не удалось найти учетные данные» при работе в качестве учетной записи системы

Согласно отладочный вывод, похоже, проблема может быть с получением 404 при попытке получить IAM-Роль EC2 машины:

C:\>aws --debug s3 ls 
2016-09-02 15:47:31,101 - MainThread - botocore.credentials - DEBUG - Looking for credentials via: iam-role 
2016-09-02 15:47:35,608 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - INFO - Starting new HTTP connection (1): au-aws-igw.analytics.pvt 
2016-09-02 15:47:35,674 - MainThread - botocore.vendored.requests.packages.urllib3.connectionpool - DEBUG - "GET http://169.254.169.254/latest/meta-data/iam/security-credentials/ HTTP/1.1" 404 345 

реплицировать вопрос:

  1. Скачать PsExec в C: \ Temp of EC2 (https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx)
  2. Открыть cmd и запустить C: \ Temp \ PSTools \ PsExec.exe -i -s cmd.exe (откроется cmd как локальная система)
  3. Запустите любую команду 'aws' (например, AWS s3 Ls)

Если только удаленный в EC2 и запустить CMD (не как система счета), то работает «АМС s3 LS», как и ожидалось ... т.е. Список всех s3 ковши, которые EC2 IAM Роль имеет доступ на просмотр.

ответ

0

Проблема была связана с прокси-сервером для системной учетной записи, поэтому не удалось получить локальный URL-адрес метаданных EC2.

Было довольно сложно найти, как было скрыто в реестре на окне окна. Мне пришлось открыть regedit как системную учетную запись и перейти в IE и найти ее там. Просто удалил этот ключ и отлично работал.

0

Прочитайте это: http://windowsitpro.com/systems-management/psexec

А может быть, попробовать использовать -u, чтобы указать пользователю на поле для запуска вашей команды?

Я собираюсь угадать, что это проблема с отсутствием набора переменных окружения, пути к вашей конфигурации AWS или чего-то другого.

Независимо от того, какой пользователь вы можете удалять и запускать cmd as, передайте это имя пользователя в параметре -u для команды psexec.exe, и я ожидаю, что он будет работать.

+0

Я не хочу пропускать пользователя, он должен просто использовать локальную систему. Также не хотите и не можете использовать aws config (потому что Local System и нужно использовать роль IAM вместо ключей) ... нужно использовать роль IAM, назначенную EC2. – pagemedias