Azure Native Qumulo ahora disponible en la UE, el Reino Unido y Canadá: Más información

Cómo usar funciones Lambda con Qumulo (Parte 2)

Escrito por:
Cómo una función de Lambda rota la contraseña de administrador de un clúster y crea un secreto en AWS Secrets Manager para almacenar las credenciales del clúster.

Esta es la entrada final de una serie de dos partes sobre cómo usar las funciones Lambda con Qumulo. En la parte 1, empaquetamos los enlaces de Python para la API de Qumulo y los cargamos en AWS Lambda como una capa. ¡Ahora, usemos esta capa!

Cómo crear una función Lambda para rotar la contraseña de administrador de un clúster

Hagamos una función Lambda para rotar la contraseña de administrador del clúster. usaremos Director de secretos de AWS, un servicio para administrar y almacenar credenciales, para rotar la contraseña de nuestro Qumulo.

Al aprovechar este servicio y la API de Qumulo, podemos programar cambios automáticos recurrentes en la contraseña de administrador de Qumulo. Luego, otros servicios pueden acceder a la contraseña de administrador actual a través de la API de AWS Secrets Manager.

Este libro de cocina utiliza AWS Lambda, IAM, AWS Secrets Manager y un Qumulo Cluster se ejecuta en AWS. Para empezar, reúne lo siguiente:

  • La contraseña de administrador de su clúster Qumulo
  • Una dirección IP para el cluster Qumulo
  • El ID de subred y el ID de grupo de seguridad que contiene el clúster Qumulo
  • El ARN de la capa Lambda creada en la primera publicación.

Cómo crear un secreto en AWS Secrets Manager para almacenar credenciales de clúster

Primero, creemos un secreto en AWS Secrets Manager para almacenar las credenciales del clúster de Qumulo. (Suponemos algunos nombres de variables y que esto se está ejecutando en la Región EE. UU. Oeste 2. Adapte estos valores a su entorno). Reemplace las cadenas en zanahorias con valores de su entorno.

1. Completa los espacios en blanco y ejecuta este comando:

aws secretsmanager create-secret --name "my-qumulo-credentials" --description "credenciales para mi clúster de qumulo" --secret-string '{"username":"admin", "password":"", "host" :"[ip de un nodo en el clúster]"}'

2. Anote el ARN del secreto de la salida para referencia posterior.

Crearemos una función Lambda para gestionar este secreto en un momento. Antes de hacerlo, debemos crear un rol de IAM que asumirá la función Lambda. Adjuntaremos permisos a este rol a medida que avancemos.

1. Ejecuta este comando:

aws iam create-role - nombre de rol QumuloSecretRotationRole --assume-role-policy-document '{"Version": "2012-10-17", "Statement": [{"Action": "sts: AssumeRole", "Efecto": "Permitir", "Principal": {"Servicio": "lambda.amazonaws.com"}}]} '

2. Tenga en cuenta el ARN del rol IAM creado para su posterior referencia.

La función Lambda necesitará acceso a AWS CloudWatch para cargar registros y la VPC del clúster de Qumulo para cambiar la contraseña de administrador. El papel AWSLambdaVPCAccessExecutionRole</var/www/wordpress> is perfect for this situation.

1. Ejecuta este comando:

aws iam attach-role-policy - nombre de rol QumuloSecretRotationRole --policy-arn "arn: aws: iam :: aws: policy / service-role / AWSLambdaVPCAccessExecutionRole"

Cree la función lambda de la muestra en el Qumulo Github. Configuramos la función Lambda para usar la capa Lambda creada. en el primer post. La función implementa. Flujo de trabajo de rotación de Secret Manager.

1. git clone https://github.com/Qumulo/cloud-samples.git
2. cd lambda
3. zip ./qumulo_secret_rotation_lambda.zip ./qumulo_secret_rotation_lambda.py
4. Ejecuta este comando:

aws lambda create-function --function-name "QumuloAdminPasswordRotationFunction" --runtime "python2.7" --handler "qumulo_secret_rotation_lambda.lambda_handler" sistemas / "" --vpc-config "SubnetIds = [Subred Qumulo], SecurityGroupIds = [Grupo de seguridad de Qumulo]" --timeout 30 --description "Gire la contraseña de administrador de un Qumulo Cluster" --publish --environment "Variables = {SECRETS_MANAGER_ENDPOINT = https: //secretsmanager.us-west-2.amazonaws.com} "--role" [ARN de rol IAM] "

5. Note la función lambda ARN para referencia futura.

El servicio de AWS Secrets Manager debe tener permiso para invocar nuestra función Lambda. Ejecute este comando:

aws lambda add-permission --function-name "[lambda function ARN]" --statement-id SecretsManagerInvocation --principal "secretsmanager.amazonaws.com" --action "lambda: InvokeFunction"

Ahora que hemos creado una función Lambda, podemos otorgarle permiso para cambiar el secreto de Qumulo. Queremos que los usuarios de esta función solo puedan cambiar el secreto a través de la función, lo cual logramos especificando el ARN de la función en la política. Después de este paso, todos los permisos necesarios para llamar a nuestra función lambda y hacer que haga su trabajo debe configurarse.

1. Edite qumulo-lambda-samples / qumulo_secret_rotation_policy.json reemplazando con el anotado arriba.
2. Ejecuta este comando:

aws iam put-role-policy - nombre de rol QumuloSecretRotationRole --policy-name "QumuloSecretRotationPolicy" --policy-document file: //qumulo_secret_rotation_policy.json

Ahora que tenemos un secreto, una función y permisos configurados, podemos asociar la función lambda con el secreto y habilitar la rotación automatizada.

Ejecute este comando:

aws secretsmanager rotar-secret --secret-id "" --rotation-lambda-arn "[ARN de función lambda]" --rotation-rules "AutomaticallyAfterDays=30"

Una rotación se activó automáticamente. Dale un minuto para finalizar y luego verifica el administrador de secretos para ver la nueva contraseña (o los registros de CloudWatch para ver cualquier problema). Este comando recuperará el secreto:

aws secretsmanager get-secret-value --secret-id "[ARN secreto]"

¡Ahora su contraseña de Qumulo está en un lugar seguro y se cambia periódicamente!

En una publicación futura, usaremos las notificaciones de S3 y la API de Qumulo para escribir una función de Lambda que copie archivos en Qumulo cuando aparezcan en un depósito de S3. Haremos uso del secreto creado aquí para iniciar sesión mediante programación en el clúster para cargar archivos.

Artículos Relacionados

Ir al Inicio