amazon-web-services - AWS 将文件上传到 S3 访问被拒绝,具有完全 s3 访问权限的用户 - React Native
问题描述
我正在尝试使用 react-native-s3-upload 包将文件上传到我的 React Native 应用程序中的 S3 存储桶。这仅在我在 S3 中将“阻止公共访问”设置为“关闭”时才有效。否则我得到<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>
. 随 put 请求提供的访问密钥和秘密密钥适用于属于具有 AmazonS3FullAccess 的组的 IAM 用户。我也将此策略附加到存储桶:
{
"Version": "2012-10-17",
"Id": "Policyxxxxxxx",
"Statement": [
{
"Sid": "Stmtxxxxxxx",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::xxxxxxx:user/<user name>"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::<bucket name>"
}
]
}
我尝试了各种解决方案,但似乎没有任何效果。如果我用虚拟文本替换密钥和访问密钥,那么它会返回<Error><Code>InvalidAccessKeyId</Code><Message>
,所以它肯定是用密钥让我登录,但似乎忽略了权限。
解决方案
如果您的 IAM 用户具有 AmazonS3FullAccess 策略,它应该可以很好地连接到存储桶。
我认为问题在于默认对象 acl 是公共的,
https://www.npmjs.com/package/react-native-s3-upload
acl - 此对象的访问控制列表。默认为公开阅读
您需要将其设置为private。
推荐阅读
- xml - 解析 ChildNodes 的 ChildNodes
- r - 尝试部署闪亮的应用程序时出错
- c# - 如何设置获取;放; 来自另一个脚本的值
- c# - 我正在尝试将数据插入到对象的二维数组中
- r - R - 对每个学习者具有不同特征子集的超级学习者的建议?
- c# - 如何在列表中查找类对象
通过一个或多个类字段? - javascript - 用 puppeteer 写一个 csv 文件
- java - IllegalStateException:请考虑在值和/或键反序列化器中配置“ErrorHandlingDeserializer”
- python-3.x - Python requests.Session() 没有更新所有 cookie?
- javascript - Redux:useSelector 值未定义,尽管它出现在 devTools 中