我正在尝试使用 react-native-s3-upload 包将文件上传到我的 React Native 应用程序中的 S3 存储桶。这仅在我在 S3 中将“阻止公共访问”设置为“关闭”时才有效。否则我得到<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>
. 随放置请求提供的访问密钥和秘密密钥适用于属于具有 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。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句