Вам не нужно указывать учетные данные при использовании роли IAM в экземпляре EC2.
Я вижу, что вы получаете Access Denied
, что означает, что ваша программа Go может выбирать кредиты профиля EC2, но, вероятно, из-за отсутствияpermissions, он получает эту ошибку.
Читая ваш код, кажется, вы хотите записать объект в S3. Можете ли вы убедиться, что вы указали s3:Get*
, s3:List*
, s3:PutObject
, s3:PutObjectAcl
для своей роли IAM, и что нет явного запрета политики S3 Bucket?