【问题标题】:AWS , iOS, cognito, confusionAWS,iOS,认知,混乱
【发布时间】:2015-02-15 03:23:44
【问题描述】:

我正在开发一个将文件加载到 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 策略,但我无法指定实际的存储桶名称! 单击显示策略时,我会弹出此窗口

{
 "Version": "2012-10-17",
 "Statement": [
   {
    "Effect": "Allow",
    "Action": "s3:*",
    "Resource": "*"
   }
 ]
}

并且它是只读的。我有一个 s3 存储桶,想确保 IAM 用户可以访问它,但不知道如何在 AWS 网站上执行此操作。

【问题讨论】:

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


    【解决方案1】:

    好吧,在四处探索之后,我找到了创建自定义策略并更新其中的 s3 存储桶并将其附加到角色的方法。在 IAM 中,在仪表板下转到策略 -> 创建策略 -> 复制 AWS 托管策略(我推荐)并在那里配置它。希望这对其他人有所帮助,但仍然认为该网站需要更好地记录。

    【讨论】:

      【解决方案2】:

      预配置 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

      【讨论】:

        猜你喜欢
        • 2020-12-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-22
        • 2021-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多