¿Cómo administrar secretos utilizando AWS Secrets Manager y RDS?

Como Administrar Secretos Utilizando Aws Secrets Manager Y Rds



Amazon Relational Database es uno de los servicios de bases de datos relacionales que son más fáciles y sencillos de operar y ejecutar consultas complejas. Siguiendo la sintaxis de las consultas SQL, este servicio de AWS es más rápido que las bases de datos tradicionales y escala automáticamente la base de datos según los requisitos de la aplicación. Con AWS RDS, elimina la necesidad de configurar de forma personalizada el hardware o realizar configuraciones de software para ejecutar las consultas.

Este artículo muestra cómo administrar secretos mediante AWS Secrets Manager y RDS.

¿Qué es un gerente secreto?

Expertos y personas de todo el mundo también han planteado amenazas a la seguridad y preocupaciones sobre la privacidad. Para proteger sus secretos digitales, como credenciales de bases de datos, API y tokens, AWS Secret Manager es su herramienta de referencia para este propósito.







AWS Secret Manager ayuda a empresas y organizaciones a proteger sus recursos y servicios de intenciones maliciosas y ciberataques para secuestrar o robar datos confidenciales. Este servicio agrega una capa adicional de seguridad a los recursos y le permite escalar y administrar los secretos fácilmente.



¿Cómo administrar secretos utilizando AWS Secret Manager y RDS?

Siempre que un usuario configura el clúster RDS, requiere información sobre la región, el nombre de usuario y la contraseña del clúster y lo identifica mediante un identificador único del clúster. La integración de RDS con Secret Manager le permitirá proteger sus credenciales de RDS y administrarlas en consecuencia.



Al utilizar Secret Manager, puede definir el ciclo de vida de estos secretos e integrarlos con otros recursos. Aquí, en este artículo, agregaremos AWS Secret Manager con función Lambda a nuestro clúster RDS.





A continuación se detallan algunos pasos para este propósito:

Paso 1: crear un clúster RDS

Secret Manager se utiliza ampliamente para proteger las credenciales de la base de datos. Entonces, el primer paso es crear un clúster RDS. Para ello, consulte este artículo: “ ¿Cómo crear un clúster RDS en AWS? ”. Tenemos el cluster RDS funcionando:



Paso 2: Administrador secreto de AWS

En la Consola de administración de AWS, busque y seleccione ' Gerente de secretos ”:

En la interfaz de Secret Manager, haga clic en el “Guarda un nuevo secreto” botón:

En el tipo secreto , Selecciona el 'Credenciales para la base de datos de Amazon RDS' opción mientras la estamos configurando para el RDS:

El siguiente es el Cartas credenciales sección. En esta sección, proporcione la Nombre de usuario y Contraseña para la base de datos RDS que acabamos de crear:

En el Clave de encriptación sección, el usuario puede usar el predeterminado proporcionado por AWS Secret Manager o crear uno nuevo haciendo clic en el “Agregar nueva clave” opción. De manera similar, en el Base de datos sección, seleccione la “instancia de base de datos” que has creado y pulsa el 'Próximo' botón:

Proporcione un nombre único para el 'Secreto' eso nos ayudará a identificarlo más adelante. La descripción es opcional. Sin embargo, el usuario también puede proporcionar una descripción personalizada aquí:

en la interfaz , El Secret Manager también nos proporciona la posibilidad de replicar el secreto. Para ello, seleccione una región en la que desee crear la replicación. En esta demostración, no requerimos ninguna replicación, por lo tanto, manteniendo el resto de la configuración predeterminada, toque el 'Próximo' botón:

Manteniendo el valor predeterminado, ahora revisamos y editamos la información. Después de confirmar la información proporcionada, haga clic en el 'Almacenar' botón para crear y almacenar el secreto:

Aquí el secreto está creado exitosamente . Clickea en el ' nombre del secreto ”para ver sus configuraciones:

Desplazándonos hacia abajo en la interfaz, tendremos la sección Código de muestra. En esta sección, se genera un código por parte del Gerente Secreto. Copie este código ya que se utilizará en el Función Lambda:

// Utilice este fragmento de código en tu aplicación.
// Si necesitas más Para obtener información sobre las configuraciones o la implementación del código de muestra, visite los documentos de AWS:
// https: // docs.aws.amazon.com / SDK para Javascript / v3 / guía-desarrollador / cómo empezar.html

importar {
Cliente SecretsManager,
GetSecretValueCommand,
} de '@aws-sdk/administrador-de-secretos-del-cliente' ;

const nombre_secreto = 'misecreto1/sh' ;

cliente constante = nuevo SecretsManagerClient ( {
región: 'ap-sureste-1' ,
} ) ;

dejar respuesta;

intentar {
respuesta = esperar cliente.enviar (
nuevo comando GetSecretValue ( {
SecretId: nombre_secreto,
VersiónEtapa: 'AWSCURRENTE' , // VersionStage tiene como valor predeterminado AWSCURRENT si no especificado
    } )
  ) ;
} atrapar ( error ) {
  // Para obtener una lista de excepciones lanzadas, consulte
  // https: // docs.aws.amazon.com / administrador de secretos / el último / referencia /
API_GetSecretValue.html
error de lanzamiento;
}

const secreto = respuesta.SecretString;

// Tu código va aquí

Paso 3: crear la función Lambda

En la interfaz de la función Lambda, haga clic en ' Crear una función ' botón:

Clickea en el “Autor desde cero” opción de la “Crear una función” interfaz:

A continuación avanzamos hacia el 'Información básica' sección. Proporcione el nombre de la función en el 'Nombre de la función' campo y luego proporcione el 'Tiempo de ejecución' ambiente. Aquí hemos seleccionado el “Nodo.js 16.x” en el campo Tiempo de ejecución:

Clickea en el “Crear función” botón:

Aquí, hemos pegado el código que fue generado por el Gerente secreto . Después de pegar el código, haga clic en el 'Desplegar' botón:

Después de implementar todos los cambios, haga clic en el 'Configuración' pestaña para permitir permisos para Secret Manager:

Clickea en el “Permisos” opción de la “Configuraciones” pestaña. Esto mostrará el “ Rol de ejecución” interfaz y haga clic en el siguiente enlace debajo del 'Nombre de rol' campo:

En el “Políticas de permisos” sección, haga clic en el 'Agregar permisos' botón. En el menú desplegable, haga clic en el “Adjuntar políticas” opción:

En el “Otras políticas de permisos” sección, busque y seleccione el “SecretsManagerLeerEscribir” opción. Golpea el 'Agregar permisos' botón:

Aquí la política se ha adjuntado y configurado correctamente:

Paso 4: verificar el acceso secreto

Ahora vaya a la interfaz del panel Lambda. Clickea en el 'Prueba' pestaña:

En la siguiente interfaz, proporcione un nombre para el evento de prueba en el 'Nombre del evento' campo. Clickea en el 'Ahorrar' Botón para aplicar configuraciones:

Aquí la prueba se ha configurado correctamente. Clickea en el 'Prueba' botón:

Aquí haremos clic en el 'Prueba' botón nuevamente y mostrará el siguiente resultado:

Eso es todo de esta guía.

Conclusión

Para administrar secretos en Secret Manager, cree el clúster RDS, asócielo a Secret Manager y luego ejecute ese código en la función Lambda configurada. La función Lambda definirá si se puede acceder al secreto o no ejecutando el código que contiene la especificación del clúster RDS. Este artículo es una guía paso a paso para administrar secretos mediante AWS Secret Manager y RDS.