Azure Native Qumulo Maintenant disponible dans l'UE, au Royaume-Uni et au Canada - En savoir plus

Comment utiliser les fonctions Lambda avec Qumulo (Partie 2)

Rédigé par:
Comment utiliser une fonction Lambda pour faire pivoter le mot de passe administrateur d'un cluster et créer un secret dans AWS Secrets Manager pour stocker les informations d'identification du cluster.

Ceci est la dernière entrée d'une série en 2 parties sur comment utiliser les fonctions Lambda avec Qumulo. Dans la partie 1, nous avons empaqueté les liaisons python pour l'API Qumulo et les avons téléchargées sur AWS Lambda en tant que couche. Maintenant, utilisons ce calque !

Comment créer une fonction Lambda pour faire pivoter le mot de passe administrateur d'un cluster

Créons une fonction Lambda pour faire pivoter le mot de passe administrateur du cluster. Nous utiliserons AWS Secrets Manager, un service de gestion et de stockage des informations d'identification, pour faire pivoter le mot de passe de notre Qumulo.

En tirant parti de ce service et de l'API Qumulo, nous pouvons planifier des modifications automatiques et récurrentes du mot de passe administrateur Qumulo. D'autres services peuvent ensuite accéder au mot de passe administrateur actuel via l'API AWS Secrets Manager.

Ce livre de recettes utilise AWS Lambda, IAM, AWS Secrets Manager et un Qumulo Cluster s'exécutant dans AWS. Pour commencer, rassemblez les éléments suivants:

  • Le mot de passe administrateur de votre cluster Qumulo
  • Une adresse IP pour le cluster Qumulo
  • L'ID de sous-réseau et l'ID de groupe de sécurité contenant le cluster Qumulo
  • L'ARN de la couche Lambda créée dans le premier post

Comment créer un secret dans AWS Secrets Manager pour stocker les informations d'identification du cluster

Commençons par créer un secret dans AWS Secrets Manager pour stocker les informations d'identification du cluster Qumulo. (Nous supposons que certains noms de variables sont exécutés dans la région USA Ouest 2. Adaptez ces valeurs à votre environnement.) Remplacez les chaînes dans les carottes par les valeurs de votre environnement.

1. Remplissez les blancs et lancez cette commande:

aws secretsmanager create-secret --name "my-qumulo-credentials" --description "informations d'identification pour mon cluster qumulo" --secret-string '{"username":"admin", "password":"", "host" :"[ip d'un nœud dans le cluster]"}'

2. Notez l'ARN du secret de la sortie pour référence ultérieure.

Nous allons créer une fonction Lambda pour gérer ce secret dans un instant. Avant de faire cela, nous devons créer un rôle IAM que la fonction Lambda assumera. Nous attacherons des autorisations à ce rôle au fur et à mesure.

1. Exécutez cette commande:

aws iam create-role - nom_rôle QumuloSecretRotationRole --assume-role-policy-document '{"Version": "2012-10-17", "Instruction": [{"Action": "sts: AssumeRole", "Effet": "Autoriser", "Principal": {"Service": "lambda.amazonaws.com"}}]} '

2. Notez l'ARN du rôle IAM créé pour référence ultérieure.

La fonction Lambda aura besoin d'accéder à AWS CloudWatch pour charger les journaux et au VPC du cluster Qumulo pour modifier le mot de passe administrateur. Le rôle AWSLambdaVPCAccessExecutionRole</var/www/wordpress> is perfect for this situation.

1. Exécutez cette commande:

aws iam attach-role-policy - nom_rôle QumuloSecretRotationRole --policy-arn "arn: aws: iam :: aws: policy / service-role / AWSLambdaVPCAccessExecutionRole"

Créez la fonction lambda à partir de l'exemple sur le github Qumulo. Nous configurons la fonction Lambda pour utiliser la couche Lambda créée dans le premier post. La fonction implémente Flux de travail de rotation 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. Exécutez cette commande:

aws lambda create-function --function-name "QumuloAdminPasswordRotationFunction" --runtime "python2.7" --handler "qumulo_secret_rotation_lambda.lambda_handler" --zip-file fileb: //qumulo_rotation_lambda.shok --vpc-config "SubnetIds = [sous-réseau de Qumulo], SecurityGroupIds = [Groupe de sécurité de Qumulo]" --timeout 30 --description "Faire pivoter le mot de passe de l'administrateur d'un cluster Qumulo" --publish --environment "Variables = {SECRETS_MANAGER_ENDPOINT = //secretsmanager.us-west-2.amazonaws.com} "--role" [ARN du rôle IAM] "

5. Notez l'ARN de la fonction lambda pour toute référence ultérieure.

Le service AWS Secrets Manager doit être autorisé à appeler notre fonction Lambda. Exécutez cette commande :

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

Maintenant que nous avons créé une fonction Lambda, nous pouvons lui accorder l'autorisation de modifier le secret Qumulo. Nous voulons que les utilisateurs de cette fonction ne puissent modifier le secret que via la fonction, ce que nous accomplissons en spécifiant l'ARN de la fonction dans la politique. Après cette étape, tous les autorisations nécessaires pour appeler notre fonction lambda et lui demander de faire son travail doit être configuré.

1. Éditez qumulo-lambda-samples / qumulo_secret_rotation_policy.json en remplaçant par celui noté ci-dessus.
2. Exécutez cette commande:

aws iam politique de vente de rôle - nom de rôle QumuloSecretRotationRole - nom de politique "QumuloSecretRotationPolicy" - fichier de politique-document: //qumulo_secret_rotation_policy.json

Maintenant que nous avons configuré un secret, une fonction et des autorisations, nous pouvons associer la fonction lambda au secret et activer la rotation automatisée.

Exécutez cette commande:

aws secretsmanager rotate-secret --secret-id "" --rotation-lambda-arn "[ARN de la fonction lambda]" --rotation-rules "AutomaticallyAfterDays=30"

Une rotation a été déclenchée automatiquement. Donnez-lui une minute pour terminer, puis consultez le gestionnaire de secrets pour voir le nouveau mot de passe (ou les journaux CloudWatch pour voir les problèmes éventuels). Cette commande va récupérer le secret:

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

Maintenant, votre mot de passe Qumulo est en lieu sûr et changé régulièrement !

Dans un prochain article, nous utiliserons les notifications S3 et l'API Qumulo pour écrire une fonction Lambda qui copie les fichiers sur Qumulo lorsqu'ils apparaissent dans un compartiment S3. Nous utiliserons le secret créé ici pour nous connecter par programmation au cluster afin de télécharger des fichiers.

Articles Similaires

Remonter en haut