Hi Thejaka,

Yes, that makes sense. For a bit more context: if you are familiar with the 
existing GatewayResourceProfile, then you’ll find the GroupResourceProfile very 
similar. We’re transitioning from a GatewayResourceProfile that is implicit 
shared with all gateway users to a model where there are one or more 
GroupResourceProfiles that define a set of compute resources that each are 
shared with one or more groups.

I agree with your assessment. I think we can solve this problem by attaching 
permissions to the credential store tokens.

Thanks,

Marcus

On Jul 1, 2018, at 12:51 PM, Thejaka Amila J Kanewala 
<[email protected]<mailto:[email protected]>> wrote:

Hi Marcus,

Sorry for the late reply.

I don't have a better understanding of the functionality provided by 
"GroupResourceProfiles". However, based on your description I understood the 
following:
"GroupResourceProfiles" has some sensitive details that belong to the current 
(user: A) user. Another user (user: B) can clone  "GroupResourceProfiles" with 
these sensitive details and can use authentication/ authorization data from 
user A.

In my opinion, when cloning "GroupResourceProfiles" to user B space all the 
fields that contain sensitive data should be nullified or fill them with 
appropriate data for user B (e.g., credential store tokens belonging to user 
B). I believe we need to do this for all authentication data in 
"GroupResourceProfiles" irrespective of the permission action (READ, WRITE) 
attached to "GroupResourceProfiles".

It sounds like "GroupResourceProfiles" is an abstract field which contains 
several concrete data fields. In that case, we can handle this in a more 
general way by attaching permissions to those concrete data fields.

Hope this makes sense.

Thanks
Thejaka


On Mon, Jun 25, 2018 at 3:57 PM, Christie, Marcus Aaron 
<[email protected]<mailto:[email protected]>> wrote:
Hi All,

I’m looking for some advice on how to secure GroupResourceProfiles. The problem 
is this: any user that has READ access to a GroupResourceProfile can 
effectively clone that GroupResourceProfile. This would allow the user to 
create a new GroupResourceProfile that uses the same login/allocation and this 
new GroupResourceProfile could have fewer restrictions or be shared with other 
users.

Here are some solutions I’m considering:
1. Create a new permission type that is less privileged than READ and that 
gives access to less details. There are a few details in the 
GroupComputeResourcePreferences that are sensitive, like loginUserName, 
resourceSpecificCredentialToken and allocationProjectNumber, because these 
fields determine what account gets charged and these could be left out.
2. Hide the sensitive fields mentioned above from users with READ access and 
only show them to users with WRITE access.
3. Apply group based authorization to credential tokens and require new 
GroupResourceProfiles to have their own credential tokens, that would only be 
accessible to the user that creates the GroupResourceProfile.

I’m open to other ideas. I’m leaning toward #2. The problem with #1 is it 
introduces another permission type (READ, WRITE and “USE”?) that will 
complicate the user experience. #3 also complicates what is required to create 
a GroupResourceProfile. One use case we have in mind is that users who create a 
GroupResourceProfile can leverage defaults defined in the 
GatewayResourceProfile and thus only need to provide an allocation project 
number and not need to add an SSH key to a compute resource account. Approach 
#3 would make that more difficult or impossible.

I hope the above makes sense. Let me know if you have any questions.

Thanks,

Marcus


Reply via email to