Estructura JSON de los secretos de AWS Secrets Manager - AWS Secrets Manager

Estructura JSON de los secretos de AWS Secrets Manager

En un secreto de Secrets Manager, puede almacenar cualquier texto o binario con un tamaño máximo de 65 536 bytes.

Si usa Rotación con función de Lambda, un secreto debe contener los campos JSON específicos que la función de rotación espera. Por ejemplo, en el caso de un secreto que contiene credenciales de base de datos, la función de rotación se conecta a la base de datos para actualizar las credenciales, por lo que el secreto debe contener la información de conexión a la base de datos.

Si utiliza la consola para editar la rotación de un secreto de base de datos, el secreto debe contener pares clave-valor JSON específicos que identifiquen la base de datos. Secrets Manager utiliza estos campos para consultar la base de datos y encontrar la VPC correcta para almacenar una función de rotación.

Los nombres de clave JSON distinguen entre mayúsculas y minúsculas.

Credenciales de Amazon RDS y Aurora

Para utilizar las plantillas de funciones de rotación que proporciona Secrets Manager, utilice la siguiente estructura JSON. Puede agregar más pares clave/valor; por ejemplo, para contener información de conexión de bases de datos de réplicas de otras regiones.

DB2

En el caso de las instancias Db2 de Amazon RDS, dado que los usuarios no pueden cambiar sus propias contraseñas, debe proporcionar las credenciales de administrador en un secreto independiente.

{ "engine": "db2", "host": "<instance host name/resolvable DNS name>", "username": "<username>", "password": "<password>", "dbname": "<database name. If not specified, defaults to None>", "port": <TCP port number. If not specified, defaults to 3306>, "masterarn": "<ARN of the elevated secret>", "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>", "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>" }
MariaDB
{ "engine": "mariadb", "host": "<instance host name/resolvable DNS name>", "username": "<username>", "password": "<password>", "dbname": "<database name. If not specified, defaults to None>", "port": <TCP port number. If not specified, defaults to 3306>, "masterarn": "<optional: ARN of the elevated secret. Required for the Estrategia de rotación: usuarios alternativos.>", "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>", "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>" }
MySQL
{ "engine": "mysql", "host": "<instance host name/resolvable DNS name>", "username": "<username>", "password": "<password>", "dbname": "<database name. If not specified, defaults to None>", "port": <TCP port number. If not specified, defaults to 3306>, "masterarn": "<optional: ARN of the elevated secret. Required for the Estrategia de rotación: usuarios alternativos.>", "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>", "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>" }
Oracle
{ "engine": "oracle", "host": "<instance host name/resolvable DNS name>", "username": "<username>", "password": "<password>", "dbname": "<database name>", "port": <TCP port number. If not specified, defaults to 1521>, "masterarn": "<optional: ARN of the elevated secret. Required for the Estrategia de rotación: usuarios alternativos.>", "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>", "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>" }
Postgres
{ "engine": "postgres", "host": "<instance host name/resolvable DNS name>", "username": "<username>", "password": "<password>", "dbname": "<database name. If not specified, defaults to 'postgres'>", "port": <TCP port number. If not specified, defaults to 5432>, "masterarn": "<optional: ARN of the elevated secret. Required for the Estrategia de rotación: usuarios alternativos.>", "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>", "dbClusterIdentifier": <optional: ID of the cluster. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>" }
SQLServer
{ "engine": "sqlserver", "host": "<instance host name/resolvable DNS name>", "username": "<username>", "password": "<password>", "dbname": "<database name. If not specified, defaults to 'master'>", "port": <TCP port number. If not specified, defaults to 1433>, "masterarn": "<optional: ARN of the elevated secret. Required for the Estrategia de rotación: usuarios alternativos.>", "dbInstanceIdentifier": <optional: ID of the instance. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>", "dbClusterIdentifier": <optional: ID of the cluster.Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>" }

Credenciales de Amazon Redshift

Para utilizar las plantillas de funciones de rotación que proporciona Secrets Manager, utilice la siguiente estructura JSON. Puede agregar más pares clave/valor; por ejemplo, para contener información de conexión de bases de datos de réplicas de otras regiones.

{ "engine": "redshift", "host": "<instance host name/resolvable DNS name>", "username": "<username>", "password": "<password>", "dbname": "<database name. If not specified, defaults to None>", "dbClusterIdentifier": "<optional: database ID. Required for configuring rotation in the console.>" "port": <optional: TCP port number. If not specified, defaults to 5439> "masterarn": "<optional: ARN of the elevated secret. Required for the Estrategia de rotación: usuarios alternativos.>" }

Credenciales de Amazon Redshift sin servidor

Para utilizar las plantillas de funciones de rotación que proporciona Secrets Manager, utilice la siguiente estructura JSON. Puede agregar más pares clave/valor; por ejemplo, para contener información de conexión de bases de datos de réplicas de otras regiones.

{ "engine": "redshift", "host": "<instance host name/resolvable DNS name>", "username": "<username>", "password": "<password>", "dbname": "<database name. If not specified, defaults to None>", "namespaceName": "<optional: namespace name, Required for configuring rotation in the console.> " "port": <optional: TCP port number. If not specified, defaults to 5439> "masterarn": "<optional: ARN of the elevated secret. Required for the Estrategia de rotación: usuarios alternativos.>" }

Credenciales de Amazon DocumentDB

Para utilizar las plantillas de funciones de rotación que proporciona Secrets Manager, utilice la siguiente estructura JSON. Puede agregar más pares clave/valor; por ejemplo, para contener información de conexión de bases de datos de réplicas de otras regiones.

{ "engine": "mongo", "host": "<instance host name/resolvable DNS name>", "username": "<username>", "password": "<password>", "dbname": "<database name. If not specified, defaults to None>", "port": <TCP port number. If not specified, defaults to 27017>, "ssl": <true|false. If not specified, defaults to false>, "masterarn": "<optional: ARN of the elevated secret. Required for the Estrategia de rotación: usuarios alternativos.>", "dbClusterIdentifier": "<optional: database cluster ID. Alternately, use dbInstanceIdentifier. Required for configuring rotation in the console.>" "dbInstanceIdentifier": "<optional: database instance ID. Alternately, use dbClusterIdentifier. Required for configuring rotation in the console.>" }

Estructura secreta de Amazon Timestream para InfluxDB

Para rotar los secretos de Timestream, puede utilizar las plantillas de rotación Amazon Timestream para InfluxDB.

Para obtener más información, consulte Cómo utiliza los secretos Amazon Timestream para InfluxDB en la Guía para desarrolladores de Amazon Timestream.

Los secretos de Timestream deben estar en la estructura JSON correcta para poder utilizar las plantillas de rotación. Para obtener más información, consulte Qué hay en el secreto en la Guía para desarrolladores de Amazon Timestream.

Credenciales de Amazon ElastiCache

En el siguiente ejemplo, se muestra la estructura JSON para un secreto que almacena credenciales de ElastiCache.

{ "password": "<password>", "username": "<username>" "user_arn": "ARN of the Amazon EC2 user" }

Para obtener más información, consulte Rotación automática de contraseñas para usuarios en la Guía del usuario de Amazon ElastiCache.

Credenciales de Active Directory

AWS Directory Service usa secretos para almacenar las credenciales de Active Directory. Para obtener más información, consulte Cómo unir sin problemas una instancia Linux de Amazon EC2 a su Active Directory de AD administrado en la Guía de administración de AWS Directory Service. La unión sin problemas de dominios requiere los nombres de claves de los siguientes ejemplos. Si no utiliza la unión de dominios fluida, puede cambiar los nombres de las claves del secreto mediante variables de entorno, tal y como se describe en el código de la plantilla de la función de rotación.

Para rotar los secretos de Active Directory, puede usar las plantillas de rotación de Active Directory.

Active Directory credential
{ "awsSeamlessDomainUsername": "<username>", "awsSeamlessDomainPassword": "<password>" }

Si desea rotar el secreto, incluya el ID del directorio del dominio.

{ "awsSeamlessDomainDirectoryId": "d-12345abc6e", "awsSeamlessDomainUsername": "<username>", "awsSeamlessDomainPassword": "<password>" }

Si el secreto se usa junto con un secreto que contiene un keytab, debe incluir los ARN secretos del keytab.

{ "awsSeamlessDomainDirectoryId": "d-12345abc6e", "awsSeamlessDomainUsername": "<username>", "awsSeamlessDomainPassword": "<password>", "directoryServiceSecretVersion": 1, "schemaVersion": "1.0", "keytabArns": [ "<ARN of child keytab secret 1>, "<ARN of child keytab secret 2>, "<ARN of child keytab secret 3>, ], "lastModifiedDateTime": "2021-07-19 17:06:58" }
Active Directory keytab

Para obtener información sobre el uso de archivos keytab para autenticarse en cuentas de Active Directory en Amazon EC2, consulte Implementación y configuración de la autenticación de Active Directory con SQL Server 2017 en Amazon Linux 2.

{ "awsSeamlessDomainDirectoryId": "d-12345abc6e", "schemaVersion": "1.0", "name": "< name>", "principals": [ "aduser@MY.EXAMPLE.COM", "MSSQLSvc/test:1433@MY.EXAMPLE.COM" ], "keytabContents": "<keytab>", "parentSecretArn": "<ARN of parent secret>", "lastModifiedDateTime": "2021-07-19 17:06:58" "version": 1 }