Installation de Guard en tant que AWS Lambda fonction - AWS CloudFormation Guard

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Installation de Guard en tant que AWS Lambda fonction

Vous pouvez l'installer AWS CloudFormation Guard via Cargo, le gestionnaire de paquets de Rust. Guard as an AWS Lambda function (cfn-guard-lambda) est une enveloppe légère autour de Guard (cfn-guard) qui peut être utilisée comme fonction Lambda.

Prérequis

Avant de pouvoir installer Guard en tant que fonction Lambda, vous devez remplir les conditions préalables suivantes :

  • AWS Command Line Interface (AWS CLI) configuré avec les autorisations nécessaires pour déployer et invoquer des fonctions Lambda. Pour plus d’informations, consultez Configuration de l’ AWS CLI.

  • Un rôle AWS Lambda d'exécution dans AWS Identity and Access Management (IAM). Pour plus d'informations, consultez la section rôle AWS Lambda d'exécution.

  • Dans les RHEL environnements CentOS/, ajoutez le référentiel de musl-libc packages à votre configuration yum. Pour plus d'informations, consultez ngompa/musl-libc.

Installez le gestionnaire de paquets Rust

Cargo est le gestionnaire de paquets de Rust. Procédez comme suit pour installer Rust, qui inclut Cargo.

  1. Exécutez la commande suivante depuis un terminal, puis suivez les instructions à l'écran pour installer Rust.

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    1. (Facultatif) Pour les environnements Ubuntu, exécutez la commande suivante.

      sudo apt-get update; sudo apt install build-essential
  2. Configurez votre variable d'PATHenvironnement et exécutez la commande suivante.

    source $HOME/.cargo/env

Installez Guard en tant que fonction Lambda (Linux, macOS ou Unix)

Pour installer Guard en tant que fonction Lambda, procédez comme suit.

  1. Depuis votre terminal de commande, exécutez la commande suivante.

    cargo install cfn-guard-lambda
    1. (Facultatif) Pour confirmer l'installation de Guard en tant que fonction Lambda, exécutez la commande suivante.

      cfn-guard-lambda --version

      La commande renvoie le résultat suivant.

      cfn-guard-lambda 3.0.0
  2. Pour installer musl le support, exécutez la commande suivante.

    rustup target add x86_64-unknown-linux-musl
  3. Compilez avecmusl, puis exécutez la commande suivante dans votre terminal.

    cargo build --release --target x86_64-unknown-linux-musl

    Pour un environnement d'exécution personnalisé, AWS Lambda nécessite un exécutable dont le nom figure bootstrap dans le fichier .zip du package de déploiement. Renommez l'cfn-lambdaexécutable généré en, bootstrap puis ajoutez-le à l'archive .zip.

    1. Pour les environnements macOS, créez votre fichier de configuration de chargement à la racine du projet Rust ou dans~/.cargo/config.

      [target.x86_64-unknown-linux-musl] linker = "x86_64-linux-musl-gcc"
  4. Accédez au répertoire cfn-guard-lambda racine.

    cd ~/.cargo/bin/cfn-guard-lambda
  5. Exécutez la commande suivante dans votre terminal.

    cp ./../target/x86_64-unknown-linux-musl/release/cfn-guard-lambda ./bootstrap && zip lambda.zip bootstrap && rm bootstrap
  6. Exécutez la commande suivante pour l'envoyer cfn-guard en tant que fonction Lambda à votre compte.

    aws lambda create-function --function-name cfnGuard \ --handler guard.handler \ --zip-file fileb://./lambda.zip \ --runtime provided \ --role arn:aws:iam::444455556666:role/your_lambda_execution_role \ --environment Variables={RUST_BACKTRACE=1} \ --tracing-config Mode=Active

Pour créer et exécuter Guard en tant que fonction Lambda

Pour appeler la fonction soumise cfn-guard-lambda en tant que fonction Lambda, exécutez la commande suivante.

aws lambda invoke --function-name cfnGuard \ --payload '{"data":"input data","rules":["rule1","rule2"]}' \ output.json

Pour appeler la structure de demande de la fonction Lambda

Demandes visant à cfn-guard-lambda exiger les champs suivants :

  • data— La version sous forme de chaîne du JSON modèle YAML or

  • rules— La version sous forme de chaîne du fichier d'ensemble de règles