Auditing: Set default policy rule level for create to req+resp (#115727)
Auditing: Set default policy rule level to req+resp
This commit is contained in:
@@ -46,14 +46,23 @@ func (defaultGrafanaPolicyRuleEvaluator) EvaluatePolicyRule(attrs authorizer.Att
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Logging the response object allows us to get the resource name for create requests.
|
||||||
|
level := auditinternal.LevelMetadata
|
||||||
|
if attrs.GetVerb() == utils.VerbCreate {
|
||||||
|
level = auditinternal.LevelRequestResponse
|
||||||
|
}
|
||||||
|
|
||||||
return audit.RequestAuditConfig{
|
return audit.RequestAuditConfig{
|
||||||
Level: auditinternal.LevelMetadata,
|
Level: level,
|
||||||
|
|
||||||
|
// Only log on StageResponseComplete, to avoid noisy logs.
|
||||||
OmitStages: []auditinternal.Stage{
|
OmitStages: []auditinternal.Stage{
|
||||||
// Only log on StageResponseComplete
|
|
||||||
auditinternal.StageRequestReceived,
|
auditinternal.StageRequestReceived,
|
||||||
auditinternal.StageResponseStarted,
|
auditinternal.StageResponseStarted,
|
||||||
auditinternal.StagePanic,
|
auditinternal.StagePanic,
|
||||||
},
|
},
|
||||||
OmitManagedFields: false, // Setting it to true causes extra copying/unmarshalling.
|
|
||||||
|
// Setting it to true causes extra copying/unmarshalling.
|
||||||
|
OmitManagedFields: false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ func TestDefaultGrafanaPolicyRuleEvaluator(t *testing.T) {
|
|||||||
require.Equal(t, auditinternal.LevelNone, config.Level)
|
require.Equal(t, auditinternal.LevelNone, config.Level)
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("return audit level metadata for other resource requests", func(t *testing.T) {
|
t.Run("return audit level request+response for create requests", func(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
attrs := authorizer.AttributesRecord{
|
attrs := authorizer.AttributesRecord{
|
||||||
@@ -67,6 +67,22 @@ func TestDefaultGrafanaPolicyRuleEvaluator(t *testing.T) {
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
config := evaluator.EvaluatePolicyRule(attrs)
|
||||||
|
require.Equal(t, auditinternal.LevelRequestResponse, config.Level)
|
||||||
|
})
|
||||||
|
|
||||||
|
t.Run("return audit level metadata for other resource requests", func(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
attrs := authorizer.AttributesRecord{
|
||||||
|
ResourceRequest: true,
|
||||||
|
Verb: utils.VerbGet,
|
||||||
|
User: &user.DefaultInfo{
|
||||||
|
Name: "test-user",
|
||||||
|
Groups: []string{"test-group"},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
config := evaluator.EvaluatePolicyRule(attrs)
|
config := evaluator.EvaluatePolicyRule(attrs)
|
||||||
require.Equal(t, auditinternal.LevelMetadata, config.Level)
|
require.Equal(t, auditinternal.LevelMetadata, config.Level)
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user