我正在开发一个将文件加载到s3的应用程序,遵循此示例
https://github.com/awslabs/aws-sdk-ios-samples/tree/master/S3BackgroundTransfer-Sample/Objective-C
在读我的时候说
In the Amazon Cognito console, use Amazon Cognito to create a new identity
pool. Obtain the PoolID constant. Make sure the role has full permissions for
the bucket you created.
这让我感到困惑,当我去IAM角色,并管理用户时,我看到我可以添加AmazonS3FullAccess策略,但我无法指定实际的存储桶名称! 点击show policy我会弹出
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
及其只读。我有一个s3存储桶,并希望确保IAM用户可以访问它,但无法在AWS网站上弄清楚如何执行此操作。
答案 0 :(得分:0)
答案 1 :(得分:0)
预先配置的AmazonS3FullAccess策略提供对Amazon S3的完全访问权限,因此对存储桶名称没有限制。
以下是限制特定存储桶和"目录的策略示例。仅在目录名称与用户的Cognito用户ID匹配时才在S3中。
您可以使用政策的Resource
部分限制对特定广告连播/目录/文件的访问。
{
"Effect": "Allow",
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:DeleteObject"
],
"Resource": [
"arn:aws:s3:::iosdemo-upload/pictures/${cognito-identity.amazonaws.com:sub}/*"
]
}
要了解有关Amazon S3策略的更多信息,我建议您逐步完成这些步骤 http://docs.aws.amazon.com/AmazonS3/latest/dev/walkthrough1.html