在过去的两天里,我一直在努力解决这个问题。我正在尝试将文件放入私有子网的S3存储桶中。下面是我的代码:
var s3Config = new AmazonS3Config() { ServiceURL = "https://myVPCnameamazonaws.com" };
using (var cli = new AmazonS3Client(
awsAccessKey,
awsSecretKey,
s3Config))
{
PutObjectRequest req = new PutObjectRequest()
{
BucketName = "test",
ContentType = "image/jpg",
InputStream = st,
Key = fileName
};
var response = cli.PutObject(req);在我的代码的最后一行,我得到一个错误: HttpErrorResponseException:远程服务器返回了一个错误:(403)禁止。内部异常:
WebException:远程服务器返回错误:(403)禁止。

我不确定我应该写什么代码来消除这个错误。我正在使用AWS工具包。Visual studio 2019..net framework 4.7.2
在这方面的任何帮助都将非常感谢。
发布于 2021-10-29 00:17:04
问题似乎是AccessDenied响应,它表明您的请求已到达S3,但您的凭据无权将对象上载到该S3存储桶。
检查与您的AWS凭证关联的IAM策略。他们是否拥有必要的S3权限?
适当的策略应该包括如下内容(假设您的存储桶名称为mybucket):
{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":[
"s3:PutObject",
"s3:PutObjectAcl"
],
"Resource":"arn:aws:s3:::mybucket/*"
}
]
}https://stackoverflow.com/questions/69760934
复制相似问题