2017-03-04 23 views
0

私はIAMユーザーを作成したことを行うためには、PHPのSDKを介したAWS S3バケットにファイルをアップロードしようとしているのアップロード中に拒否されたとインラインポリシーを追加AWSのS3:アクセスは、ファイル

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:ListBucket", 
       "s3:GetBucketLocation" 
      ], 
      "Resource": "arn:aws:s3:::bucket/*" 
     }, 
     { 
      "Effect": "Allow", 
      "Action": [ 
       "s3:PutObject", 
       "s3:GetObject", 
       "s3:DeleteObject" 
      ], 
      "Resource": "arn:aws:s3:::bucket/*" 
     } 
    ] 
} 

ここに私のPHPコード

$s3 = new S3Client([ 
    'version' => 'latest', 
    'region' => 'ap-south-1', 
    'credentials' => 
     array(
      'key'=>'X', 
      'secret' =>'X' 
     ) 
]); 

try { 
    $s3->putObject([ 
     'Bucket' => 'candy-prototype', 
     'Key' => 'my-object.txt', 
     'Body' => fopen('test.txt', 'r'), 
     'ACL' => 'public-read', 
    ]); 
} catch (Aws\S3\Exception\S3Exception $e) { 
    echo $e->getMessage(); 
    echo "There was an error uploading the file.\n"; 
} 

ですが、それはアクセス拒否の例外

Error executing "PutObject" on "https://s3.<region>.amazonaws.com/bucket/my-object.txt"; AWS HTTP 

error: Client error: PUT https://s3.ap-south-1.amazonaws.com/candy-prototype/my-object.txt resulted in a 403 Forbidden response: AccessDeniedAccess DeniedC21D9D (truncated...) AccessDenied (client): Access Denied - AccessDeniedAcces UPDATE

読み取りおよびpermissiを書き付与スローされますeveryoneにそれが働いていません。 IAMユーザーがアップロード/ AWSウェブadminpanelから/ビューを削除することができますが、APIアクセスが拒否され& GetBucketLocationがバケットに適用されるべき

答えて

1

ListBucket、ないバケット/ * 変更の最初の部分でのリソースポリシー

{ 
     "Effect": "Allow", 
     "Action": [ 
      "s3:ListBucket", 
      "s3:GetBucketLocation" 
     ], 
     "Resource": "arn:aws:s3:::bucket" 
    }, 

thisドキュメント

を参照してください。
関連する問題