A new version of using generatePresignedUrl in S3ImageStoreDriverImpl is
checked into object_store.

THanks
-min

On 6/18/13 8:29 AM, "Min Chen" <min.c...@citrix.com> wrote:

>Yes, current code is in S3ImageStoreDriverImpl.createEntityExtractUrl,
>which has a security issue mentioned in CLOUDSTACK-3030. I am going to
>change it to use generatePresignedUrl api from AWS S3 api.
>
>Thanks
>-min
>
>From: John Burwell <jburw...@basho.com<mailto:jburw...@basho.com>>
>Date: Tuesday, June 18, 2013 8:07 AM
>To: Min Chen <min.c...@citrix.com<mailto:min.c...@citrix.com>>
>Cc: Thomas O'Dowd <tpod...@cloudian.com<mailto:tpod...@cloudian.com>>,
>"dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>"
><dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>>
>Subject: Re: Query String Request Authentication(QSRA) support by S3
>providers
>
>Min,
>
>Is the code checked into the object_store branch?  If so, which lines in
>S3TemplateDownloader?
>
>Thanks,
>-John
>
>On Jun 18, 2013, at 12:39 AM, Min Chen
><min.c...@citrix.com<mailto:min.c...@citrix.com>> wrote:
>
>Hi John,
>
>This is regarding extractTemplate api, where for extractable template,
>users can click "Download Template" button from UI to get a http url to
>download the template already stored at S3 without providing S3
>credentials. In 4.1, we don't have this issue, since the URL returned is
>the public web server location hosted in ssvm, and in 4.2, we are
>returning URL pointing to s3 object. Without setting ACL to the S3
>object, user cannot directly click the URL returned  from extractTemplate
>api to download the template without providing credentials. By reading
>the AWS SDK doc today, I ran across the following API that I may be able
>to use for this purpose:
>
> 
>URL<http://java.sun.com/j2se/1.5.0/docs/api/java/net/URL.html?is-external=
>true>        
>generatePresignedUrl<http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/
>com/amazonaws/services/s3/AmazonS3Client.html#generatePresignedUrl%28java.
>lang.String,%20java.lang.String,%20java.util.Date,%20com.amazonaws.HttpMet
>hod%29>(String<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.ht
>ml?is-external=true> bucketName,
>String<http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-ex
>ternal=true> key, 
>Date<http://java.sun.com/j2se/1.5.0/docs/api/java/util/Date.html?is-extern
>al=true> expiration,
>HttpMethod<http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazon
>aws/HttpMethod.html> method)
>           Returns a pre-signed URL for accessing an Amazon S3 resource.
>
>This is along the same line as QSRA mentioned by Tom, by wrapped in
>AmazonS3Client for easy consumption. By using this method, I think that I
>don't need to change ACL of S3 object to open a security hole.
>
>Thanks
>-min
>
>From: John Burwell <jburw...@basho.com<mailto:jburw...@basho.com>>
>Date: Monday, June 17, 2013 7:38 PM
>To: Min Chen <min.c...@citrix.com<mailto:min.c...@citrix.com>>
>Cc: Thomas O'Dowd <tpod...@cloudian.com<mailto:tpod...@cloudian.com>>,
>"dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>"
><dev@cloudstack.apache.org<mailto:dev@cloudstack.apache.org>>
>Subject: Re: Query String Request Authentication(QSRA) support by S3
>providers
>
>Min,
>
>Why are we mucking with ACLs at all?  The best security practice would be
>to create a bucket for CloudStack's use and assign it a dedicated access
>key and secret key pair with read/write access only to that bucket.
>Requiring an administrative account to an object store opens an
>unnecessarily large attack surface.  Therefore, as implemented in 4.1, we
>should defer bucket creation, ACL assignment, and credential creation to
>the administrator/operator.
>
>Thanks,
>-John
>
>On Jun 17, 2013, at 1:15 PM, Min Chen
><min.c...@citrix.com<mailto:min.c...@citrix.com>> wrote:
>
>Tom filed a very good bug for ACL setting change on S3 object when users
>issue extractTemplate API
>(https://issues.apache.org/jira/browse/CLOUDSTACK-3030), and his
>recommendation of using Query String Request Authentication (QSRA)
>alternative sounds like a right approach to fix this bug. Before
>implementing it, I would like to confirm if QSRA should be supported by
>all S3 providers if they claim that they are AWS s3 compatible. If so, we
>will make this assumption in our code. Based on Tom, Cloudian is
>supporting it. How about RiakCS, John?
>
>Thanks
>-min
>
>

Reply via email to