2929
3030func registerAccessControlRoles (service accesscontrol.Service ) error {
3131 // SecureValues
32+ // These are broken down into more granular fixed roles on purpose.
33+ // For inline Secure Values, we want to allow creation and deletion by Editors because there's no API to read/update.
34+ // References are only available with the API and RBAC, so those roles can be granted to any basic role by Operators.
35+ secureValuesCreator := accesscontrol.RoleRegistration {
36+ Role : accesscontrol.RoleDTO {
37+ Name : "fixed:secret.securevalues:creator" ,
38+ DisplayName : "Secure Values Creator" ,
39+ Description : "Create secure values." ,
40+ Group : "Secrets Manager" ,
41+ Permissions : []accesscontrol.Permission {
42+ {
43+ Action : ActionSecretSecureValuesCreate ,
44+ Scope : ScopeAllSecureValues ,
45+ },
46+ },
47+ },
48+ Grants : []string {string (org .RoleEditor )},
49+ }
50+
3251 secureValuesReader := accesscontrol.RoleRegistration {
3352 Role : accesscontrol.RoleDTO {
3453 Name : "fixed:secret.securevalues:reader" ,
@@ -45,32 +64,36 @@ func registerAccessControlRoles(service accesscontrol.Service) error {
4564 Grants : []string {string (org .RoleAdmin )},
4665 }
4766
48- secureValuesWriter := accesscontrol.RoleRegistration {
67+ secureValuesUpdater := accesscontrol.RoleRegistration {
4968 Role : accesscontrol.RoleDTO {
50- Name : "fixed:secret.securevalues:writer " ,
51- DisplayName : "Secure Values Writer " ,
52- Description : "Create, update and delete secure values." ,
69+ Name : "fixed:secret.securevalues:updater " ,
70+ DisplayName : "Secure Values Updater " ,
71+ Description : "Update secure values." ,
5372 Group : "Secrets Manager" ,
5473 Permissions : []accesscontrol.Permission {
55- {
56- Action : ActionSecretSecureValuesCreate ,
57- Scope : ScopeAllSecureValues ,
58- },
59- {
60- Action : ActionSecretSecureValuesRead ,
61- Scope : ScopeAllSecureValues ,
62- },
6374 {
6475 Action : ActionSecretSecureValuesWrite ,
6576 Scope : ScopeAllSecureValues ,
6677 },
78+ },
79+ },
80+ Grants : []string {string (org .RoleAdmin )},
81+ }
82+
83+ secureValuesDeleter := accesscontrol.RoleRegistration {
84+ Role : accesscontrol.RoleDTO {
85+ Name : "fixed:secret.securevalues:deleter" ,
86+ DisplayName : "Secure Values Deleter" ,
87+ Description : "Delete secure values." ,
88+ Group : "Secrets Manager" ,
89+ Permissions : []accesscontrol.Permission {
6790 {
6891 Action : ActionSecretSecureValuesDelete ,
6992 Scope : ScopeAllSecureValues ,
7093 },
7194 },
7295 },
73- Grants : []string {string (org .RoleAdmin )},
96+ Grants : []string {string (org .RoleEditor )},
7497 }
7598
7699 // Keepers
@@ -119,7 +142,11 @@ func registerAccessControlRoles(service accesscontrol.Service) error {
119142 }
120143
121144 return service .DeclareFixedRoles (
122- secureValuesReader , secureValuesWriter ,
123- keepersReader , keepersWriter ,
145+ secureValuesCreator ,
146+ secureValuesReader ,
147+ secureValuesUpdater ,
148+ secureValuesDeleter ,
149+ keepersReader ,
150+ keepersWriter ,
124151 )
125152}
0 commit comments