38
38
39
39
import org .opensearch .action .ActionRequest ;
40
40
import org .opensearch .action .RealtimeRequest ;
41
+ import org .opensearch .action .admin .cluster .snapshots .restore .RestoreSnapshotAction ;
42
+ import org .opensearch .action .admin .indices .alias .IndicesAliasesAction ;
43
+ import org .opensearch .action .admin .indices .close .CloseIndexAction ;
44
+ import org .opensearch .action .admin .indices .delete .DeleteIndexAction ;
45
+ import org .opensearch .action .admin .indices .mapping .put .PutMappingAction ;
46
+ import org .opensearch .action .admin .indices .settings .put .UpdateSettingsAction ;
41
47
import org .opensearch .action .search .SearchRequest ;
42
48
import org .opensearch .common .settings .Settings ;
43
49
import org .opensearch .indices .SystemIndexRegistry ;
@@ -71,6 +77,9 @@ public class SystemIndexAccessEvaluator {
71
77
private final boolean isSystemIndexEnabled ;
72
78
private final boolean isSystemIndexPermissionEnabled ;
73
79
private final static ImmutableSet <String > SYSTEM_INDEX_PERMISSION_SET = ImmutableSet .of (ConfigConstants .SYSTEM_INDEX_PERMISSION );
80
+ // Pattern for all actions like indices:data/write/index, indices:data/write/bulk, indices:data/write/delete,
81
+ // indices:data/write/reindex, etc
82
+ public static final String INDICES_DATA_WRITE_ALL_ACTIONS_PATTERN = "indices:data/write/*" ;
74
83
75
84
public SystemIndexAccessEvaluator (final Settings settings , AuditLog auditLog , IndexResolverReplacer irr ) {
76
85
this .securityIndex = settings .get (
@@ -97,8 +106,8 @@ public SystemIndexAccessEvaluator(final Settings settings, AuditLog auditLog, In
97
106
final List <String > deniedActionPatternsList = deniedActionPatterns ();
98
107
99
108
final List <String > deniedActionPatternsListNoSnapshot = new ArrayList <>(deniedActionPatternsList );
100
- deniedActionPatternsListNoSnapshot .add (" indices:admin/close*");
101
- deniedActionPatternsListNoSnapshot .add (" cluster:admin/snapshot/restore*");
109
+ deniedActionPatternsListNoSnapshot .add (CloseIndexAction . NAME + "*" ); // " indices:admin/close*"
110
+ deniedActionPatternsListNoSnapshot .add (RestoreSnapshotAction . NAME + "*" ); // " cluster:admin/snapshot/restore*"
102
111
103
112
deniedActionsMatcher = WildcardMatcher .from (
104
113
restoreSecurityIndexEnabled ? deniedActionPatternsList : deniedActionPatternsListNoSnapshot
@@ -111,13 +120,17 @@ public SystemIndexAccessEvaluator(final Settings settings, AuditLog auditLog, In
111
120
112
121
private static List <String > deniedActionPatterns () {
113
122
final List <String > securityIndexDeniedActionPatternsList = new ArrayList <>();
114
- securityIndexDeniedActionPatternsList .add ("indices:data/write*" );
115
- securityIndexDeniedActionPatternsList .add ("indices:admin/delete*" );
116
- securityIndexDeniedActionPatternsList .add ("indices:admin/mapping/delete*" );
117
- securityIndexDeniedActionPatternsList .add ("indices:admin/mapping/put*" );
118
- securityIndexDeniedActionPatternsList .add ("indices:admin/freeze*" );
119
- securityIndexDeniedActionPatternsList .add ("indices:admin/settings/update*" );
120
- securityIndexDeniedActionPatternsList .add ("indices:admin/aliases" );
123
+ securityIndexDeniedActionPatternsList .add (INDICES_DATA_WRITE_ALL_ACTIONS_PATTERN ); // "indices:data/write*"
124
+ securityIndexDeniedActionPatternsList .add (DeleteIndexAction .NAME + "*" ); // "indices:admin/delete*"
125
+ // action does not exist in OpenSearch-
126
+ // https://github.com/opensearch-project/OpenSearch/tree/main/server/src/main/java/org/opensearch/action/admin/indices/mapping
127
+ // securityIndexDeniedActionPatternsList.add("indices:admin/mapping/delete*");
128
+ securityIndexDeniedActionPatternsList .add (PutMappingAction .NAME + "*" ); // indices:admin/mapping/put*
129
+ // action does not exist in OpenSearch-
130
+ // https://github.com/opensearch-project/OpenSearch/tree/main/server/src/main/java/org/opensearch/action/admin/indices
131
+ // securityIndexDeniedActionPatternsList.add("indices:admin/freeze*");
132
+ securityIndexDeniedActionPatternsList .add (UpdateSettingsAction .NAME + "*" ); // "indices:admin/settings/update*"
133
+ securityIndexDeniedActionPatternsList .add (IndicesAliasesAction .NAME ); // "indices:admin/aliases"
121
134
return securityIndexDeniedActionPatternsList ;
122
135
}
123
136
0 commit comments