Роль AWS EC2 IAM для доступа к S3 не работает - PullRequest
0 голосов
/ 12 июня 2019

У меня есть сайт asp.net, работающий на экземпляре EC2, этому экземпляру назначена роль IAM с помощью политики AmazonS3FullAccess.Это прекрасно работает для веб-сайта, где я могу загружать, удалять и получать заранее заданные URL-адреса для изображений, хранящихся в моем контейнере S3.

В том же экземпляре EC2 у меня также есть API asp.net для мобильного приложения для доступа к различнымданные.Когда я пытаюсь получить предварительно назначенный URL-адрес для изображения, хранящегося в S3, используя API, выдается следующее сообщение об ошибке:

Object reference not set to an instance of an object.

at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.FetchCredentials()
at Amazon.Runtime.DefaultInstanceProfileAWSCredentials.GetCredentials()
at Amazon.S3.AmazonS3Client.GetPreSignedURLInternal(GetPreSignedUrlRequest request, Boolean useSigV2Fallback)

Код для получения предварительно назначенной ссылки одинаков для веб-сайта и API

Dim bucketRegion = RegionEndpoint.EUWest1
Dim s3Client As New AmazonS3Client(bucketRegion)
Dim request1 = New GetPreSignedUrlRequest
request1.BucketName = "mybucketname"
request1.Key = fileName
request1.Expires = DateTime.Now.AddMinutes(1080)
dim signedURL = s3Client.GetPreSignedURL(request1)

Ошибка выдается в строке GetPreSignedURL.

Я не могу понять, почему разрешения роли IAM работают для веб-сайта, но не API, размещенный на том же сервере.

...