AWS Lambda 関数としての Guard のインストール - AWS CloudFormation Guard

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Lambda 関数としての Guard のインストール

は、Rust パッケージマネージャーである Cargo AWS CloudFormation Guard からインストールできます。Guard as an AWS Lambda function (cfn-guard-lambda) は、Lambda 関数として使用できる Guard (cfn-guard) を囲む軽量ラッパーです。

前提条件

Guard を Lambda 関数としてインストールする前に、次の前提条件を満たす必要があります。

  • AWS Command Line Interface (AWS CLI) は、Lambda 関数をデプロイして呼び出すアクセス許可で設定されています。詳細については、「Configuring the AWS CLI」を参照してください。

  • AWS Identity and Access Management (IAM) AWS Lambda の実行ロール。詳細については、AWS Lambda 「実行ロール」を参照してください。

  • CentOS/RHEL 環境では、musl-libcパッケージリポジトリを yum 設定に追加します。詳細については、「ngompa/musl-libc」を参照してください。

Rust パッケージマネージャーをインストールする

Cargo は Rust パッケージマネージャーです。Cargo を含む Rust をインストールするには、次のステップを実行します。

  1. ターミナルから次のコマンドを実行し、画面の指示に従って Rust をインストールします。

    curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
    1. (オプション) Ubuntu 環境の場合は、次のコマンドを実行します。

      sudo apt-get update; sudo apt install build-essential
  2. PATH 環境変数を設定し、次のコマンドを実行します。

    source $HOME/.cargo/env

Guard を Lambda 関数としてインストールする (Linux、macOS、または Unix)

Guard を Lambda 関数としてインストールするには、次の手順を実行します。

  1. コマンドターミナルから、次のコマンドを実行します。

    cargo install cfn-guard-lambda
    1. (オプション) Lambda 関数としての Guard のインストールを確認するには、次のコマンドを実行します。

      cfn-guard-lambda --version

      このコマンドは、以下の出力を返します。

      cfn-guard-lambda 3.0.0
  2. musl サポートをインストールするには、次のコマンドを実行します。

    rustup target add x86_64-unknown-linux-musl
  3. でビルドしmusl、ターミナルで次のコマンドを実行します。

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

    カスタムランタイムの場合、 にはデプロイパッケージ .zip ファイルbootstrapの名前の実行可能ファイル AWS Lambda が必要です。生成されたcfn-lambda実行可能ファイルの名前を に変更しbootstrap、.zip アーカイブに追加します。

    1. macOS 環境の場合は、Rust プロジェクトのルートまたは に、パレット設定ファイルを作成します~/.cargo/config

      [target.x86_64-unknown-linux-musl] linker = "x86_64-linux-musl-gcc"
  4. cfn-guard-lambdaルートディレクトリに変更します。

    cd ~/.cargo/bin/cfn-guard-lambda
  5. ターミナルで次のコマンドを実行します。

    cp ./../target/x86_64-unknown-linux-musl/release/cfn-guard-lambda ./bootstrap && zip lambda.zip bootstrap && rm bootstrap
  6. 次のコマンドを実行して、Lambda 関数cfn-guardとして をアカウントに送信します。

    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

Guard を Lambda 関数として構築して実行するには

Lambda 関数cfn-guard-lambdaとして送信された を呼び出すには、次のコマンドを実行します。

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

Lambda 関数のリクエスト構造を呼び出すには

次のフィールドcfn-guard-lambdaを要求するリクエスト:

  • data – YAML または JSON テンプレートの文字列バージョン

  • rules – ルールセットファイルの文字列バージョン