Dans le premier message Dans cette série, nous avons regroupé les liaisons python pour l'API Qumulo et les avons téléchargées vers AWS Lambda en tant que couche. Maintenant, utilisons cette couche!

Faisons une fonction lambda pour faire pivoter le mot de passe administrateur du cluster. Nous allons utiliser AWS Secrets Manager, un service de gestion et de stockage des identifiants, pourotate notre mot de passe Qumulo. En utilisant ce service et l'API Qumulo, nous pouvons planifier des modifications automatiques et récurrentes du mot de passe administrateur de Qumulo. D'autres services (que nous écrirons dans une publication ultérieure) peuvent ensuite accéder au mot de passe de l'administrateur actuel via l'API AWS Secrets Manager.

Ce livre de recettes utilise AWS Lambda, IAM et Secrets Manager, ainsi qu’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

Nous supposons que certains noms de variable sont exécutés dans la région us-west-2. Adaptez ces valeurs à votre environnement.

Commençons par créer un secret dans AWS Secret Manger pour stocker les informations d'identification du cluster Qumulo. 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 '{"nom d'utilisateur": "admin", "password": ""," hôte ":" [ip d'un noeud du 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 le faire, nous devons créer un rôle IAM que la fonction Lambda assumera. Nous allons attacher 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 devra avoir accès à AWS CloudWatch pour télécharger les journaux et au VPC du cluster Qumulo pour modifier le mot de passe de l'administrateur. Le rôle «AWSLambdaVPCAccessExecutionRole» convient parfaitement à cette 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 du gestionnaire secret.

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 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 changer le secret de 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 stratégie. 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 rotation-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 dans un endroit sûr et changé régulièrement! Dans le prochain article, nous utiliserons les notifications S3 et l'API Qumulo pour écrire une fonction Lambda qui copie des fichiers sur Qumulo lorsqu'ils apparaissent dans un compartiment S3. Nous utiliserons le secret créé ici pour vous connecter par programmation au cluster afin de télécharger des fichiers.

Partager avec votre réseau