KMS (Key Management Service)

This document contains information about the KMS service supported in Handel. This Handel service provisions a KMS key and alias for use by your applications.

Service Limitations

This service currently does not allow creating disabled keys. It also uses IAM instead of custom Key Policies to control access to the key, as key policies can easily make keys unmanageable.

While the AWS API allows for multiple aliases to point to a single key, this service matches the AWS Console in enforcing a one-to-one relationship between keys.

Important

This service only offers limited tagging support. KMS Keys will not be tagged, but the Cloudformation stack used to create them will be. See Tagging Unsupported Resources.

Parameters

This service takes the following parameters:

Parameter Type Required Default Description
type string Yes   This must always be kms for this service type.
alias string No <appName>/<environmentName>/<serviceName> The name of the alias to create. This name must be unique across the account and region in which the key is deployed.
auto_rotate boolean No true Whether to allow AWS to auto-rotate the underlying Master Key.
tags Resource Tags No   Tags to be applied to the Cloudformation stack which provisions this resource.

Example Handel File

This Handel file shows a KMS key being configured:

version: 1

name: my-app

environments:
  dev:
    mykey:
      type: kms
      # because we don't specify an alias, the alias will be my-app/dev/mykey (see above)
      auto_rotate: true

Depending on this service

This service outputs the following environment variables:

Environment Variable Description
<SERVICE_NAME>_KEY_ID The id of the created key
<SERVICE_NAME>_KEY_ARN The ARN of the created key
<SERVICE_NAME>_ALIAS_NAME The name of the created alias
<SERVICE_NAME>_ALIAS_ARN The ARN of the created alias

See Environment Variable Names for information about how the service name is included in the environment variable name.

Events produced by this service

The KMS service does not currently produce events for other Handel services. Support for producing events upon key rotation is planned for the future.

Events consumed by this service

The KMS service does not consume events from other Handel services.