Назад | Перейти на главную страницу

EC2ResponseError: 401 Неавторизовано с использованием модуля Saltstack boto_vpc

Я пытаюсь создать vpc с помощью модуля Saltstack и boto_vpc. Это мое состояние:

vpc_create:
  module.run:
    - name: boto_vpc.create
    - cidr_block: '10.0.0.0/24'
    - vpc_name: 'myVpc'
    - region: 'us-east-1'
    - key: 'ADJJDNEJFJGNFKFKFKIW'
    - keyid: 'SJDJNFNEJUWLLLCLCLENNRBFLGSLSLKEMFUHE'

Ключи, которые я использую, верны, но я получил эту ошибку:

[INFO    ] Running state [boto_vpc.create] at time 14:25:35.839797
[INFO    ] Executing state module.run for boto_vpc.create
[ERROR   ] EC2ResponseError: 401 Unauthorized
<?xml version="1.0" encoding="UTF-8"?>
<Response><Errors><Error><Code>AuthFailure</Code><Message>AWS was not able to validate the provided access credentials</Message></Error></Errors><RequestID>7cb74939-afda-4722-a31e-2855c5cbe16b</RequestID></Response>
[ERROR   ] {'ret': False}
[INFO    ] Completed state [boto_vpc.create] at time 14:25:35.882840
[DEBUG   ] File /var/cache/salt/minion/accumulator/49944656 does not exist, no need to cleanup.
[DEBUG   ] LazyLoaded highstate.output
[DEBUG   ] LazyLoaded nested.output
local:
----------
          ID: vpc_create
    Function: module.run
        Name: boto_vpc.create
      Result: False
     Comment: Module function boto_vpc.create executed
     Started: 14:25:35.839797
    Duration: 43.043 ms
     Changes:
              ----------
              ret:
                  False

Версия солевого стога:

Salt: 2015.5.0
         Python: 2.6.9 (unknown, Apr  1 2015, 18:16:00)
         Jinja2: 2.7.2
       M2Crypto: 0.21.1
 msgpack-python: 0.4.6
   msgpack-pure: Not Installed
       pycrypto: 2.6.1
        libnacl: Not Installed
         PyYAML: 3.10
          ioflo: Not Installed
          PyZMQ: 14.3.1
           RAET: Not Installed
            ZMQ: 3.2.5
           Mako: Not Installed

Я пробовал с aws ec2 create-vpc --cidr-block 10.0.0.0/16 и отлично работает!

Проблема была связана с ключами. (моя ошибка, такая глупая) В этом случае ключ имеет в виду AWS_SECRET_ACCESS_KEY и keyid к AWS_ACCESS_KEY_ID

Здесь несколько вещей:

  1. Вам следует использовать модуль состояния vpc, поскольку он будет выполнять действия идемпотентно: http://docs.saltstack.com/en/develop/ref/states/all/salt.states.boto_vpc.html#module-salt.states.boto_vpc
  2. Вероятно, есть ошибка с использованием ключа / идентификатора ключа. Вам не нужно его использовать. Вы можете использовать переменные среды boto или файл конфигурации boto при вызове соли. Пожалуйста, откройте сообщение об ошибке, связанной с ключом / ключевым идентификатором.

Обновление: похоже, что в 2015.5 нет модуля состояния, что прискорбно. Вы можете выполнить обратный перенос модуля состояния и обновленного исполнительного модуля на 2015.5: http://ryandlane.com/blog/2015/06/03/using-development-branch-saltstack-python-modules-in-the-stable-release/

Ошибка говорит о сбое аутентификации:

AWS was not able to validate the provided access credentials

Дважды проверьте свои учетные данные (ключ доступа / секретный ключ доступа)