3

先月、Cognito と iOS SDK を使用して、アプリの s3 バケットからファイルをアップロードおよびダウンロードすることに成功しました。最近、代わりにファイルを保存する新しいバケットを作成しましたが、突然何もダウンロードできなくなりました (ただし、アップロードは引き続き機能します)。次のエラーが表示されます。

Error downloading from S3: Error Domain=com.amazonaws.AWSS3ErrorDomain
Code=1 "The operation couldn’t be completed. 
(com.amazonaws.AWSS3ErrorDomain error 1.)" UserInfo=0x157da330 
{HostId=xlPbd8nAQvYPesh0JZ5yH7LFuV562FK85qd5MEgg3DNXn9U0m1K6e8kji
CsC4NXf, Code=AccessDenied, Message=Access Denied,   
RequestId=EF39DF70A50540EA}

古いバケットとまったく同じ構成を使用していますが、必要な場所で新しいバケットの名前を変更しています。

私が使用している Unauth IAM ポリシーは次のとおりです。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "mobileanalytics:PutEvent",
        "cognito-sync:*"
      ],
      "Resource": [
        "*"
      ]
    },
    {
       "Action": [
         "s3:GetObject",
         "s3:PutObject"
       ],
       "Effect": "Allow",
       "Resource": [
         "*"
       ]
     }
  ]
}

そして、これが私のバケットポリシーです:

{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPublicRead",
            "Effect": "Allow",
            "Principal": {
                "AWS": "*"
            },
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::bucket_name/*"
        }
    ]
}

新しいバケットは古いバケットと同じリージョンです。今のところ、単に新しいバケットに変更しただけで何が変わったのか (そして、なぜアップロードは機能するのにダウンロードが機能しないのか) について完全に途方に暮れています。関連する場合、ファイルはバケットのサブディレクトリに保存されていますが、クライアントのすべてのキー文字列を更新しました。ご助力ありがとうございます。

4

1 に答える 1

1

IAM ポリシーのリソースが * に設定されているようです。IAM ポリシーでリソースについて明示してみてください

{
  "Version": "2012-10-17",
  "Statement": [
    {
        "Effect": "Allow",
        "Action": [
            "s3:ListBucket"
        ],
        "Resource": [
            "arn:aws:s3:::mybucketname"
        ]
    },
    {
        "Effect": "Allow",
        "Action": [
            "s3:PutObject",
            "s3:GetObject",
            "s3:DeleteObject"
        ]
    }
  ]
}
于 2015-03-07T17:09:38.973 に答える