2017-11-14 11:13:11 +00:00
|
|
|
---
|
|
|
|
layout: "docs"
|
|
|
|
page_title: "AWS KMS - Seals - Configuration"
|
New Docs Website (#5535)
* conversion stage 1
* correct image paths
* add sidebar title to frontmatter
* docs/concepts and docs/internals
* configuration docs and multi-level nav corrections
* commands docs, index file corrections, small item nav correction
* secrets converted
* auth
* add enterprise and agent docs
* add extra dividers
* secret section, wip
* correct sidebar nav title in front matter for apu section, start working on api items
* auth and backend, a couple directory structure fixes
* remove old docs
* intro side nav converted
* reset sidebar styles, add hashi-global-styles
* basic styling for nav sidebar
* folder collapse functionality
* patch up border length on last list item
* wip restructure for content component
* taking middleman hacking to the extreme, but its working
* small css fix
* add new mega nav
* fix a small mistake from the rebase
* fix a content resolution issue with middleman
* title a couple missing docs pages
* update deps, remove temporary markup
* community page
* footer to layout, community page css adjustments
* wip downloads page
* deps updated, downloads page ready
* fix community page
* homepage progress
* add components, adjust spacing
* docs and api landing pages
* a bunch of fixes, add docs and api landing pages
* update deps, add deploy scripts
* add readme note
* update deploy command
* overview page, index title
* Update doc fields
Note this still requires the link fields to be populated -- this is solely related to copy on the description fields
* Update api_basic_categories.yml
Updated API category descriptions. Like the document descriptions you'll still need to update the link headers to the proper target pages.
* Add bottom hero, adjust CSS, responsive friendly
* Add mega nav title
* homepage adjustments, asset boosts
* small fixes
* docs page styling fixes
* meganav title
* some category link corrections
* Update API categories page
updated to reflect the second level headings for api categories
* Update docs_detailed_categories.yml
Updated to represent the existing docs structure
* Update docs_detailed_categories.yml
* docs page data fix, extra operator page remove
* api data fix
* fix makefile
* update deps, add product subnav to docs and api landing pages
* Rearrange non-hands-on guides to _docs_
Since there is no place for these on learn.hashicorp, we'll put them
under _docs_.
* WIP Redirects for guides to docs
* content and component updates
* font weight hotfix, redirects
* fix guides and intro sidenavs
* fix some redirects
* small style tweaks
* Redirects to learn and internally to docs
* Remove redirect to `/vault`
* Remove `.html` from destination on redirects
* fix incorrect index redirect
* final touchups
* address feedback from michell for makefile and product downloads
2018-10-19 15:40:11 +00:00
|
|
|
sidebar_title: "AWS KMS <sup>ENT</sup>"
|
2017-11-14 11:13:11 +00:00
|
|
|
sidebar_current: "docs-configuration-seal-awskms"
|
|
|
|
description: |-
|
|
|
|
The AWS KMS seal configures Vault to use AWS KMS as the seal wrapping
|
|
|
|
mechanism.
|
|
|
|
---
|
|
|
|
|
|
|
|
# `awskms` Seal
|
|
|
|
|
|
|
|
The AWS KMS seal configures Vault to use AWS KMS as the seal wrapping mechanism.
|
|
|
|
Vault Enterprise's AWS KMS seal is activated by one of the following:
|
|
|
|
|
|
|
|
* The presence of a `seal "awskms"` block in Vault's configuration file
|
|
|
|
* The presence of the environment variable `VAULT_SEAL_TYPE` set to `awskms`. If
|
|
|
|
enabling via environment variable, all other required values specific to AWS
|
|
|
|
KMS (i.e. `VAULT_AWSKMS_SEAL_KEY_ID`) must be also supplied, as well as all
|
|
|
|
other AWS-related environment variables that lends to successful
|
|
|
|
authentication (i.e. `AWS_ACCESS_KEY_ID`, etc.).
|
|
|
|
|
2017-11-14 18:12:35 +00:00
|
|
|
## `awskms` Example
|
2017-11-14 11:13:11 +00:00
|
|
|
|
2017-11-14 18:12:35 +00:00
|
|
|
This example shows configuring AWS KMS seal through the Vault configuration file
|
|
|
|
by providing all the required values:
|
2017-11-14 11:13:11 +00:00
|
|
|
|
2017-11-14 18:12:35 +00:00
|
|
|
```hcl
|
|
|
|
seal "awskms" {
|
2018-01-31 18:41:31 +00:00
|
|
|
region = "us-east-1"
|
2017-11-14 18:12:35 +00:00
|
|
|
access_key = "AKIAIOSFODNN7EXAMPLE"
|
|
|
|
secret_key = "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
|
|
|
|
kms_key_id = "19ec80b0-dfdd-4d97-8164-c6examplekey"
|
|
|
|
}
|
2017-11-14 11:13:11 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
## `awskms` Parameters
|
|
|
|
|
|
|
|
These parameters apply to the `seal` stanza in the Vault configuration file:
|
|
|
|
|
2017-11-14 18:12:35 +00:00
|
|
|
- `region` `(string: "us-east-1")`: The AWS region where the encryption key
|
2017-11-14 11:13:11 +00:00
|
|
|
lives. May also be specified by the `AWS_REGION` or `AWS_DEFAULT_REGION`
|
|
|
|
environment variable or as part of the AWS profile from the AWS CLI or
|
|
|
|
instance profile.
|
2017-11-14 18:12:35 +00:00
|
|
|
|
|
|
|
- `access_key` `(string: <required>)`: The AWS access key ID to use. May also be
|
2017-11-14 11:13:11 +00:00
|
|
|
specified by the `AWS_ACCESS_KEY_ID` environment variable or as part of the
|
|
|
|
AWS profile from the AWS CLI or instance profile.
|
2017-11-14 18:12:35 +00:00
|
|
|
|
|
|
|
- `secret_key` `(string: <required>)`: The AWS secret access key to use. May
|
2017-11-14 11:13:11 +00:00
|
|
|
also be specified by the `AWS_SECRET_ACCESS_KEY` environment variable or as
|
|
|
|
part of the AWS profile from the AWS CLI or instance profile.
|
2017-11-14 18:12:35 +00:00
|
|
|
|
|
|
|
- `kms_key_id` `(string: <required>)`: The AWS KMS key ID to use for encryption
|
2017-11-14 11:13:11 +00:00
|
|
|
and decryption. May also be specified by the `VAULT_AWSKMS_SEAL_KEY_ID`
|
|
|
|
environment variable.
|
|
|
|
|
2017-11-14 18:12:35 +00:00
|
|
|
## Authentication
|
|
|
|
|
|
|
|
Authentication-related values must be provided, either as environment
|
|
|
|
variables or as configuration parameters.
|
|
|
|
|
2017-11-14 11:13:11 +00:00
|
|
|
~> **Note:** Although the configuration file allows you to pass in
|
|
|
|
`AWS_ACCESS_KEY_ID` and `AWS_ACCESS_KEY_ID` as part of the seal's parameters, it
|
2017-11-14 18:12:35 +00:00
|
|
|
is *strongly* recommended to set these values via environment variables.
|
|
|
|
|
|
|
|
```text
|
|
|
|
AWS authentication values:
|
|
|
|
|
|
|
|
* `AWS_REGION` or `AWS_DEFAULT_REGION`
|
|
|
|
* `AWS_ACCESS_KEY_ID`
|
|
|
|
* `AWS_SECRET_ACCESS_KEY`
|
|
|
|
```
|
|
|
|
|
|
|
|
Note: The client uses the official AWS SDK and will use the specified
|
|
|
|
credentials, environment credentials, shared file credentials, or IAM role/ECS
|
|
|
|
task credentials in that order, if the above AWS specific values are not
|
|
|
|
provided.
|
2017-11-14 11:13:11 +00:00
|
|
|
|
|
|
|
## `awskms` Environment Variables
|
|
|
|
|
|
|
|
Alternatively, the AWS KMS seal can be activated by providing the following
|
|
|
|
environment variables:
|
|
|
|
|
|
|
|
```text
|
|
|
|
Vault Seal specific values:
|
|
|
|
|
|
|
|
* `VAULT_SEAL_TYPE`
|
|
|
|
* `VAULT_AWSKMS_SEAL_KEY_ID`
|
|
|
|
```
|
2018-04-25 13:59:06 +00:00
|
|
|
|
|
|
|
## Key Rotation
|
|
|
|
|
|
|
|
This seal supports rotating the master keys defined in AWS KMS
|
|
|
|
[doc](https://docs.aws.amazon.com/kms/latest/developerguide/rotate-keys.html). Both automatic
|
|
|
|
rotation and manual rotation is supported for KMS since the key information is stored with the
|
|
|
|
encrypted data. Old keys must not be disabled or deleted and are used to decrypt older data.
|
|
|
|
Any new or updated data will be encrypted with the current key defined in the seal configuration
|
|
|
|
or set to current under a key alias.
|