Instalación de Guard como AWS Lambda función - AWS CloudFormation Guard

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Instalación de Guard como AWS Lambda función

Puede instalarlo AWS CloudFormation Guard a través de Cargo, el administrador de paquetes de Rust. Guard as an AWS Lambda function (cfn-guard-lambda) es un envoltorio ligero alrededor de Guard (cfn-guard) que se puede utilizar como una función Lambda.

Requisitos previos

Antes de poder instalar Guard como una función de Lambda, debe cumplir los siguientes requisitos previos:

  • AWS Command Line Interface (AWS CLI) configurado con permisos para implementar e invocar funciones Lambda. Para obtener más información, consulte Configuración de la AWS CLI.

  • Una función AWS Lambda de ejecución en AWS Identity and Access Management (IAM). Para obtener más información, consulte función AWS Lambda de ejecución.

  • En CentOS/RHEL los entornos, agrega el repositorio de musl-libc paquetes a tu configuración de yum. Para obtener más información, consulta ngompa/musl-libc.

Instale el administrador de paquetes Rust

Cargo es el administrador de paquetes de Rust. Complete los siguientes pasos para instalar Rust, que incluye Cargo.

  1. Ejecute el siguiente comando desde una terminal y, a continuación, siga las instrucciones que aparecen en pantalla para instalar Rust.

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    1. (Opcional) Para entornos Ubuntu, ejecuta el siguiente comando.

      sudo apt-get update; sudo apt install build-essential
  2. Configure la variable de PATH entorno y ejecute el siguiente comando.

    source $HOME/.cargo/env

Instalar Guard como una función Lambda (Linux, macOS o Unix)

Para instalar Guard como una función Lambda, complete los siguientes pasos.

  1. Desde su terminal de comandos, ejecute el siguiente comando.

    cargo install cfn-guard-lambda
    1. (Opcional) Para confirmar la instalación de Guard como función Lambda, ejecute el siguiente comando.

      cfn-guard-lambda --version

      El comando devuelve el resultado siguiente.

      cfn-guard-lambda 3.1.2
  2. Para instalar el musl soporte, ejecute el siguiente comando.

    rustup target add x86_64-unknown-linux-musl
  3. Compile con musl el siguiente comando y, a continuación, ejecútelo en su terminal.

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

    Para un tiempo de ejecución personalizado, AWS Lambda requiere un ejecutable con el nombre del bootstrap archivo .zip del paquete de implementación. Cambie el nombre del cfn-lambda ejecutable generado a bootstrap y, a continuación, agréguelo al archivo.zip.

    1. Para entornos macOS, cree su archivo de configuración de carga en la raíz del proyecto Rust o en~/.cargo/config.

      [target.x86_64-unknown-linux-musl] linker = "x86_64-linux-musl-gcc"
  4. Cambia al directorio cfn-guard-lambda raíz.

    cd ~/.cargo/bin/cfn-guard-lambda
  5. Ejecute el siguiente comando en su terminal.

    cp ./../target/x86_64-unknown-linux-musl/release/cfn-guard-lambda ./bootstrap && zip lambda.zip bootstrap && rm bootstrap
  6. Ejecute el siguiente comando para enviarlo cfn-guard como una función Lambda a su cuenta.

    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

Para crear y ejecutar Guard como una función Lambda

Para invocar la función enviada cfn-guard-lambda como una función Lambda, ejecute el siguiente comando.

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

Para llamar a la estructura de solicitudes de funciones Lambda

Solicita que se cfn-guard-lambda requieran los siguientes campos:

  • data— La versión en cadena de la plantilla YAML o JSON

  • rules— La versión en cadena del archivo del conjunto de reglas