[ 
https://issues.apache.org/jira/browse/HADOOP-13336?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15812523#comment-15812523
 ] 

Steve Loughran commented on HADOOP-13336:
-----------------------------------------

Larrrt  there's a scan for a forbidden prefix (currently bucket.") and then 
actual unmodifiable value. I actually think I could fix them to just the simple 
checks, and not-overengineer this.

w.r.t Configuration.getPassword(), I see the problem you are alluding to. Even 
though we are migrating fs.s3a.bucket.* to fs.s3a.*, that does nothing to the 
credential providers, as they have hard-coded keys in their key:value mappings; 
this isn't changing anything.

hmmm.

Would it be possible for us to update the 
{{"hadoop.security.credential.provider.path"}} at the same time, that is add a 
special property to s3a, say {{fs.s3a.security.credential.provider.path}}. All 
the contents of that property would be _prepanded_ to that of the base one. 
You'd then need to specify different providers for the different endpoints. By 
prepending the values, we can ensure that properties stated in a bucket will 
take priority over any in the default provider path.

We'd need to document this, especially how it's likely that once there's a 
secret in a JCEKS file, then you must overrride those secrets with new files: 
you can't move back to a password from a credentials file: you can't downgrade 
security. 

Would that work? If so, I can include that in this patch as it's related to the 
per-bucket config, isn't it?


> S3A to support per-bucket configuration
> ---------------------------------------
>
>                 Key: HADOOP-13336
>                 URL: https://issues.apache.org/jira/browse/HADOOP-13336
>             Project: Hadoop Common
>          Issue Type: Sub-task
>          Components: fs/s3
>    Affects Versions: 2.8.0
>            Reporter: Steve Loughran
>            Assignee: Steve Loughran
>         Attachments: HADOOP-13336-006.patch, HADOOP-13336-007.patch, 
> HADOOP-13336-HADOOP-13345-001.patch, HADOOP-13336-HADOOP-13345-002.patch, 
> HADOOP-13336-HADOOP-13345-003.patch, HADOOP-13336-HADOOP-13345-004.patch, 
> HADOOP-13336-HADOOP-13345-005.patch, HADOOP-13336-HADOOP-13345-006.patch
>
>
> S3a now supports different regions, by way of declaring the endpoint —but you 
> can't do things like read in one region, write back in another (e.g. a distcp 
> backup), because only one region can be specified in a configuration.
> If s3a supported region declaration in the URL, e.g. s3a://b1.frankfurt 
> s3a://b2.seol , then this would be possible. 
> Swift does this with a full filesystem binding/config: endpoints, username, 
> etc, in the XML file. Would we need to do that much? It'd be simpler 
> initially to use a domain suffix of a URL to set the region of a bucket from 
> the domain and have the aws library sort the details out itself, maybe with 
> some config options for working with non-AWS infra



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to