簡體   English   中英

嘗試列出存儲桶時拒絕對.net AWS SDK的訪問

[英]Access denied for .net AWS SDK when trying to list buckets

我遇到了一個問題,我試圖使用適用於AWS S3的.net C#SDK來簡單列出存儲桶,但是我總是會遇到“訪問被拒絕”異常。 我在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);

奇怪的是,它正在使用本地CLI。 aws s3api head-bucket --bucket [BUCKETNAME]正在工作。 aws s3 ls [BUCKET]工作正常。 我也可以在網絡界面中看到所有數據。

我用aws sts get-caller-identity檢查了我的角色,並用aws configure list檢查了我的憑據,一切正常。

我正在代理工作。 代理設置在我的用戶和系統變量HTTP_PROXYHTTPS_PROXY中設置,格式為http://USERNAME:PASSWORD@PROXYIP:PROXYPORT

我的AWS憑證存儲在C:\\Users\\[User]\\.aws\\credentials

您對我有什么建議嗎?

謝謝! :)

解決了:)

我有一個本地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中安裝AWSSDK.SecurityToken ,因為它也丟失了)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM