ラムダ署名

2134 ワード

ラムダコード署名は、コードの整合性を強化し、信頼できる開発者のみがAWSラムダ関数にコードを展開できることを確認します.
ラムダのコード署名は展開段階を保護し、暗号的に強力なハッシュ検証を行うことです.

管理者ユーザ


1 . AWS signerで署名プロファイルを作成する
2 )開発者用のIAM経由でアクセスしてください.
彼らのアーティファクトにサイン
3 )指定するコード署名設定( CSC )を作成する
署名プロファイルと署名検証方針
(署名に失敗した展開を警告または拒否する)
チェックする

開発者


1)署名のプロファイルを使用して展開アーチファクトに署名します
2 )符号付き展開アーティファクトを関数
(ラムダ関数の生成/更新)

コード署名展開アプローチ


コード署名サービスは、共有サービス、コード署名プロファイルと設定の作成、IAMを介して開発者に許可を割り当てることは、共通のモジュールの一部であることができますので.
1) Profile Creation 

aws signer put-signing-profile \
    --profile-name signin_profile \
    --platform AWSLambda-SHA384-ECDSA

2) ADD permission via IAM

aws signer add-profile-permission \
--profile-name signin_profile \
--action signer:StartSigningJob \
--principal arn:aws:iam::XXXXXXXXXXXX:role/lambda-ex \
--statement-id signerstmtid

3 )Create signing config

 aws lambda create-code-signing-config \
--description "lambda config" \
--allowed-publishers SigningProfileVersionArns=arn:aws:signer:ap-southeast-2:XXXXXXXXX:/signing-profiles/signin_profile/XXXXX \
--code-signing-policies "UntrustedArtifactOnDeployment"="Enforce"
開発者は署名のプロファイルを使用して署名し、展開することができます
人工品

展開アーティファクトに署名する


aws signer start-signing-job \ 
--source 's3={bucketName=<lambda-bucket>, version=<version-string>, key=main-function.zip}' \
--destination 's3={bucketName=<lambda-bucket>, prefix=signed-}' \
--profile-name signin_profile

## Deploy the Artifact 

aws lambda create-function \
    --function-name "signed-main-function" \
    --runtime "python3.8" \
    --role <lambda-role> \
    --zip-file "fileb://signed-main-function.zip" \
    --handler lambda_function.lambda_handler \ 
    --code-signing-config-arn <code-signing-config-arn>