--- layout: docs page_title: Redis ElastiCache - Database - Secrets Engines description: |- Redis ElastiCache is one of the supported plugins for the database secrets engine. This plugin generates static credentials for existing managed roles. --- # Redis ElastiCache Database Secrets Engine Redis ElastiCache is one of the supported plugins for the database secrets engine. This plugin generates static credentials for existing managed roles. See the [database secrets engine](/docs/secrets/databases) docs for more information about setting up the database secrets engine. ## Capabilities | Plugin Name | Root Credential Rotation | Dynamic Roles | Static Roles | Username Customization | | --------------------------------------- | ------------------------ | ------------- | ------------ | ---------------------- | | `redis-elasticache-database-plugin` | No | No | Yes | No | ## Setup 1. Enable the database secrets engine if it is not already enabled: ```shell-session $ vault secrets enable database Success! Enabled the database secrets engine at: database/ ``` By default, the secrets engine will enable at the name of the engine. To enable the secrets engine at a different path, use the `-path` argument. 1. Configure Vault with the proper plugin and connection configuration: ```shell-session $ vault write database/config/my-redis-elasticache-cluster \ plugin_name="redis-elasticache-database-plugin" \ url="primary-endpoint.my-cluster.xxx.yyy.cache.amazonaws.com:6379" \ username="AKI***" \ password="ktriNYvULAWLzUmTGb***" \ allowed_roles="*" ``` ~> **Note**: The username and password parameters are optional. If omitted, authentication falls back on the AWS credentials provider chain. Using a [temporary credential](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html) stored in the proper environment variable is the preferred configuration method. ## Usage After the secrets engine is configured, write static roles to enable generating credentials. ### Static roles 1. Configure a static role that maps a name in Vault to an existing Redis ElastiCache user. ```shell-session $ vault write database/static-roles/my-static-role \ db_name="my-redis-elasticache-cluster" \ username="my-existing-redis-user" \ rotation_period=5m Success! Data written to: database/static-roles/my-static-role ``` 1. Retrieve the credentials from the `/static-creds` endpoint: ```shell-session $ vault read database/static-creds/my-static-role Key Value --- ----- last_vault_rotation 2022-09-14T11:45:57.24715105-04:00 password GKdS6qY-UtVAMpcD9iuu rotation_period 5m ttl 4m48s username my-existing-redis-user ``` ~> **Note**: New passwords may take up-to a couple of minutes before ElastiCache has the chance to complete their configuration. It is recommended to use a retry strategy when establishing new Redis ElastiCache connections. This may prevent errors when trying to use a password that isn't yet live on the targeted ElastiCache cluster. ## API The full list of configurable options can be seen in the [Redis ElastiCache Database Plugin API](/api-docs/secret/databases/rediselasticache) page. For more information on the database secrets engine's HTTP API please see the [Database Secrets Engine API](/api-docs/secret/databases) page.