S3 на EC2 с IAM: ошибка NoCredentialProviders: в ​​цепочке нет действительных поставщиков. Устаревшее - PullRequest
0 голосов
/ 11 ноября 2019

Мое приложение использует s3 и работает на EC2. IAM настроен на экземпляре, поэтому аутентификация происходит без ключа (без ключа доступа и секретного ключа).

Я могу загрузить или загрузить файл, используя aws cli. Однако, когда я пытался выполнить операцию загрузки с помощью aws-sdk-go, я получаю сообщение об ошибке ниже:

AccessDenied: доступ запрещенкод состояния: 403, идентификатор запроса: F945BDB5410E1A00, идентификатор хоста: m74jJ8z / AEzdkaJkWKdIqPEwPIYPZfWnLLfa5UpEwHwaBcXOuXTPY1aw / u / 5HGralKg + ewAWEJA = *1001* * * * * * * **https://github.com/aws/aws-sdk-go/issues/430, но получил ошибку выше.

Ниже приведен мой код:

s3UploadPath = config.GetString("upload assets to s3.bucket")
s3Config := aws.NewConfig()
s3Config.CredentialsChainVerboseErrors = aws.Bool(true)

session, err := session.NewSession(s3Config)
if err != nil {
    Logger.Fatal("Error initializing s3 uploader. " + err.Error())
    os.Exit(0)
}

// the upload code
uploader = s3manager.NewUploader(session)
res, err := uploader.Upload(&s3manager.UploadInput{
    Bucket: aws.String(s3UploadPath),
    Key:    aws.String(filename),
    Body:   f,
})
if err != nil {
    log.Fatal("error on upload. " + err.Error())
}

// then continue with the download code

Прикрепленный снимок экрана, показывающий, что операции загрузки и выгрузки выполняются успешно через aws cli

enter image description here

Я делаю это неправильно?

1 Ответ

1 голос
/ 12 ноября 2019

Вам не нужно указывать учетные данные при использовании роли IAM в экземпляре EC2.

Я вижу, что вы получаете Access Denied, что означает, что ваша программа Go может выбирать кредиты профиля EC2, но, вероятно, из-за отсутствияpermissions, он получает эту ошибку.

Читая ваш код, кажется, вы хотите записать объект в S3. Можете ли вы убедиться, что вы указали s3:Get*, s3:List*, s3:PutObject, s3:PutObjectAcl для своей роли IAM, и что нет явного запрета политики S3 Bucket?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...