

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# AWS Secrets Manager 旋转函数模板
<a name="reference_available-rotation-templates"></a>

AWS Secrets Manager 提供了一组轮换函数模板，可帮助自动对各种数据库系统和服务的凭据进行安全管理。这些模板是即用型 Lambda 函数，它们实施凭证轮换的最佳实践，无需人工干预即可帮助您保持安全状态。

这些模板支持两种主要的轮换策略：
+ *Single-user 轮换*，用于更新单个用户的凭证。
+ *Alternating-users 轮换*，它维护两个独立的用户，以帮助消除凭据更改期间的停机时间。

Secrets Manager 还提供一个通用模板作为任何类型密钥的起点。

若要使用模板，请参阅：
+ [自动轮换数据库密钥（控制台）](rotate-secrets_turn-on-for-db.md)
+ [自动轮换非数据库密钥（控制台）](rotate-secrets_turn-on-for-other.md)

要编写自己的轮换函数，请参阅 [Write a rotation function](rotate-secrets_lambda-functions.md)。

**Contents**
+ [Amazon RDS 和 Amazon Aurora](#RDS_rotation_templates)
  + [Amazon RDS Db2 单用户](#sar-template-db2-singleuser)
  + [Amazon RDS Db2 交替用户](#sar-template-db2-multiuser)
  + [Amazon RDS MariaDB 单用户](#sar-template-mariadb-singleuser)
  + [Amazon RDS MariaDB 交替用户](#sar-template-mariadb-multiuser)
  + [Amazon RDS 和 Amazon Aurora MySQL 单用户](#sar-template-mysql-singleuser)
  + [Amazon RDS 和 Amazon Aurora MySQL 交替用户](#sar-template-mysql-multiuser)
  + [Amazon RDS Oracle 单用户](#sar-template-oracle-singleuser)
  + [Amazon RDS Oracle 交替用户](#sar-template-oracle-multiuser)
  + [Amazon RDS 和 Amazon Aurora PostgreSQL 单用户](#sar-template-postgre-singleuser)
  + [Amazon RDS 和 Amazon Aurora PostgreSQL 交替用户](#sar-template-postgre-multiuser)
  + [Amazon RDS Microsoft SQLServer 单用户](#sar-template-sqlserver-singleuser)
  + [Amazon RDS Microsoft SQLServer 交替用户](#sar-template-sqlserver-multiuser)
+ [Amazon DocumentDB（兼容 MongoDB）](#NON-RDS_rotation_templates)
  + [Amazon DocumentDB 单个用户](#sar-template-mongodb-singleuser)
  + [Amazon DocumentDB 交替用户](#sar-template-mongodb-multiuser)
+ [Amazon Redshift](#template-redshift)
  + [Amazon Redshift 单用户](#sar-template-redshift-singleuser)
  + [Amazon Redshift 交替用户](#sar-template-redshift-multiuser)
+ [Amazon Timestream for InfluxDB](#template-TimeStream)
  + [Amazon Timestream for InfluxDB 单用户](#template-TimeStream-singleuser)
  + [Amazon Timestream for InfluxDB 交替用户](#template-TimeStream-multiuser)
+ [Amazon ElastiCache](#template-ELC)
+ [Active Directory](#template-AD)
  + [Active Directory 凭证](#template-AD-password)
  + [Active Directory keytab](#template-AD-keytab)
+ [其他密钥类型](#OTHER_rotation_templates)

## Amazon RDS 和 Amazon Aurora
<a name="RDS_rotation_templates"></a>

### Amazon RDS Db2 单用户
<a name="sar-template-db2-singleuser"></a>
+ **模板名称：** SecretsManagerRDSDb2RotationSingleUser
+ **轮换策略：** [轮换策略：单用户](rotation-strategy.md#rotating-secrets-one-user-one-password)。
+ **`SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSDb2RotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSDb2RotationSingleUser/lambda_function.py)**
+ **依赖关系：p** [ython-](https://github.com/ibmdb/python-ibmdb) ibmdb 3.2.8

### Amazon RDS Db2 交替用户
<a name="sar-template-db2-multiuser"></a>
+ **模板名称：** SecretsManagerRDSDb2RotationMultiUser
+ **轮换策略：** [轮换策略：交替用户](rotation-strategy.md#rotating-secrets-two-users)。
+ **`SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码:** [https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSDb2RotationMultiUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSDb2RotationMultiUser/lambda_function.py)
+ **依赖关系：p** [ython-](https://github.com/ibmdb/python-ibmdb) ibmdb 3.2.8

### Amazon RDS MariaDB 单用户
<a name="sar-template-mariadb-singleuser"></a>
+ **模板名称：** SecretsManagerRDSMariaDBRotationSingleUser
+ **轮换策略：** [轮换策略：单用户](rotation-strategy.md#rotating-secrets-one-user-one-password)。
+ **`SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSMariaDBRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSMariaDBRotationSingleUser/lambda_function.py)**
+ **依赖关系：PyMy**[SQL 1.1.1](https://github.com/PyMySQL/PyMySQL)。如果你使用 sha256 密码进行身份验证，则为 PyMy SQL [rsa]。有关在 Lambda 运行时中使用含编译代码的包的信息，请参阅 *AWS 知识中心* 中的[如何将含已编译二进制文件的 Python 包添加到我的部署包，并使该包与 Lambda 兼容？](https://repost.aws/knowledge-center/lambda-python-package-compatible)。

### Amazon RDS MariaDB 交替用户
<a name="sar-template-mariadb-multiuser"></a>
+ **模板名称：** SecretsManagerRDSMariaDBRotationMultiUser
+ **轮换策略：** [轮换策略：交替用户](rotation-strategy.md#rotating-secrets-two-users)。
+ **`SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码:** [https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSMariaDBRotationMultiUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSMariaDBRotationMultiUser/lambda_function.py)
+ **依赖关系：PyMy**[SQL 1.1.1](https://github.com/PyMySQL/PyMySQL)。如果你使用 sha256 密码进行身份验证，则为 PyMy SQL [rsa]。有关在 Lambda 运行时中使用含编译代码的包的信息，请参阅 *AWS 知识中心* 中的[如何将含已编译二进制文件的 Python 包添加到我的部署包，并使该包与 Lambda 兼容？](https://repost.aws/knowledge-center/lambda-python-package-compatible)。

### Amazon RDS 和 Amazon Aurora MySQL 单用户
<a name="sar-template-mysql-singleuser"></a>
+ **模板名称：** SecretsManagerRDSMySQLRotationSingleUser
+ **轮换策略：** [轮换策略：单用户](rotation-strategy.md#rotating-secrets-one-user-one-password)。
+ **预期的 `SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码:** [https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSMySQLRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSMySQLRotationSingleUser/lambda_function.py)
+ **依赖关系：PyMy**[SQL 1.1.1](https://github.com/PyMySQL/PyMySQL)。如果你使用 sha256 密码进行身份验证，则为 PyMy SQL [rsa]。有关在 Lambda 运行时中使用含编译代码的包的信息，请参阅 *AWS 知识中心* 中的[如何将含已编译二进制文件的 Python 包添加到我的部署包，并使该包与 Lambda 兼容？](https://repost.aws/knowledge-center/lambda-python-package-compatible)。

### Amazon RDS 和 Amazon Aurora MySQL 交替用户
<a name="sar-template-mysql-multiuser"></a>
+ **模板名称：** SecretsManagerRDSMySQLRotationMultiUser
+ **轮换策略：** [轮换策略：交替用户](rotation-strategy.md#rotating-secrets-two-users)。
+ **预期的 `SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSMySQLRotationMultiUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSMySQLRotationMultiUser/lambda_function.py)**
+ **依赖关系：PyMy**[SQL 1.1.1](https://github.com/PyMySQL/PyMySQL)。如果你使用 sha256 密码进行身份验证，则为 PyMy SQL [rsa]。有关在 Lambda 运行时中使用含编译代码的包的信息，请参阅 *AWS 知识中心* 中的[如何将含已编译二进制文件的 Python 包添加到我的部署包，并使该包与 Lambda 兼容？](https://repost.aws/knowledge-center/lambda-python-package-compatible)。

### Amazon RDS Oracle 单用户
<a name="sar-template-oracle-singleuser"></a>
+ **模板名称：** SecretsManagerRDSOracleRotationSingleUser
+ **轮换策略：** [轮换策略：单用户](rotation-strategy.md#rotating-secrets-one-user-one-password)。
+ **预期的 `SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSOracleRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSOracleRotationSingleUser/lambda_function.py)**
+ **依赖项：**[python-oracledb 2.4.1](https://github.com/oracle/python-oracledb)

### Amazon RDS Oracle 交替用户
<a name="sar-template-oracle-multiuser"></a>
+ **模板名称：** SecretsManagerRDSOracleRotationMultiUser
+ **轮换策略：** [轮换策略：交替用户](rotation-strategy.md#rotating-secrets-two-users)。
+ **预期的 `SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSOracleRotationMultiUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSOracleRotationMultiUser/lambda_function.py)**
+ **依赖项：**[python-oracledb 2.4.1](https://github.com/oracle/python-oracledb)

### Amazon RDS 和 Amazon Aurora PostgreSQL 单用户
<a name="sar-template-postgre-singleuser"></a>
+ **模板名称：** SecretsManagerRDSPostgreSQLRotationSingleUser
+ **轮换策略：** [轮换策略：单用户](rotation-strategy.md#rotating-secrets-one-user-one-password)。
+ **预期的 `SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSPostgreSQLRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSPostgreSQLRotationSingleUser/lambda_function.py)**
+ **依赖关系：PyGre**[SQL 6.1.0](https://github.com/PyGreSQL/PyGreSQL)

### Amazon RDS 和 Amazon Aurora PostgreSQL 交替用户
<a name="sar-template-postgre-multiuser"></a>
+ **模板名称：** SecretsManagerRDSPostgreSQLRotationMultiUser
+ **轮换策略：** [轮换策略：交替用户](rotation-strategy.md#rotating-secrets-two-users)。
+ **预期的 `SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSPostgreSQLRotationMultiUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSPostgreSQLRotationMultiUser/lambda_function.py)**
+ **依赖关系：PyGre**[SQL 6.1.0](https://github.com/PyGreSQL/PyGreSQL)

### Amazon RDS Microsoft SQLServer 单用户
<a name="sar-template-sqlserver-singleuser"></a>
+ **模板名称：** SecretsManagerRDSSQLServerRotationSingleUser
+ **轮换策略：** [轮换策略：单用户](rotation-strategy.md#rotating-secrets-one-user-one-password)。
+ **预期的 `SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSSQLServerRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSSQLServerRotationSingleUser/lambda_function.py)**
+ **依赖关系：**[Pymssql 2.3.11](https://github.com/Pymssql/Pymssql)

### Amazon RDS Microsoft SQLServer 交替用户
<a name="sar-template-sqlserver-multiuser"></a>
+ **模板名称：** SecretsManagerRDSSQLServerRotationMultiUser
+ **轮换策略：** [轮换策略：交替用户](rotation-strategy.md#rotating-secrets-two-users)。
+ **预期的 `SecretString` 结构：**[Amazon RDS 和 Aurora 凭证](reference_secret_json_structure.md#reference_secret_json_structure_rds)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSSQLServerRotationMultiUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRDSSQLServerRotationMultiUser/lambda_function.py)**
+ **依赖关系：**[Pymssql 2.3.11](https://github.com/Pymssql/Pymssql)

## Amazon DocumentDB（兼容 MongoDB）
<a name="NON-RDS_rotation_templates"></a>

### Amazon DocumentDB 单个用户
<a name="sar-template-mongodb-singleuser"></a>
+ **模板名称：** SecretsManagerMongoDBRotationSingleUser
+ **轮换策略：** [轮换策略：单用户](rotation-strategy.md#rotating-secrets-one-user-one-password)。
+ **预期的 `SecretString` 结构：**[Amazon DocumentDB 凭证](reference_secret_json_structure.md#reference_secret_json_structure_docdb)。
+ **源代码:** [https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerMongoDBRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerMongoDBRotationSingleUser/lambda_function.py)
+ **依赖关系：PyMongo **[4.7.3](https://github.com/mongodb/mongo-python-driver)

### Amazon DocumentDB 交替用户
<a name="sar-template-mongodb-multiuser"></a>
+ **模板名称：** SecretsManagerMongoDBRotationMultiUser
+ **轮换策略：** [轮换策略：交替用户](rotation-strategy.md#rotating-secrets-two-users)。
+ **预期的 `SecretString` 结构：**[Amazon DocumentDB 凭证](reference_secret_json_structure.md#reference_secret_json_structure_docdb)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerMongoDBRotationMultiUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerMongoDBRotationMultiUser/lambda_function.py)**
+ **依赖关系：PyMongo **[4.7.3](https://github.com/mongodb/mongo-python-driver)

## Amazon Redshift
<a name="template-redshift"></a>

### Amazon Redshift 单用户
<a name="sar-template-redshift-singleuser"></a>
+ **模板名称：** SecretsManagerRedshiftRotationSingleUser
+ **轮换策略：** [轮换策略：单用户](rotation-strategy.md#rotating-secrets-one-user-one-password)。
+ **预期的 `SecretString` 结构：**[Amazon Redshift 凭证](reference_secret_json_structure.md#reference_secret_json_structure_RS)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRedshiftRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRedshiftRotationSingleUser/lambda_function.py)**
+ **依赖关系：**[红移](https://github.com/aws/amazon-redshift-python-driver)连接器 2.1.13

### Amazon Redshift 交替用户
<a name="sar-template-redshift-multiuser"></a>
+ **模板名称：** SecretsManagerRedshiftRotationMultiUser
+ **轮换策略：** [轮换策略：交替用户](rotation-strategy.md#rotating-secrets-two-users)。
+ **预期的 `SecretString` 结构：**[Amazon Redshift 凭证](reference_secret_json_structure.md#reference_secret_json_structure_RS)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRedshiftRotationMultiUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRedshiftRotationMultiUser/lambda_function.py)**
+ **依赖关系：**[红移](https://github.com/aws/amazon-redshift-python-driver)连接器 2.1.13

## Amazon Timestream for InfluxDB
<a name="template-TimeStream"></a>

要使用这些模板，请参阅《*Amazon Timestream 开发人员指南*》中的 [Amazon Timestream for InfluxDB 如何使用密钥](https://docs.aws.amazon.com/timestream/latest/developerguide/timestream-for-influx-security-db-secrets.html)。

### Amazon Timestream for InfluxDB 单用户
<a name="template-TimeStream-singleuser"></a>
+ **模板名称：** SecretsManagerInfluxDBRotationSingleUser
+ **预期的 `SecretString` 结构：**[Amazon Timestream for InfluxDB 密钥结构](reference_secret_json_structure.md#reference_secret_json_structure_TIME)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerInfluxDBRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerInfluxDBRotationSingleUser/lambda_function.py)**
+ **依赖项：**InfluxDB 2.0 python 客户端

### Amazon Timestream for InfluxDB 交替用户
<a name="template-TimeStream-multiuser"></a>
+ **模板名称：** SecretsManagerInfluxDBRotationMultiUser
+ **预期的 `SecretString` 结构：**[Amazon Timestream for InfluxDB 密钥结构](reference_secret_json_structure.md#reference_secret_json_structure_TIME)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerInfluxDBRotationMultiUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerInfluxDBRotationMultiUser/lambda_function.py)**
+ **依赖项：**InfluxDB 2.0 python 客户端

## Amazon ElastiCache
<a name="template-ELC"></a>

要使用此模板，请参阅 *Amazon 用户指南中的自动轮换 ElastiCache 用户*[密码](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/User-Secrets-Manager.html)。
+ **模板名称：** SecretsManagerElasticacheUserRotation
+ **预期的 `SecretString` 结构：**[Amazon ElastiCache 凭证](reference_secret_json_structure.md#reference_secret_json_structure_ELC)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerElasticacheUserRotation/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerElasticacheUserRotation/lambda_function.py)**

## Active Directory
<a name="template-AD"></a>

### Active Directory 凭证
<a name="template-AD-password"></a>
+ **模板名称：** SecretsManagerActiveDirectoryRotationSingleUser
+ **预期的 `SecretString` 结构：**[Active Directory 凭证](reference_secret_json_structure.md#reference_secret_json_structure_AD)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerActiveDirectoryRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerActiveDirectoryRotationSingleUser/lambda_function.py)**

### Active Directory keytab
<a name="template-AD-keytab"></a>
+ **模板名称：** SecretsManagerActiveDirectoryAndKeytabRotationSingleUser
+ **预期的 `SecretString` 结构：**[Active Directory 凭证](reference_secret_json_structure.md#reference_secret_json_structure_AD)。
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerActiveDirectoryAndKeytabRotationSingleUser/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerActiveDirectoryAndKeytabRotationSingleUser/lambda_function.py)**
+ **依赖项：**msktutil

## 其他密钥类型
<a name="OTHER_rotation_templates"></a>

Secrets Manager 提供此模板作为您为任何类型密钥创建轮换函数的起点。
+ **模板名称：** SecretsManagerRotationTemplate
+ **源代码：[https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRotationTemplate/lambda\_function.py](https://github.com/aws-samples/aws-secrets-manager-rotation-lambdas/tree/master/SecretsManagerRotationTemplate/lambda_function.py)**