

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

# Keamanan dan izin
<a name="microvms-security"></a>

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

## Peran IAM
<a name="microvms-security-iam-roles"></a>

### Membangun peran
<a name="microvms-security-build-role"></a>

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
<a name="microvms-security-execution-role"></a>

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 (`/ready`dan`/validate`) dijalankan di bawah peran build. Runtime hooks (`/run`,, `/resume``/suspend`, and`/terminate`) mengeksekusi di bawah peran eksekusi.

### Kebijakan kepercayaan
<a name="microvms-security-trust-policies"></a>

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

## Token otentikasi
<a name="microvms-security-auth-tokens"></a>

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
<a name="microvms-security-shell-tokens"></a>

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](microvms-troubleshooting.md#microvms-troubleshooting-shell)

## Menandai sumber daya
<a name="microvms-security-tagging"></a>

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
<a name="microvms-security-iam-reference"></a>

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
<a name="microvms-security-resource-arns"></a>

```
# 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
<a name="microvms-security-least-privilege"></a>

```
{
  "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:*"
    }
  ]
}
```