Tag: s3亚马逊 ognito

找不到Cognito S3 IdentityPool

我收到错误消息“IdentityPool \'欧共体 – 1:xxxxxx – xxxx – xxxx – xxxx – xxxxxxxxxxxx \'找不到”。 同时试图列出所有的S3桶。 这里是我的代码: ListBuckets: function() { aws.config.region = 'eu-central-1'; // 1. Enter your region aws.config.credentials = new aws.CognitoIdentityCredentials({ IdentityPoolId: 'eu-central-1:xxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' // 2. Enter your identity pool }); aws.config.credentials.get(function(err) { if (err) console.log("Error: " + err); console.log(aws.config.credentials); var s3 = new aws.S3(); s3.listBuckets(function(err, data) […]

基于Cognito ID的S3文件夹访问的IAM策略

我创build了IAM策略,允许Cognito用户写入我的S3存储桶,但是我想根据他们的Cognito ID将它们限制到文件夹。 我在这里遵循了亚马逊的指示,并创build了如下所示的策略: { "Effect": "Allow", "Action": ["s3:PutObject","s3:GetObject"], "Resource": [ "arn:aws:s3:::mybucket/myappfolder/${cognito-identity.amazonaws.com:sub}*" ] } 但是当我尝试使用AWS iOS SDK的v2进行上传时,我得到一个访问被拒绝的错误。 如果我修改了资源的最后一个path组件,用我从SDK的AWSCognitoCredentialsProvider获得的显式identityId值来replace${cognito-identity.amazonaws.com:sub} 。 { "Effect": "Allow", "Action": ["s3:PutObject","s3:GetObject"], "Resource": [ "arn:aws:s3:::mybucket/myappfolder/us-east-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx*" ] } 我的理解是,这些应该等同于相同的东西。 我是否在我的政策中遗漏了某些内容,或者是否应该在我的上传请求中使用不同的path? ** 更新 ** 我原本在iOS中有这个问题,所以今天晚上我尝试在node.js中做同样的事情,结果是相同的。 以下是我在节点中使用的简单代码: var s3 = new AWS.S3(); AWS.config.region = 'us-east-1'; AWS.config.credentials = new AWS.CognitoIdentityCredentials(AWSParams); AWS.config.credentials.get(function (err) { if (!err) { console.log("Cognito Identity […]