feature: Add signing (hmac-sha256) of audit entries (#1666)

This commit is contained in:
Jim authored and GitHub committed 2021-11-05 20:44:33 -04:00
1 parent 55ab75f364
commit eecd878b36
16 files changed
+344 -37

No files matched your search

+11 -1
View File
@@ -1,6 +1,9 @@
package base
import "github.com/hashicorp/boundary/internal/observability/event"
import (
"github.com/hashicorp/boundary/internal/observability/event"
wrapping "github.com/hashicorp/go-kms-wrapping"
)
// getOpts - iterate the inbound Options and return a struct.
func getOpts(opt ...Option) Options {
@@ -31,6 +34,7 @@ type Options struct {
withDatabaseTemplate string
withEventerConfig *event.EventerConfig
withEventFlags *EventFlags
withEventWrapper wrapping.Wrapper
withAttributeFieldPrefix string
withStatusCode int
}
@@ -136,6 +140,12 @@ func WithEventFlags(flags *EventFlags) Option {
}
}
func WithEventAuditWrapper(w wrapping.Wrapper) Option {
return func(o *Options) {
o.withEventWrapper = w
}
}
// WithAttributeFieldPrefix tells the command what prefix
// to attach to attribute fields when they are returned as errors.
func WithAttributeFieldPrefix(p string) Option {
+1 -1
View File
@@ -192,7 +192,7 @@ func (b *Server) SetupEventing(logger hclog.Logger, serializationLock *sync.Mute
}
}
e, err := event.NewEventer(logger, serializationLock, serverName, *opts.withEventerConfig)
e, err := event.NewEventer(logger, serializationLock, serverName, *opts.withEventerConfig, event.WithAuditWrapper(opts.withEventWrapper))
if err != nil {
return berrors.WrapDeprecated(err, op, berrors.WithMsg("unable to create eventer"))
}
+9 -4
View File
@@ -490,10 +490,6 @@ func (c *Command) Run(args []string) int {
c.UI.Error(err.Error())
return base.CommandUserError
}
if err := c.SetupEventing(c.Logger, c.StderrLock, serverName, base.WithEventerConfig(c.Config.Eventing), base.WithEventFlags(eventFlags)); err != nil {
c.UI.Error(err.Error())
return base.CommandCliError
}
// Initialize status grace period (0 denotes using env or default
// here)
@@ -512,6 +508,15 @@ func (c *Command) Run(args []string) int {
c.UI.Error("Controller KMS not found after parsing KMS blocks")
return base.CommandUserError
}
if err := c.SetupEventing(
c.Logger,
c.StderrLock,
serverName,
base.WithEventerConfig(c.Config.Eventing),
base.WithEventFlags(eventFlags)); err != nil {
c.UI.Error(err.Error())
return base.CommandCliError
}
if c.WorkerAuthKms == nil {
c.UI.Error("Worker Auth KMS not found after parsing KMS blocks")
return base.CommandUserError