

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Sicurezza e autorizzazioni
<a name="microvms-security"></a>

Questa sezione descrive i ruoli IAM, i token di autenticazione e i controlli di accesso per AWS Lambda microVMS.

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

### Costruisci un ruolo
<a name="microvms-security-build-role"></a>

Questo ruolo viene utilizzato durante la creazione dell'immagine. Richiede le seguenti autorizzazioni per recuperare gli artefatti di origine e generare registri:`s3:GetObject`,, e. `logs:CreateLogGroup` `logs:CreateLogStream` `logs:PutLogEvents` Aggiungi anche `ecr:GetAuthorizationToken` se fai riferimento a immagini ECR private.

Il ruolo di compilazione è facoltativo. Se non fornisci un ruolo di compilazione, Lambda non può scrivere i log di compilazione su. CloudWatch

### Ruolo di esecuzione
<a name="microvms-security-execution-role"></a>

Questo ruolo viene utilizzato in fase di esecuzione di MicroVM per fornire le autorizzazioni di accesso per scrivere log CloudWatch e utilizzare altri servizi. AWS 

Il ruolo di esecuzione è facoltativo. Se non fornisci un ruolo di esecuzione, Lambda non emette log di runtime CloudWatch e la tua microVM non può accedere ad altri servizi. AWS 

Gli hook del ciclo di vita vengono eseguiti nell'ambito del ruolo associato alla loro fase. Build-time gli hook (`/ready`e`/validate`) vengono eseguiti con il ruolo build. Gli hook di runtime (`/run`, `/resume``/suspend`, e`/terminate`) vengono eseguiti con il ruolo di esecuzione.

### Policy di trust
<a name="microvms-security-trust-policies"></a>

Entrambi i ruoli richiedono una politica di fiducia che consenta al responsabile del servizio Lambda di `lambda.amazonaws.com` eseguire `sts:AssumeRole` e. `sts:TagSession`

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

I token controllano l'accesso in entrata alle microVM in esecuzione. Sono basati sull'ambito delle porte; ogni token specifica a quali porte concede l'accesso.

```
# 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 di accesso alla shell
<a name="microvms-security-shell-tokens"></a>

L'accesso alla shell utilizza un'API token separata. La microVM di destinazione deve essere stata eseguita con il connettore di `SHELL_INGRESS` rete ()`arn:aws:lambda:{{us-east-1}}:aws:network-connector:aws-network-connector:SHELL_INGRESS`. Se la microVM non è stata avviata con questo connettore, `create-microvm-shell-auth-token` fallisce con un: `ValidationException`

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

Per una procedura dettagliata sulla connessione a una shell MicroVM, vedi. [Accesso alla shell](microvms-troubleshooting.md#microvms-troubleshooting-shell)

## Applicazione di tag alle risorse
<a name="microvms-security-tagging"></a>

Le risorse Lambda MicroVM (immagini, microVM) supportano i tag delle risorse per l'organizzazione e l'allocazione dei AWS costi. Aggiungi tag quando crei un'immagine utilizzando il parametro o esplicitamente dopo la `--tags` creazione. Puoi anche elencare ed eliminare i tag, come illustrato di seguito: puoi anche fare riferimento ai tag nelle condizioni delle policy IAM per controllare l'accesso alle risorse 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"]'
```

## Riferimento alle autorizzazioni IAM
<a name="microvms-security-iam-reference"></a>

Lambda MicroVMS definisce le seguenti azioni IAM. Utilizzale nelle policy IAM per controllare l'accesso alle operazioni microVM.


| Azione | Description | 
| --- | --- | 
| lambda:CreateMicrovmImage | Crea una nuova immagine MicroVM. | 
| lambda:UpdateMicrovmImage | Aggiorna un'immagine MicroVM esistente. | 
| lambda:DeleteMicrovmImage | Eliminare un'immagine MicroVM. | 
| lambda:GetMicrovmImage | Ottieni i dettagli dell'immagine MicroVM. | 
| lambda:ListMicrovmImages | Elenca le immagini MicroVM nell'account. | 
| lambda:RunMicrovm | Esegui una nuova MicroVM. | 
| lambda:GetMicrovm | Ottieni lo stato e i dettagli di MicroVM. | 
| lambda:ListMicrovms | Elenca MicroVMS nell'account. | 
| lambda:SuspendMicrovm | Sospendere una microVM in esecuzione. | 
| lambda:ResumeMicrovm | Riprendi una microVM sospesa. | 
| lambda:TerminateMicrovm | Termina una microVM. | 
| lambda:CreateMicrovmAuthToken | Genera un token di autenticazione per una microVM. | 
| lambda:CreateMicrovmShellAuthToken | Genera un token di accesso alla shell. | 

## Formati ARN delle risorse
<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>
```

## Esempio: Least-privilege politica per un operatore
<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:*"
    }
  ]
}
```