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

Развертывание AWS Opsworks Chef с использованием архива S3 без публикации архива

Я пытаюсь использовать метод S3 Archive для развертывания Chef в Opsworks. Я поместил архив Chef в S3 и скопировал адрес https://s3.us-east-2.amazonaws.com/redcted/redcted.tar.gz. Я предоставил профилю экземпляра, используемому экземпляром, полный доступ на чтение / запись к «отредактированному» сегменту. Однако во время развертывания я получаю «setup_failed», а в журналах отображается 403 Forbidden при попытке доступа к архиву S3.

Я нашел некоторые Документы AWS, предлагающие сделать архив общедоступным. Однако я не хочу, чтобы мой код Chef был доступен всему миру.

Почему я получаю 403 Forbidden, хотя профиль экземпляра имеет правильные разрешения на архив?

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

К сожалению, я пошел дальше и отказался от решения Opsworks Chef. (Это даже после разговора с одним из их специалистов по Opsworks!) Я перешел к тестированию решения Opsworks Chef Automate.

Как получить доступ к файлам в ведре S3?

  1. По HTTPS работать не будет без публикации файлов. Это тот случай, если в вашем сценарии Chef вы, например, делаете:

    wget https://s3.us-east-2.amazonaws.com/redacted/redacted.tar.gz
    
  2. Чтобы использовать Роль IAM вам нужно будет скачать файлы, используя AWS-CLI. Это получит правильные разрешения и сможет загрузить файл. Например:

    aws s3 cp s3://redacted/redacted.tar.gz .
    

    Это должно работать.

Надеюсь, это поможет :)