svc: Assume access key creation permission to be available by default (#3306)
Allow SVC creation when CreateServiceAccount is denied with a condition
Adding this policy will make the user not able to create a service account anymore:
```
{
"Effect": "Deny",
"Action": [
"admin:CreateServiceAccount"
],
"Condition": {
"NumericGreaterThanIfExists": {"svc:DurationSeconds": "1500"}
}
},
```
The reason is that policy.IsAllowedActions() is called with conditions from the user login.
Assume svc account creation to be possible for now until we come up with a better fix
Co-authored-by: Anis Eleuch <anis@min.io>
Co-authored-by: Prakash Senthil Vel <23444145+prakashsvmx@users.noreply.github.com>
This commit is contained in:
@@ -139,6 +139,14 @@ func getSessionResponse(ctx context.Context, session *models.Principal) (*models
|
||||
|
||||
defaultActions := policy.IsAllowedActions("", "", conditionValues)
|
||||
|
||||
// Allow Create Access Key when admin:CreateServiceAccount is provided with a condition
|
||||
for _, statement := range policy.Statements {
|
||||
if statement.Effect == "Deny" && len(statement.Conditions) > 0 &&
|
||||
statement.Actions.Contains(minioIAMPolicy.CreateServiceAccountAdminAction) {
|
||||
defaultActions.Add(minioIAMPolicy.Action(minioIAMPolicy.CreateServiceAccountAdminAction))
|
||||
}
|
||||
}
|
||||
|
||||
permissions := map[string]minioIAMPolicy.ActionSet{
|
||||
ConsoleResourceName: defaultActions,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user