func NewWithSession(sess *session.Session, store kv.Service, kmsID string) (kv.Service, error) {
	if kmsID == "" {
		return nil, errors.Errorf("invalid kmsID specified: '%s'", kmsID)
	}
	return &awsKMS{
		store:      store,
		kmsService: kms.New(sess),
		kmsID:      kmsID,
	}, nil
}
NewWithSession creates a new kv.Service encrypted by AWS KMS with and existing AWS Session
package awskms
import (
	"emperror.dev/errors"
	"github.com/aws/aws-sdk-go/aws"
	"github.com/aws/aws-sdk-go/aws/session"
	"github.com/aws/aws-sdk-go/service/kms"
	"github.com/banzaicloud/bank-vaults/pkg/kv"
)
const (
	SseAES256 string = "AES256"
	SseKMS string = "aws:kms"
)
type awsKMS struct {
	store      kv.Service
	kmsService *kms.KMS
	kmsID string
}
var _ kv.Service = &awsKMS{}