View a markdown version of this page

Keamanan dan izin - AWS Lambda

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

Keamanan dan izin

Bagian ini menjelaskan peran IAM, token otentikasi, dan kontrol akses untuk AWS Lambda microVM.

Peran IAM

Membangun peran

Peran ini digunakan selama pembuatan gambar. Ini membutuhkan izin berikut untuk mengambil artefak sumber dan menghasilkan log:s3:GetObject,logs:CreateLogGroup,logs:CreateLogStream, danlogs:PutLogEvents. Tambahkan juga ecr:GetAuthorizationToken jika mereferensikan gambar ECR pribadi.

Peran build adalah opsional. Jika Anda tidak memberikan peran build, Lambda tidak dapat menulis log build ke CloudWatch.

Peran eksekusi

Peran ini digunakan pada runtime MicroVM untuk memberikan izin akses untuk menulis log ke CloudWatch dan menggunakan AWS layanan lain.

Peran eksekusi adalah opsional. Jika Anda tidak memberikan peran eksekusi, Lambda tidak memancarkan log runtime ke CloudWatch dan microVM Anda tidak dapat mengakses layanan lain AWS .

Kait siklus hidup dijalankan di bawah peran yang terkait dengan fase mereka. Build-time hook (/readydan/validate) dijalankan di bawah peran build. Runtime hook (/run,/resume,/suspend, dan/terminate) dijalankan di bawah peran eksekusi.

Kebijakan kepercayaan

Kedua peran memerlukan kebijakan kepercayaan yang memungkinkan prinsipal layanan Lambda lambda.amazonaws.com untuk melakukan sts:AssumeRole dansts:TagSession.

Token otentikasi

Token mengontrol akses masuk untuk menjalankan microVM. Mereka memiliki cakupan port; setiap token menentukan port mana yang diberikan akses.

# Token granting access to all ports aws lambda-microvms create-microvm-auth-token \ --microvm-identifier <id> \ --expiration-in-minutes 30 \ --allowed-ports '[{"allPorts":{}}]' # Token granting access to port 8080 only aws lambda-microvms create-microvm-auth-token \ --microvm-identifier <id> \ --expiration-in-minutes 30 \ --allowed-ports '[{"port":8080}]'

Token akses shell

Akses Shell menggunakan API token terpisah. MicroVM target harus dijalankan dengan konektor SHELL_INGRESS jaringan (arn:aws:lambda:us-east-1:aws:network-connector:aws-network-connector:SHELL_INGRESS). Jika microVM tidak diluncurkan dengan konektor ini, create-microvm-shell-auth-token gagal denganValidationException:

aws lambda-microvms create-microvm-shell-auth-token \ --microvm-identifier <id> \ --expiration-in-minutes 30

Untuk panduan lengkap menghubungkan ke shell microVM, lihatAkses shell.

Menandai sumber daya

Gambar Lambda MicroVM mendukung tag AWS sumber daya untuk organisasi dan alokasi biaya. Tambahkan tag saat membuat gambar menggunakan --tags parameter atau secara eksplisit setelah pembuatan. Anda juga dapat membuat daftar dan menghapus tag, seperti yang ditunjukkan di bawah ini: Anda juga dapat mereferensikan tag dalam kondisi kebijakan IAM untuk mengontrol akses ke sumber daya microVM.

# Add tags when creating an image aws lambda-microvms create-microvm-image \ --name my-app-image \ --code-artifact '{"uri":"s3://my-bucket/app.zip"}' \ --base-image-arn arn:aws:lambda:us-east-1:aws:microvm-image:al2023-1 \ --build-role-arn arn:aws:iam::123456789012:role/MicrovmBuildRole \ --tags '{"Environment":"production","Team":"platform"}' # List tags on a resource aws lambda-microvms list-tags \ --resource arn:aws:lambda:us-east-1:123456789012:microvm-image:my-app-image # Add tags to an existing resource aws lambda-microvms tag-resource \ --resource arn:aws:lambda:us-east-1:123456789012:microvm-image:my-app-image \ --tags '{"CostCenter":"12345","Project":"sandbox-platform"}' # Remove tags by key aws lambda-microvms untag-resource \ --resource arn:aws:lambda:us-east-1:123456789012:microvm-image:my-app-image \ --tag-keys '["CostCenter","Project"]'

Referensi izin IAM

Lambda MicroVMS mendefinisikan tindakan IAM berikut. Gunakan ini dalam kebijakan IAM untuk mengontrol akses ke operasi microVM.

Tindakan Deskripsi
lambda:CreateMicrovmImage Buat gambar microVM baru.
lambda:UpdateMicrovmImage Perbarui gambar microVM yang ada.
lambda:DeleteMicrovmImage Hapus gambar microVM.
lambda:GetMicrovmImage Dapatkan detail gambar MicroVM.
lambda:ListMicrovmImages Daftar gambar MicroVM di akun.
lambda:RunMicrovm Jalankan microVM baru.
lambda:GetMicrovm Dapatkan status dan detail MicroVM.
lambda:ListMicrovms Daftar MicroVM di akun.
lambda:SuspendMicrovm Menangguhkan microVM yang sedang berjalan.
lambda:ResumeMicrovm Lanjutkan microVM yang ditangguhkan.
lambda:TerminateMicrovm Hentikan microVM.
lambda:CreateMicrovmAuthToken Hasilkan token otentikasi untuk microVM.
lambda:CreateMicrovmShellAuthToken Hasilkan token akses shell.

Format ARN sumber daya

# MicroVM image arn:aws:lambda:<region>:<account>:microvm-image:<image-name> # Network connector arn:aws:lambda:<region>:<account>:network-connector:<connector-id>

Contoh: Least-privilege kebijakan untuk operator

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "lambda:ListMicrovms", "lambda:ListMicrovmImages" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "lambda:RunMicrovm", "lambda:GetMicrovm", "lambda:SuspendMicrovm", "lambda:ResumeMicrovm", "lambda:TerminateMicrovm", "lambda:CreateMicrovmAuthToken", "lambda:GetMicrovmImage" ], "Resource": "arn:aws:lambda:*:123456789012:microvm-image:*" } ] }