Доступ к .net AWS SDK запрещен при попытке составить список сегментов - PullRequest
0 голосов
/ 11 сентября 2018

У меня проблема в том, что я пытаюсь просто перечислить сегменты с помощью .net C # SDK для AWS S3, но всегда получаю исключение «Отказ в доступе». Я работаю на Windows 10.

Сообщение об ошибке: Amazon.S3.AmazonS3Exception: 'Access Denied'

Мой код C #:

namespace AwsEmptyApp1
{
    class Program
    {
        public static void Main(string[] args)
        {

            IAmazonS3 client = new AmazonS3Client();

            ListBucketsResponse response = client.ListBuckets();
            foreach (S3Bucket b in response.Buckets)
            {
                Console.WriteLine("{0}\t{1}", b.BucketName, b.CreationDate);
            }

            Console.Read();
        }
    }
}

Я попытался установить прокси вручную с помощью:

AmazonS3Config config = new AmazonS3Config();
config.RegionEndpoint = //ENDPOINT
config.ProxyHost = //Proxy http://USERNAME:PASSWORD@PROXYIP:PROXYPORT

Или:

AmazonS3Config config = new AmazonS3Config();
config.RegionEndpoint = //ENDPOINT
config.ProxyHost = //Proxy http://PROXYIP:PROXYPORT 
config.ProxyPort = 8080;
config.ProxyCredentials = new NetworkCredential(user, pw);

Любопытно, что он работает с локальным интерфейсом командной строки. aws s3api head-bucket --bucket [BUCKETNAME] работает. aws s3 ls [BUCKET] работает хорошо. Я также вижу все данные в веб-интерфейсе.

Я проверил свою роль с aws sts get-caller-identity и свои учетные данные с aws configure list, и все в порядке

Я работаю за прокси. Настройки прокси устанавливаются в моих пользовательских и системных переменных HTTP_PROXY и HTTPS_PROXY в формате http://USERNAME:PASSWORD@PROXYIP:PROXYPORT.

Мои учетные данные AWS хранятся в C:\Users\[User]\.aws\credentials

У вас есть предложения для меня?

Спасибо! :)

1 Ответ

0 голосов
/ 11 сентября 2018

Решил :)

У меня был локальный app.config файл, в котором я должен объявить, какой профиль из файла учетных данных использовать, и регион с:

<?xml version="1.0"?>
<configuration>
    <appSettings>
    <add key="AWSProfileName" value="name"/>
        <add key="AWSRegion" value="region" />
    </appSettings>
  <startup>
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
</configuration>

Затем я добавил role_arn= в файл учетных данных, и это сработало (просто пришлось установить AWSSDK.SecurityToken в NugGet, потому что его тоже не было)

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