2012-03-12 5 views
1

AWS S3の使用。ビデオと写真のファイルが混在しています。それらのすべてはそれぞれのサブディレクトリにあります。すべてのファイルはプライベートに設定されています。私はビデオファイルにアクセスしようとするとAccessDeniedを取得しています。他のファイルは問題ありません。ビデオでAccessDeniedを取得するのはなぜですか?

私は無駄にこれを試してみました:

{ 
"Id": "Policy1331547131417", 
"Statement": [ 
    { 
    "Sid": "Stmt1331546963174", 
    "Action": [ 
     "*" 
    ], 
    "Effect": "Allow", 
    "Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/videos/*", 
    "Principal": { 
     "AWS": [ 
     "*" 
     ] 
    } 
    }, 
    { 
    "Sid": "Stmt1331547083926", 
    "Action": [ 
     "*" 
    ], 
    "Effect": "Allow", 
    "Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/photos/*", 
    "Principal": { 
     "AWS": [ 
     "*" 
     ] 
    } 
    }, 
    { 
    "Sid": "Stmt1331547130024", 
    "Action": [ 
     "*" 
    ], 
    "Effect": "Allow", 
    "Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/banners/*", 
    "Principal": { 
     "AWS": [ 
     "*" 
     ] 
    } 
    } 
] 
} 

私のバケットポリシーは、ビデオ、写真、およびバナーも同じです。 ACLのアクセス権もすべてのファイルで同じです。では、なぜ私のビデオディレクトリからファイルにアクセスできないのですか?

+0

つまり、どのツール(JavaScriptプレーヤーなど)で動画ファイルにアクセスできますか? –

答えて

0

実際にどのツール、サービス、APIを使用してビデオファイルにアクセスしようとしていますか?

実際には、アクセス方法には、実際にはs3:ListBucketアクションの許可が必要な場合があります。 JavaScriptビデオプレーヤーウィジェットは、暗黙のうちに、問題の動画のさまざまなファイル形式を探して、ユーザーにそれぞれの選択肢を提示する場合があります。Operations on Buckets(例:ListBucket)とOperations on Objects(例:GetObject)の違いを認識する必要があります。私の答えはProblems specifying a single bucket in a simple AWS user policyです。

ビデオバケットポリシーをそれに応じて拡張すると、この問題が改善される可能性があります。 (ポリシー断片のみ): - 、前述したように

{ 
"Statement": [ 
    { 
    "Action": [ 
     "s3:ListBucket" 
    ], 
    "Effect": "Allow", 
    "Resource": "arn:aws:s3:::actual_bucket_name_here/uploads/users/*/videos", 
    "Principal": { 
     "AWS": [ 
     "*" 
     ] 
    } 
    } 
] 
} 

このポリシー断片はあなたのみそこと両断片が必要とされるオブジェクトに対処バケット、アドレスことに注意してくださいこの微妙な違いは、私の答えであるProblems specifying a single bucket in a simple AWS user policyで説明されています。

+0

私はJwPlayerというウェブプレーヤーを介してビデオにアクセスしようとしています。同じビデオディレクトリ(ビデオファイルがある場所)には、サムネイルがあります。これらのサムネイルにアクセスすることはできません。親指については、という要素 –

+0

PSを使用していました。私は自分の行動を '' * ''に変更しました。上記の私の編集を参照してください。それでも同じ問題。 '' Action'' '' * * ''が 'ListBucket'アクションのために必要なのでしょうか? –

+0

@ChristianFazzini:アクションを '*'に変更すると、リソースが手元にあるため、実際には、ListBucket_が含まれます**しかし**、あなたのポリシーフラグメントはオブジェクトを_boxide_バケットにアドレス指定し、バケット自体には 'ListBucket'が必要です。 [私の他の関連する問題へのリンクされた別の答え](http://stackoverflow.com/a/9089457)で詳しく説明されています。 –

関連する問題