title: Getting started with secure AWS CloudFront streaming with Python
body: <p>I have created a S3 bucket, uploaded a video, created a streaming distribution in CloudFront. Tested it with a static HTML player and it works. I have created a keypair through the account settings. I have the private key file sitting on my desktop at the moment. That's where I am.</p>
  
  <p>My aim is to get to a point where my Django/Python site creates secure URLs and people can't access the videos unless they've come from one of my pages. The problem is I'm allergic to the way Amazon have laid things out and I'm just getting more and more confused.</p>
  
  <p>I realise this isn't going to be the best question on StackOverflow but I'm certain I can't be the only fool out here that can't make heads or tails out of how to set up a secure CloudFront/S3 situation. I would really appreciate your help and am willing (once two days has passed) give a 500pt bounty to the best answer.</p>
  
  <p>I have several questions that, once answered, should fit into one explanation of how to accomplish what I'm after:</p>
  
  <ul>
  <li><p>In the documentation (there's an example in the next point) there's lots of XML lying around telling me I need to <code>POST</code> things to various places. Is there an online console for doing this? Or do I literally have to force this up via cURL (et al)?</p></li>
  <li><p>How do I create a Origin Access Identity for CloudFront and bind it to my distribution? I've read <a href="http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/index.html?SecuringContent_S3.html#CreateOriginAccessIdentity">this document</a> but, per the first point, don't know what to do with it. How does my keypair fit into this?</p></li>
  <li><p>Once that's done, how do I limit the S3 bucket to only allow people to download things through that identity? If this is another XML jobby rather than clicking around the web UI, please tell me where and how I'm supposed to get this into my account.</p></li>
  <li><p>In Python, what's the easiest way of generating an expiring URL for a file. I have <code>boto</code> installed but I don't see how to get a file from a streaming distribution.</p></li>
  <li><p>Are there are any applications or scripts that can take the difficulty of setting this garb up? I use Ubuntu (Linux) but I have XP in a VM if it's Windows-only. I've already looked at CloudBerry S3 Explorer Pro - but it makes about as much sense as the online UI.</p></li>
  </ul>