Siapkan penandatanganan kode untuk AWS SAM aplikasi Anda - AWS Serverless Application Model

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Siapkan penandatanganan kode untuk AWS SAM aplikasi Anda

Untuk memastikan bahwa hanya kode tepercaya yang digunakan, Anda dapat menggunakan AWS SAM untuk mengaktifkan penandatanganan kode dengan aplikasi tanpa server Anda. Menandatangani kode membantu memastikan bahwa kode belum diubah sejak penandatanganan dan hanya paket kode yang ditandatangani dari penerbit tepercaya yang berjalan di fungsi Lambda Anda. Ini membantu membebaskan organisasi dari beban membangun komponen penjaga gerbang di jaringan pipa penyebaran mereka.

Untuk informasi selengkapnya tentang penandatanganan kode, lihat Mengonfigurasi penandatanganan kode untuk fungsi Lambda di Panduan AWS Lambda Pengembang.

Sebelum dapat mengonfigurasi penandatanganan kode untuk aplikasi tanpa server, Anda harus membuat profil penandatanganan menggunakan AWS Signer. Anda menggunakan profil penandatanganan ini untuk tugas-tugas berikut:

  1. Membuat konfigurasi penandatanganan kode – Menyatakan sumber daya AWS::Lambda::CodeSigningConfig untuk menentukan profil penandatanganan penerbit tepercaya dan untuk mengatur tindakan kebijakan untuk pemeriksaan validasi. Anda dapat mendeklarasikan objek ini dalam AWS SAM template yang sama dengan fungsi tanpa server Anda, dalam template yang berbeda, atau dalam AWS SAM template. AWS CloudFormation Anda kemudian mengaktifkan penandatanganan kode untuk fungsi tanpa server dengan menentukan CodeSigningConfigArnproperti fungsi dengan Amazon Resource Name (ARN) sumber daya. AWS::Lambda::CodeSigningConfig

  2. Menandatangani kode Anda – Gunakan perintah sam package atau sam deploy dengan opsi --signing-profiles.

catatan

Agar kode Anda berhasil ditandatangani dengan perintah sam package atau sam deploy, versioning untuk bucket Amazon S3 yang Anda gunakan harus diaktifkan dengan perintah ini. Jika Anda menggunakan Bucket Amazon S3 yang AWS SAM dibuat untuk Anda, pembuatan versi diaktifkan secara otomatis. Untuk informasi selengkapnya tentang pembuatan versi bucket Amazon S3 dan petunjuk untuk mengaktifkan pembuatan versi di bucket Amazon S3 yang Anda berikan, lihat Menggunakan pembuatan versi di bucket Amazon S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Saat Anda men-deploy aplikasi nirserver, Lambda melakukan pemeriksaan validasi pada semua fungsi yang penandatanganan kodenya telah Anda aktifkan. Lambda juga melakukan pemeriksaan validasi pada setiap lapisan yang fungsi lambda-nya bergantung pada lapisan tersebut. Untuk informasi selengkapnya tentang pemeriksaan validasi Lambda, lihat Validasi tanda tangan di Panduan Developer AWS Lambda .

Contoh

Membuat profil penandatanganan

Untuk membuat profil penandatanganan, jalankan perintah berikut:

aws signer put-signing-profile --platform-id "AWSLambda-SHA384-ECDSA" --profile-name MySigningProfile

Jika perintah sebelumnya berhasil, Anda melihat profil penandatanganan ARN dikembalikan. Sebagai contoh:

{ "arn": "arn:aws:signer:us-east-1:111122223333:/signing-profiles/MySigningProfile", "profileVersion": "SAMPLEverx", "profileVersionArn": "arn:aws:signer:us-east-1:111122223333:/signing-profiles/MySigningProfile/SAMPLEverx" }

profileVersionArnBidang berisi yang akan ARN digunakan saat Anda membuat konfigurasi penandatanganan kode.

Membuat konfigurasi penandatanganan kode dan mengaktifkan penandatanganan kode untuk suatu fungsi

Contoh AWS SAM template berikut mendeklarasikan AWS::Lambda::CodeSigningConfigsumber daya dan memungkinkan penandatanganan kode untuk fungsi Lambda. Dalam contoh ini, jika pemeriksaan tanda tangan gagal, akan ditemukan satu profil tepercaya, dan penolakan deployment.

Resources: HelloWorld: Type: AWS::Serverless::Function Properties: CodeUri: hello_world/ Handler: app.lambda_handler Runtime: python3.7 CodeSigningConfigArn: !Ref MySignedFunctionCodeSigningConfig MySignedFunctionCodeSigningConfig: Type: AWS::Lambda::CodeSigningConfig Properties: Description: "Code Signing for MySignedLambdaFunction" AllowedPublishers: SigningProfileVersionArns: - MySigningProfile-profileVersionArn CodeSigningPolicies: UntrustedArtifactOnDeployment: "Enforce"

Menandatangani kode Anda

Anda dapat menandatangani kode saat mengemas atau men-deploy aplikasi Anda. Tentukan opsi --signing-profiles dengan perintah sam package atau sam deploy, seperti yang ditunjukkan pada contoh perintah berikut.

Menandatangani kode fungsi saat mengemas aplikasi Anda:

sam package --signing-profiles HelloWorld=MySigningProfile --s3-bucket amzn-s3-demo-bucket --output-template-file packaged.yaml

Menandatangani kode fungsi dan lapisan tempat fungsi Anda bergantung, saat mengemas aplikasi Anda:

sam package --signing-profiles HelloWorld=MySigningProfile MyLayer=MySigningProfile --s3-bucket amzn-s3-demo-bucket --output-template-file packaged.yaml

Menandatangani kode fungsi dan lapisan Anda, lalu melakukan deployment:

sam deploy --signing-profiles HelloWorld=MySigningProfile MyLayer=MySigningProfile --s3-bucket amzn-s3-demo-bucket --template-file packaged.yaml --stack-name --region us-east-1 --capabilities CAPABILITY_IAM
catatan

Agar berhasil menandatangani kode Anda dengan perintah sam package atau sam deploy, versioning untuk bucket Amazon S3 yang Anda gunakan harus diaktifkan dengan perintah ini. Jika Anda menggunakan Bucket Amazon S3 yang AWS SAM dibuat untuk Anda, pembuatan versi diaktifkan secara otomatis. Untuk informasi selengkapnya tentang pembuatan versi bucket Amazon S3 dan petunjuk untuk mengaktifkan pembuatan versi di bucket Amazon S3 yang Anda berikan, lihat Menggunakan pembuatan versi di bucket Amazon S3 di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Menyediakan profil penandatanganan dengan sam deploy --guided

Saat Anda menjalankan sam deploy --guided perintah dengan aplikasi tanpa server yang dikonfigurasi dengan penandatanganan kode, AWS SAM meminta Anda untuk memberikan profil penandatanganan yang akan digunakan untuk penandatanganan kode. Untuk informasi selengkapnya tentang sam deploy --guided petunjuk, lihat sam deploy di AWS SAM CLI referensi perintah.