2017-07-19 42 views
9

Web Identity FederationでAWS IAMとS3アカウントをセットアップするために私はthis blogに従っています。私は、セッション資格情報とトークンをすべて認証して受信することができます。私はオブジェクトをダウンロードしてアップロードすることもできます。しかし、私は取得しています:AWS S3 ListMultipartUploads:アクセスが拒否されました

次ListMultipartUploads要求に

アクセス拒否:

var request = new ListMultipartUploadsRequest() 
{ 
    BucketName = bucketName, 
    Prefix = $"{UserId}/" 
}; 

var response = await s3Client.ListMultipartUploadsAsync(request); 

私のIAMロールに接続されたアクセスポリシーがある:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:AbortMultipartUpload", 
       "s3:DeleteObject", 
       "s3:GetObject", 
       "s3:PutObject" 
      ], 
      "Resource": "arn:aws:s3:::mybucket/${myidentityprovider:userId}/*" 
     }, 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:ListBucket", 
       "s3:ListBucketMultipartUploads" 
      ], 
      "Resource": [ 
       "arn:aws:s3:::mybucket" 
      ], 
      "Condition": { 
       "StringLike": { 
        "s3:prefix": "${myidentityprovider:userId}/" 
       } 
      } 
     } 
    ] 
} 

をご覧のとおり、私は "s3:ListBucketMultipartUploads"というパーミッションを持っているので、ユーザーバケット上でListMultiPartUploadsを実行できる必要があります。私は間違って何をしていますか?私はあなたの接頭文でエラーが表示

+0

おそらく終わりのスラッシュなしでプレフィックスを試してみてください。 ([特定の接頭辞に従ってバケット内のオブジェクトのリストを取得できるようにする](http://docs.aws.amazon.com/AmazonS3/latest/dev/amazon-s3-policy-keys。 html#condition-key-bucket-ops-2)) –

+0

接頭辞スラッシュなしで試してみましたが、依然としてアクセス拒否が返されます。 – tura08

+1

プレフィックス条件を削除すると正しく動作しますか? –

答えて

0

それは配列である必要があり、

"S3:接頭辞":[ "$ {myidentityprovider:userIdを}/*"]

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Effect": "Allow", 
     "Action": [ 
      "s3:AbortMultipartUpload", 
      "s3:DeleteObject", 
      "s3:GetObject", 
      "s3:PutObject" 
     ], 
     "Resource": "arn:aws:s3:::mybucket/${myidentityprovider:userId}/*" 
    }, 
    { 
     "Effect": "Allow", 
     "Action": [ 
      "s3:ListBucket", 
      "s3:ListBucketMultipartUploads" 
     ], 
     "Resource": [ 
      "arn:aws:s3:::mybucket" 
     ], 
     "Condition": { 
      "StringLike": { 
       "s3:prefix": ["${myidentityprovider:userId}/*"] 
      } 
     } 
    } 
]} 
+0

これはどちらも動作しません – tura08

関連する問題