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 microVMS.

Peran IAM

Membangun peran

Peran ini digunakan selama pembuatan gambar. Ini memerlukan izin berikut untuk mengambil artefak sumber dan menghasilkan log:s3:GetObject,,logs:CreateLogGroup, logs:CreateLogStream dan. logs: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. CloudWatch

Peran eksekusi

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

Peran eksekusi adalah opsional. Jika Anda tidak memberikan peran eksekusi, Lambda tidak memancarkan log runtime 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 hooks (/run,, /resume/suspend, and/terminate) mengeksekusi di bawah peran eksekusi.

Kebijakan kepercayaan

Kedua peran tersebut memerlukan kebijakan kepercayaan yang memungkinkan kepala layanan Lambda lambda.amazonaws.com untuk melakukan sts:AssumeRole dan. sts:TagSession

Token otentikasi

Token mengontrol akses masuk untuk menjalankan microVMS. Mereka adalah port-scoped; setiap token menentukan port mana yang memberikan akses ke.

# 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 dengan: ValidationException

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

Untuk panduan lengkap tentang menghubungkan ke shell microVM, lihat. Akses Shell

Menandai sumber daya

Sumber daya Lambda MicroVM (gambar, microVMS) 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 Buat daftar gambar microVM di akun.
lambda:RunMicrovm Jalankan microVM baru.
lambda:GetMicrovm Dapatkan status dan detail microVM.
lambda:ListMicrovms Daftar microVMS di akun.
lambda:SuspendMicrovm Tangguhkan microVM yang sedang berjalan.
lambda:ResumeMicrovm Lanjutkan microVM yang ditangguhkan.
lambda:TerminateMicrovm Mengakhiri 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> # MicroVM instance arn:aws:lambda:<region>:<account>:microvm:<microvm-id> # 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:RunMicrovm", "lambda:GetMicrovm", "lambda:ListMicrovms", "lambda:SuspendMicrovm", "lambda:ResumeMicrovm", "lambda:TerminateMicrovm", "lambda:CreateMicrovmAuthToken" ], "Resource": "arn:aws:lambda:*:123456789012:microvm:*" }, { "Effect": "Allow", "Action": ["lambda:GetMicrovmImage", "lambda:ListMicrovmImages"], "Resource": "arn:aws:lambda:*:123456789012:microvm-image:*" } ] }