2017-04-21 8 views
4

私のクラウドフロント向けに署名付きのCookieを使用しようとしています。クラウドフロント向けに署名済みのCookieを使用できません

Im cookie-signerを使用して、署名付きのCookieを生成します。 クラウド正面から

import requests 
cookies = { 
'CloudFront-Key-Pair-Id': 'APKXXXXXXXXXXX', 
'CloudFront-Policy': u'eyJTdGF0ZW1lbnQiOlt7IlJlc291cmNlIjoiaHR0cHM6Ly9kNXRpdXV2ZjdodDlpLmNsb3VkZnJvbnQubmV0L21lZGlhL3Byb2ZpbGVfcGljLmpwZyIsIkNvbmRpdGlvbiI6eyJEYXRlTGVzc1RoYW4iOnsiQVdTOkVwb2NoVGltZSI6MTQ5Mjc2ODcwMH19fV19', 
'CloudFront-Signature': u'ZVG-Pi7x~edJqERf99O9und0wYedB-SHMNKuHd4UpEDaPckYekGoAJ~q8tU0vQI4mS9odXITzAKl4v7tmfDjG1y9FmWaSxgf9h2jrssIk25Mswk3UXOV7wRNs9DiHpA3~D70qAWXGS9GVN4z3SvZ3xQv9bM1P50y2shNPlOCV4o5nAH56sYdvdJNjxSFxdoOUMuhxyrzf-Gv5fjNSzv2Dy43WY6rmpEMfh6L9Eb-2kcrS9p5rsK9MtAwpN8Frobt4bCuduQleb~DXZ~O~hoBGdO3RdyYWgMdTa~02PQl3st8eisBiH7XYy2GbOwPIN~M4m-UAs3ihL0ZWUjbkVDFCA__', 
'Secure': 'True', 
'HTTPOnly': 'True', 

} 
headers = {} 

s = requests.Session() 

res = s.get('http://XXXXXXX.cloudfront.net/media/profile_pic.jpg', 
headers=headers, cookies=cookies) 
print res 
print res.content 

出力ファイルを取得するには、以下のスクリプト:CloudFrontの配信のために、信頼できる署名者に

<Response [403]> 
<?xml version="1.0" encoding="UTF-8"?> 
<Error><Code>AccessDenied</Code><Message>Access Denied</Message> 
<RequestId>BBDBA8E7FEDA7759</RequestId><HostId>7Pt2/REdiugH5Te555/v004J6skQs9+ccncmXM74yHwPhQrSMJ9pavIj2QmPW6g2QsnnEYGxitc=</HostId></Error> 

追加のユーザーをとCloudFrontのためのキーペアIDを生成しました。

誰かがこれを手伝ってくれますか? ありがとうございます

答えて

1

エラーは実際にはS3エラーであり、Cloudfront(CF)エラーではありません。 GetObjectにアクセス権を与えるバケットポリシーを作成しましたか?

{ 
    "Version":"2012-10-17", 
    "Statement":[ 
    { 
     "Sid":"AddPerm", 
     "Effect":"Allow", 
     "Principal": "*", 
     "Action":["s3:GetObject"], 
     "Resource":["arn:aws:s3:::examplebucket/*"] 
    } 
    ] 
} 

あなたがCFの原点としてS3を使用している場合、あなたが起源アクセスアイデンティティを作成し、S3バケットポリシーにそれへのアクセスを提供することを確認したいと思うhttp://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html

を参照してください。あなたはホスティングS3静的なウェブを使用してページを提供しようとしているならば、私はどちらかあなたのポリシーでCloudFrontのIPアドレスをホワイトリストや、refererとしてCFにOrigin Custom Headerを追加し、あなたのバケツにヘッダーを探してお勧め

http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-6を参照してください)ポリシー(http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-4を参照)

サニティチェックでは、AWS-CLIを使用して署名付きURLを生成することをお勧めします。 (http://docs.aws.amazon.com/cli/latest/reference/cloudfront/sign.html参照)

関連する問題