Отказано в доступе к S3 через TaskCat

#amazon-web-services #amazon-s3 #amazon-cloudformation

#amazon-web-services #amazon-s3 #amazon-облачная информация

Вопрос:

Я хочу использовать Taskcat для своих развертываний. Все хорошо, кроме (как всегда) разрешений. Я создал корзину для своих шаблонов, на которую ссылаются в файлах конфигурации. Я звоню taskcat test run , и после загрузки шаблона в мою корзину я получаю сообщение об ошибке, из-за которой stack creation произошел сбой S3 error: Access Denied .

Поскольку я могу загрузить шаблон через TaskCat, у меня есть правильное разрешение в моей учетной записи. Нужно ли мне добавлять разрешение для корзины, чтобы Cloudformation могла получить доступ к корзине?

Код ошибки:

  _            _             _   
| |_ __ _ ___| | _____ __ _| |_ 
| __/ _` / __| |/ / __/ _` | __|
| || (_| __    < (_| (_| | |_ 
 ____,_|___/_|______,_|__|
                                

version 0.9.23
[WARN   ] : ---
[WARN   ] : Linting detected issues in: mypath/template.yml
[WARN   ] :     line 14 [2001] [Check if Parameters are Used] Parameter AZone3 not used.
[INFO   ] : Will not delete bucket created outside of taskcat task-cat-bucket
[ERROR  ] : ClientError An error occurred (ValidationError) when calling the CreateStack operation: S3 error: Access Denied
For more information check http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
Exception ignored in: <function Pool.__del__ at 0x7f9593cec790>
Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/pool.py", line 268, in __del__
    self._change_notifier.put(None)
  File "/usr/lib/python3.8/multiprocessing/queues.py", line 368, in put
    self._writer.send_bytes(obj)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 200, in send_bytes
    self._send_bytes(m[offset:offset   size])
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes
    self._send(header   buf)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
OSError: [Errno 9] Bad file descriptor
Exception ignored in: <function Pool.__del__ at 0x7f9593cec790>
Traceback (most recent call last):
  File "/usr/lib/python3.8/multiprocessing/pool.py", line 268, in __del__
    self._change_notifier.put(None)
  File "/usr/lib/python3.8/multiprocessing/queues.py", line 368, in put
    self._writer.send_bytes(obj)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 200, in send_bytes
    self._send_bytes(m[offset:offset   size])
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 411, in _send_bytes
    self._send(header   buf)
  File "/usr/lib/python3.8/multiprocessing/connection.py", line 368, in _send
    n = write(self._handle, buf)
OSError: [Errno 9] Bad file descriptor
 

Ответ №1:

Когда вы запускаете CloudFormation Stack через консоль, пользователь, с которым вы вошли в систему, его учетные данные используются для всех операций.

Когда вы говорите, что можете загружать в корзину S3, это не означает, что вы также можете загружать объекты.

Поэтому проверьте свои настроенные учетные данные, если у вас есть необходимые разрешения для операции.