Documentation
¶
Index ¶
- func BuiltIn() catalog.BuiltIn
- type Config
- type Plugin
- func (p *Plugin) Configure(ctx context.Context, req *configv1.ConfigureRequest) (*configv1.ConfigureResponse, error)
- func (p *Plugin) GenerateKey(ctx context.Context, req *keymanagerv1.GenerateKeyRequest) (*keymanagerv1.GenerateKeyResponse, error)
- func (p *Plugin) GetPublicKey(_ context.Context, req *keymanagerv1.GetPublicKeyRequest) (*keymanagerv1.GetPublicKeyResponse, error)
- func (p *Plugin) GetPublicKeys(context.Context, *keymanagerv1.GetPublicKeysRequest) (*keymanagerv1.GetPublicKeysResponse, error)
- func (p *Plugin) SetLogger(log hclog.Logger)
- func (p *Plugin) SignData(ctx context.Context, req *keymanagerv1.SignDataRequest) (*keymanagerv1.SignDataResponse, error)
- func (p *Plugin) Validate(ctx context.Context, req *configv1.ValidateRequest) (*configv1.ValidateResponse, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Config ¶
type Config struct {
AccessKeyID string `hcl:"access_key_id" json:"access_key_id"`
SecretAccessKey string `hcl:"secret_access_key" json:"secret_access_key"`
Region string `hcl:"region" json:"region"`
KeyIdentifierFile string `hcl:"key_identifier_file" json:"key_identifier_file"`
KeyIdentifierValue string `hcl:"key_identifier_value" json:"key_identifier_value"`
KeyPolicyFile string `hcl:"key_policy_file" json:"key_policy_file"`
KeyTags map[string]string `hcl:"key_tags" json:"key_tags"`
// EnableTagBasedKeyDiscovery enables the use of AWS Resource Groups Tagging API
// for efficient key discovery instead of the legacy alias-based approach.
// When enabled, keys are discovered using SPIRE-specific tags (spire-server-td,
// spire-server-id, spire-active).
// This eliminates the need for broad ListKeys + DescribeKey permissions and reduces API costs.
//
// Default: false (uses legacy alias-based discovery)
// In a future SPIRE version, this will default to true. The alias-based
// approach will be deprecated in a future version and removed in a later one.
//
// Note: When enabled, the plugin requires the tag:GetResources IAM
// permission (from the AWS Resource Groups Tagging API).
EnableTagBasedKeyDiscovery bool `hcl:"enable_tag_based_key_discovery" json:"enable_tag_based_key_discovery"`
}
Config provides configuration context for the plugin
type Plugin ¶
type Plugin struct {
keymanagerv1.UnsafeKeyManagerServer
configv1.UnsafeConfigServer
// contains filtered or unexported fields
}
Plugin is the main representation of this keymanager plugin
func (*Plugin) Configure ¶
func (p *Plugin) Configure(ctx context.Context, req *configv1.ConfigureRequest) (*configv1.ConfigureResponse, error)
Configure sets up the plugin
func (*Plugin) GenerateKey ¶
func (p *Plugin) GenerateKey(ctx context.Context, req *keymanagerv1.GenerateKeyRequest) (*keymanagerv1.GenerateKeyResponse, error)
GenerateKey creates a key in KMS. If a key already exists in the local storage, it is updated.
func (*Plugin) GetPublicKey ¶
func (p *Plugin) GetPublicKey(_ context.Context, req *keymanagerv1.GetPublicKeyRequest) (*keymanagerv1.GetPublicKeyResponse, error)
GetPublicKey returns the public key for a given key
func (*Plugin) GetPublicKeys ¶
func (p *Plugin) GetPublicKeys(context.Context, *keymanagerv1.GetPublicKeysRequest) (*keymanagerv1.GetPublicKeysResponse, error)
GetPublicKeys return the publicKey for all the keys
func (*Plugin) SignData ¶
func (p *Plugin) SignData(ctx context.Context, req *keymanagerv1.SignDataRequest) (*keymanagerv1.SignDataResponse, error)
SignData creates a digital signature for the data to be signed
func (*Plugin) Validate ¶ added in v1.11.0
func (p *Plugin) Validate(ctx context.Context, req *configv1.ValidateRequest) (*configv1.ValidateResponse, error)
Click to show internal directories.
Click to hide internal directories.