Credential Providers

Added in version 4.18.0.

In addition to supplying a static username and/or password, coredis allows a credential provider to be specified. The coredis clients accept any credential provider implementing the AbstractCredentialProvider interface. This allows clients to access credentials stored in external credential providers such as AWS IAM.

Using the Credential Provider

coredis comes with a basic implementation of the coredis.credentials.AbstractCredentialProvider interface. This is UserPassCredentialProvider. It allows a user to specify a username and/or password that will be used to authenticate with a redis instance. When the get_credentials() is called, the username and/or password that was set will be returned whenever coredis needs the credentials in order to authenticate with the redis or other server.

For example:

import asyncio
import coredis
from coredis.credentials import UserPassCredentialProvider

provider = UserPassCredentialProvider(username="default", password="abc123")
client = coredis.Redis(credential_provider=provider)

# or in cluster mode
# client = coredis.RedisCluster("localhost", 7000, credential_provider=provider)

More complicated credential providers are also possible. For example, this pattern could be used to use IAM credentials to authenticate with an AWS Elasticache cluster or any other credential manager that requires programmatic access.

An example of this is described in Credential Providers.