AWS,iOS,cognito,混乱

时间:2015-02-15 03:23:45

标签: ios amazon-web-services amazon-s3 amazon

我正在开发一个将文件加载到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网站上弄清楚如何执行此操作。

2 个答案:

答案 0 :(得分:0)

在挖掘之后,我找到了创建自定义策略并更新其中的s3存储桶并将其附加到角色的方法。在IAM中,在信息中心下转到政策​​ - >创建政策 - >复制AWS托管策略(我建议)并在那里配置它。希望这有助于其他人,仍然认为该网站需要更好地记录。

答案 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