

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

# Automatizza i backup con Amazon Data Lifecycle Manager
<a name="snapshot-lifecycle"></a>

Puoi utilizzare Amazon Data Lifecycle Manager per automatizzare la creazione, la conservazione e l'eliminazione di snapshot EBS e basate su EBS. AMIs La gestione automatizzata degli snapshot e delle AMI consente di:
+ Proteggere i dati importanti applicando una pianificazione regolare di backup.
+ Crea file standardizzati AMIs che possono essere aggiornati a intervalli regolari.
+ Conservare i backup come richiesto dai revisori o dalla conformità interna.
+ Ridurre i costi di archiviazione eliminando i backup obsoleti.
+ Creare policy di backup per il ripristino di emergenza, che eseguono il backup dei dati su Regioni e account isolati.

In combinazione con le funzionalità di monitoraggio di Amazon EventBridge and AWS CloudTrail, Amazon Data Lifecycle Manager fornisce una soluzione di backup completa per le istanze Amazon EC2 e i singoli volumi EBS senza costi aggiuntivi.

**Importante**  
Amazon Data Lifecycle Manager non può gestire istantanee o AMIs crearle con altri mezzi.
Amazon Data Lifecycle Manager non può automatizzare la creazione, la conservazione e l'eliminazione di istanze archiviate. AMIs

Amazon Data Lifecycle Manager viene valutato come funzionalità di servizio di Amazon Elastic Block Store (Amazon EBS) Elastic Block Store (Amazon EBS). Qualsiasi [AWS servizio incluso nel programma Scope by Compliance](https://aws.amazon.com/compliance/services-in-scope/) (FedRAMP, HIPAA BAA, SOC, ecc.) che elenca Amazon EBS si applicherà anche ad Amazon Data Lifecycle Manager.

**Topics**
+ [Quote](#dlm-quotas)
+ [Come funziona](dlm-elements.md)
+ [Politiche predefinite e personalizzate](policy-differences.md)
+ [Crea politiche predefinite](default-policies.md)
+ [Crea policy personalizzate per le istantanee](snapshot-ami-policy.md)
+ [Crea policy personalizzate per AMIs](ami-policy.md)
+ [Automatizzazione delle copie degli snapshot tra account](event-policy.md)
+ [Modifica le politiche](modify.md)
+ [Eliminazione delle policy](delete.md)
+ [Controllo degli accessi](dlm-prerequisites.md)
+ [Monitora le politiche](dlm-monitor-lifecycle.md)
+ [Endpoint di servizio](dlm-service-endpoints.md)
+ [Endpoint VPC di interfaccia](dlm-vpc-endpoints.md)
+ [Risoluzione dei problemi](dlm-troubleshooting.md)

## Quote
<a name="dlm-quotas"></a>

Il tuo AWS account ha le seguenti quote relative ad Amazon Data Lifecycle Manager:


| Description | Quota | 
| --- | --- | 
| Policy del ciclo di vita personalizzate per Regione | 100 | 
| Policy predefinite per gli snapshot EBS per Regione | 1 | 
| Politiche predefinite per EBS supportate da EBS per regione AMIs  | 1 | 
| Tag per risorsa | 45 | 

# Funzionamento di Amazon Data Lifecycle Manager
<a name="dlm-elements"></a>

Di seguito sono elencati gli elementi chiave di Amazon Data Lifecycle Manager.

**Topics**
+ [Policy](#dlm-policies)
+ [Pianificazioni policy](#dlm-lifecycle-schedule)
+ [Tag risorse di destinazione](#dlm-tagging-volumes)
+ [Snapshot](#dlm-ebs-snapshots)
+ [Supportato da EBS AMIs](#dlm-ebs-amis)
+ [Tag Amazon Data Lifecycle Manager](#dlm-tagging-snapshots)

## Policy
<a name="dlm-policies"></a>

Con Amazon Data Lifecycle Manager, crei policy per definire i requisiti di creazione e conservazione dei backup. Queste policy in genere specificano quanto segue:
+ **Tipo di policy**: definisce il tipo di risorse di backup gestite dalla policy (istantanee o supportate da EBS). AMIs
+ **Risorse di destinazione**: definisce il tipo di risorse a cui la policy è indirizzata (istanze o volumi EBS).
+ **Frequenza di creazione**: definisce la frequenza di esecuzione della policy e crea istantanee o. AMIs
+ **Soglia di conservazione**: definisce per quanto tempo la policy conserva le istantanee o AMIs dopo la creazione.
+ **Azioni aggiuntive**: definisce le azioni aggiuntive che la policy deve eseguire, come la copia, l'archiviazione o il tagging delle risorse tra Regioni.

Amazon Data Lifecycle Manager fornisce policy predefinite e policy personalizzate.

**Policy predefinite**  
Le policy predefinite eseguono il backup di tutti i volumi e le istanze in una Regione in cui non sono presenti backup recenti. Facoltativamente, puoi escludere volumi e istanze specificando i parametri di esclusione.

Amazon Data Lifecycle Manager supporta le seguenti policy predefinite:
+ Policy predefinita per gli snapshot EBS: indirizza i volumi e automatizza la creazione, la conservazione e l'eliminazione degli snapshot.
+ Policy predefinita per EBS Based AMIs : indirizza le istanze e automatizza la creazione, la conservazione e la cancellazione delle istanze supportate da EBS. AMIs

È possibile disporre di una sola policy predefinita per tipo di risorsa in ciascun account e Regione AWS .

**Policy personalizzate**  
Le policy personalizzate mirano a risorse specifiche in base ai tag assegnati e supportano funzionalità avanzate, come il ripristino rapido degli snapshot, l'archiviazione di snapshot, la copia tra account e gli script pre e post. Una policy personalizzata può includere fino a 4 pianificazioni, ciascuna delle quali può avere una frequenza di creazione, una soglia di conservazione e una configurazione avanzata delle funzionalità.

Amazon Data Lifecycle Manager supporta le seguenti policy personalizzate:
+ Policy per gli snapshot EBS: indirizza i volumi o le istanze e automatizza la creazione, la conservazione e l'eliminazione degli snapshot.
+ Policy AMI supportata da EBS: indirizza le istanze e automatizza la creazione, la conservazione e la cancellazione delle istanze supportate da EBS. AMIs
+ Policy degli eventi di copia tra account: automatizza le operazioni di copia tra Regioni per gli snapshot condivisi con te.

Per ulteriori informazioni, consulta [Politiche predefinite di Amazon Data Lifecycle Manager e politiche personalizzate](policy-differences.md).

## Pianificazioni delle policy (*solo policy personalizzate*)
<a name="dlm-lifecycle-schedule"></a>

Le pianificazioni delle politiche definiscono quando le istantanee o quando vengono create dalla policy. AMIs Le policy possono comprendere fino a quattro pianificazioni: una pianificazione obbligatoria e fino a tre pianificazioni facoltative.

L'aggiunta di più pianificazioni a una singola policy consente di creare istantanee o AMIs con frequenze diverse utilizzando la stessa policy. Ad esempio, è possibile creare una singola policy che crei snapshot giornalieri, settimanali, mensili e annuali. Ciò elimina la necessità di gestire più policy.

Per ogni pianificazione è possibile definire la frequenza, le impostazioni di ripristino rapido degli snapshot (solo per policy del ciclo di vita degli snapshot), le regole di copia tra regioni e i tag. I tag assegnati a una pianificazione vengono assegnati automaticamente alle istantanee o vengono AMIs creati all'avvio della pianificazione. Inoltre, Amazon Data Lifecycle Manager assegna automaticamente a ogni snapshot o AMI un tag generato dal sistema in base alla frequenza della pianificazione.

Ogni programma viene attivato individualmente in base alla sua frequenza. Se vengono avviate più pianificazioni contemporaneamente, Amazon Data Lifecycle Manager crea un solo snapshot o una sola AMI e applica le impostazioni di conservazione della pianificazione che prevedono il periodo di conservazione più lungo. I tag di tutte le pianificazioni attivate vengono applicati allo snapshot o all'AMI.
+ (Solo per policy del ciclo di vita degli snapshot) Se più di una delle pianificazioni avviate è abilitata per il ripristino rapido degli snapshot, lo snapshot viene abilitato per il ripristino rapido in tutte le zone di disponibilità specificate in tutte le pianificazioni avviate. Per ogni zona di disponibilità vengono utilizzate le impostazioni di conservazione più elevate delle pianificazioni attivate.
+ Se più di una delle pianificazioni attivate è abilitata per la copia tra regioni, lo snapshot o l'AMI vengono copiati in tutte le regioni specificate in tutte le pianificazioni attivate. Viene applicato il periodo di conservazione più lungo delle pianificazioni attivate.

## Tag delle risorse di destinazione (*solo policy personalizzate*)
<a name="dlm-tagging-volumes"></a>

Le policy personalizzate di Amazon Data Lifecycle Manager utilizzano i tag delle risorse per identificare le risorse di cui fare il backup. Quando crei una policy per gli snapshot o per un'AMI supportata da EBS, puoi specificare più tag delle risorse di destinazione. La policy si rivolgerà a tutte le risorse del tipo specificato (istanza o volume) che dispongono di almeno uno dei tag delle risorse di destinazione della policy. Ad esempio, se crei una policy per gli snapshot destinata ai volumi e specifichi `purpose=prod`, `costcenter=prod` e `environment=live` come tag delle risorse di destinazione, la policy si rivolgerà a tutti i volumi che hanno una di queste coppie di valori tag-chiave.

Se desideri eseguire più policy su una risorsa, puoi assegnare più tag alla risorsa di destinazione e quindi creare policy separate, ciascuna destinata a un tag delle risorse specifico.

Non è possibile utilizzare i caratteri `\` o `=` per una chiave di tag. I tag delle risorse di destinazione fanno distinzione tra maiuscole e minuscole. Per ulteriori informazioni, consulta [Etichettare le risorse](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html).

## Snapshot
<a name="dlm-ebs-snapshots"></a>

Gli snapshot sono lo strumento principale per eseguire il backup dei dati dei volumi EBS. Per risparmiare sui costi di storage dei dati, gli snapshot successivi sono incrementali, ovvero vengono salvati solo i blocchi del volume che risultano modificati dall'ultimo snapshot. Eliminando uno snapshot appartenente a una serie di snapshot di un volume, vengono rimossi solo i dati specifici di tale snapshot. La parte restante della cronologia del volume acquisita viene conservata. Per ulteriori informazioni, consulta [Snapshot Amazon EBS](ebs-snapshots.md).

## Supportato da EBS AMIs
<a name="dlm-ebs-amis"></a>

Un'Amazon Machine Image (AMI) fornisce tutte le informazioni necessarie per avviare un'istanza. Puoi avviare più istanze da un'unica AMI quando devi disporre di più istanze con la stessa configurazione. Amazon Data Lifecycle Manager supporta solo sistemi basati su EBS. AMIs Supportato da EBS, AMIs include uno snapshot per ogni volume EBS collegato all'istanza di origine. Per ulteriori informazioni, consulta [Amazon Machine Images (AMI)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html).

## Tag Amazon Data Lifecycle Manager
<a name="dlm-tagging-snapshots"></a>

Amazon Data Lifecycle Manager applica i seguenti tag di sistema a tutte le istantanee e le crea in base a una policy, per distinguerle dalle istantanee AMIs create con qualsiasi altro mezzo: AMIs 
+ `aws:dlm:lifecycle-policy-id`
+ `aws:dlm:lifecycle-schedule-name`
+ `aws:dlm:expirationTime`: per snapshot creati con una pianificazione basata sull'età. Indica quando lo snapshot deve essere eliminato dal livello standard. 
+ `dlm:managed`
+ `aws:dlm:archived`: per snapshot archiviati in base a una pianificazione.
+ `aws:dlm:pre-script`: per gli snapshot creati con script pre.
+ `aws:dlm:post-script`: per gli snapshot creati con script post.

Puoi anche specificare tag personalizzati da applicare alle istantanee e al momento della creazione. AMIs Non è possibile utilizzare i caratteri `\` o `=` per una chiave di tag.

I tag di destinazione utilizzati da Amazon Data Lifecycle Manager per associare volumi a una policy per gli snapshot possono facoltativamente essere applicati agli snapshot creati dalla policy. Analogamente, i tag di destinazione utilizzati per associare le istanze a una policy AMI possono essere opzionalmente applicati a quelli AMIs creati dalla policy.

# Politiche predefinite di Amazon Data Lifecycle Manager e politiche personalizzate
<a name="policy-differences"></a>

Questa sezione confronta le policy predefinite e le policy personalizzate e ne evidenzia similitudini e differenze.

**Topics**
+ [Confronto delle policy degli snapshot EBS](#snapshot-policy-diffs)
+ [Confronto delle policy delle AMI supportate da EBS](#ami-policy-diffs)

## Confronto delle policy degli snapshot EBS
<a name="snapshot-policy-diffs"></a>

La tabella seguente evidenzia le differenze tra la policy predefinita per gli snapshot EBS e le policy di snapshot EBS personalizzate. 


| Funzionalità | Policy predefinita per gli snapshot EBS | Policy degli snapshot EBS personalizzata | 
| --- | --- | --- | 
| Risorsa di backup gestita | Snapshot EBS | Snapshot EBS | 
| Tipi di risorse di destinazione | Volumi | Volumi o istanze | 
| Targeting delle risorse | Si rivolge a tutti i volumi della Regione che non dispongono di snapshot recenti. È possibile specificare parametri di esclusione per escludere volumi specifici. | Si rivolge solo a volumi o istanze con tag specifici. | 
| Parametri di esclusione | Sì, può escludere volumi di avvio, tipi di volume specifici e volumi con tag specifici. | Sì, può escludere volumi di avvio e volumi con tag specifici quando si scelgono come target le istanze. | 
| Support AWS Outposts | No | Sì | 
| Supporto di più pianificazioni | No | Sì, fino a 4 pianificazioni per policy | 
| Tipi di conservazione supportati | Solo conservazione basata sull'età | Conservazione basata sull'età e sul conteggio | 
| Frequenza di creazione degli snapshot | Ogni 1-7 giorni. | Frequenza giornaliera, settimanale, mensile, annuale o personalizzata utilizzando un'espressione cron. | 
| Conservazione degli snapshot | Da 2 a 14 giorni. | Fino a 1.000 snapshot (conservazione basata sul conteggio) o fino a 100 anni (conservazione basata sull'età). | 
| Snapshot coerenti a livello di applicazione | No | Sì, utilizzando script pre e post | 
| Supporta l'archiviazione degli snapshot | No | Sì | 
| Supporto per il ripristino rapido degli snapshot | No | Sì | 
| Supporta la copia tra Regioni  | Sì, con le impostazioni predefinite 1 | Sì, con impostazioni personalizzate | 
| Supporto della condivisione tra più account | No | Sì | 
| Supporta l'eliminazione estesa 2 | Sì | No | 

1 Per le policy predefinite:
+ Non puoi copiare i tag in copie tra Regioni.
+ Le copie utilizzano lo stesso periodo di conservazione dello snapshot di origine.
+ Le copie hanno lo stesso stato di crittografia dello snapshot di origine. Se la Regione di destinazione è abilitata per la crittografia per impostazione predefinita, le copie vengono sempre crittografate, anche se gli snapshot di origine non sono crittografati. Le copie vengono sempre crittografate con la chiave KMS predefinita per la Regione di destinazione.

2 Per le policy predefinite e personalizzate:
+ Se un'istanza o un volume di destinazione sono eliminati, Amazon Data Lifecycle Manager continua a eliminare gli snapshot fino all'ultimo, ma non include, l'ultimo in base al periodo di conservazione. Per quanto riguarda le policy predefinite, puoi estendere l'eliminazione in modo da includere l'ultimo snapshot.
+ Se una policy viene eliminata o entra nello stato di errore o disabilitato, Amazon Data Lifecycle Manager interrompe l'eliminazione degli snapshot. Per quanto riguarda le policy predefinite, puoi estendere l'eliminazione per continuare a eliminare gli snapshot, compreso l'ultimo.

## Confronto delle policy delle AMI supportate da EBS
<a name="ami-policy-diffs"></a>

La tabella seguente evidenzia le differenze tra la politica predefinita per le politiche AMI supportate da EBS AMIs e quelle personalizzate supportate da EBS. 


| Funzionalità | Criteri predefiniti per EBS AMIs | Policy delle AMI supportate da EBS personalizzate | 
| --- | --- | --- | 
| Risorsa di backup gestita | Supportato da EBS AMIs | Supportato da EBS AMIs | 
| Tipi di risorse di destinazione | Istanze | Istanze | 
| Targeting delle risorse | Si rivolge a tutte le istanze della regione che non dispongono di dati recenti. AMIs È possibile specificare parametri di esclusione per escludere volumi specifici. | Si rivolge solo a istanze con tag specifici. | 
| Riavvio delle istanze prima della creazione dell'AMI | No | Sì | 
| Parametri di esclusione | Sì, può escludere istanze con tag specifici. | No | 
| Supporto di più pianificazioni | No | Sì, fino a 4 pianificazioni per policy. | 
| Frequenza di creazione AMI | Ogni 1-7 giorni. | Frequenza giornaliera, settimanale, mensile, annuale o personalizzata utilizzando un'espressione cron. | 
| Tipi di conservazione supportati | Solo conservazione basata sull'età. | Conservazione basata sull'età e sul conteggio. | 
| AMIs conservazione | Da 2 a 14 giorni. | Fino a 1000 AMIs (in base al conteggio) o fino a 100 anni (in base all'età). | 
| Supporta la deprecazione AMI | No | Sì | 
| Supporta la copia tra Regioni | Sì, con le impostazioni predefinite 1 | Sì, con impostazioni personalizzate | 
| Supporta l'eliminazione estesa 2 | Sì | No | 

1Per le policy predefinite:
+ Non puoi copiare i tag in copie tra Regioni.
+ Le copie utilizzano lo stesso periodo di conservazione dell'AMI di origine.
+ Le copie hanno lo stesso stato di crittografia dell'AMI di origine. Se la regione di destinazione è abilitata per la crittografia per impostazione predefinita, le copie sono sempre crittografate, anche se l'origine non è crittografata. AMIs Le copie vengono sempre crittografate con la chiave KMS predefinita per la Regione di destinazione.

2 Per le policy predefinite e personalizzate:
+ Se un'istanza mirata viene terminata, Amazon Data Lifecycle Manager continua ad AMIs annullare la registrazione fino all'ultima, esclusa, in base al periodo di conservazione. Per le policy predefinite, puoi estendere l'annullamento della registrazione in modo da includere l'ultima AMI.
+ Se una policy viene eliminata o entra nello stato di errore o disabilitato, Amazon Data Lifecycle Manager interrompe l'annullamento della registrazione. AMIs Per quanto riguarda le policy predefinite, puoi estendere l'eliminazione per continuare ad annullare la registrazione, inclusa AMIs l'ultima.

# Crea policy predefinite di Amazon Data Lifecycle Manager
<a name="default-policies"></a>

Per creare istanze periodiche basate su EBS, utilizza la policy predefinita per le istanze supportate AMIs da EBS. AMIs Per creare snapshot di tutti i volumi indipendentemente dal relativo stato di collegamento o se desideri escludere volumi specifici, utilizza la policy predefinita per gli snapshot EBS.

Questa sezione spiega come creare le policy predefinite.

**Topics**
+ [Considerazioni sulle politiche predefinite](#default-policy-considerations)
+ [Crea policy predefinite per gli snapshot di Amazon EBS](#default-snapshot-policy)
+ [Crea policy predefinite per EBS AMIs](#default-ami-policy)
+ [Abilita le politiche predefinite tra account e regioni](dlm-stacksets.md)

## Considerazioni sulle politiche predefinite
<a name="default-policy-considerations"></a>

Quando si utilizzano le policy predefinite, tenere presente quanto segue:
+ Le policy predefinite non eseguono il backup delle risorse di destinazione (istanze o volumi) che dispongono di backup recenti (istantanee o). AMIs La frequenza di creazione determina le risorse di cui viene eseguito il backup. Il backup di un volume o di un'istanza viene eseguito solo se il suo ultimo snapshot o l'AMI è precedente alla frequenza di creazione della policy. Ad esempio, se si specifica una frequenza di creazione di 3 giorni, la policy predefinita per gli snapshot EBS creerà uno snapshot di un volume solo se l'ultimo snapshot è più vecchio di 3 giorni.
+ Per impostazione predefinita, le policy predefinite riguardano tutte le istanze o i volumi della Regione, a meno che non vengano specificati parametri di esclusione.
+ Le policy predefinite creeranno un set minimo di snapshot unici. Ad esempio, se abiliti la policy delle AMI supportate da EBS e la policy per gli snapshot EBS, la policy per gli snapshot non duplicherà gli snapshot dei volumi di cui era già stato eseguito il backup dalla policy delle AMI supportate da EBS.
+ Le policy predefinite inizieranno a puntare solo alle risorse che hanno almeno 24 ore.
+ Se elimini un volume o interrompi un'istanza oggetto di una policy predefinita, Amazon Data Lifecycle Manager continuerà a eliminare i backup (snapshot AMIs o) creati in precedenza in base al periodo di conservazione fino all'ultimo backup, ma non incluso. È necessario eliminare questo backup manualmente se non è necessario.

  Se desideri che Amazon Data Lifecycle Manager elimini l'ultimo backup, puoi abilitare l'*eliminazione estesa.*
+ Se una policy predefinita viene eliminata o entra nello stato di errore o disabilitato, Amazon Data Lifecycle Manager interrompe l'eliminazione dei backup (snapshot o) creati in precedenza. AMIs Se desideri che Amazon Data Lifecycle Manager continui a eliminare i backup, incluso l'ultimo, devi abilitare l'*eliminazione estesa* prima di eliminare la policy o prima che lo stato della policy diventi disabilitato o eliminato.
+ Quando crei e abiliti una policy predefinita, Amazon Data Lifecycle Manager assegna in modo casuale le risorse mirate a una finestra temporale di quattro ore. Le risorse mirate vengono salvate durante la finestra assegnata alla frequenza di creazione specificata. Ad esempio, se una policy ha una frequenza di creazione di 3 giorni e una risorsa di destinazione viene assegnata alla finestra 12:00-16:00, verrà eseguito il backup di tale risorsa tra le 12:00 e le 16:00 ogni 3 giorni.

## Crea policy predefinite per gli snapshot di Amazon EBS
<a name="default-snapshot-policy"></a>

La procedura seguente illustra come creare una policy predefinita per gli snapshot EBS.

------
#### [ Console ]

**Creazione di una policy predefinita per gli snapshot EBS**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegli **Lifecycle Manager**, quindi scegli **Crea policy del ciclo di vita**.

1. Per **Tipo di policy**, scegli **Policy predefinita**, quindi scegli **Policy di snapshot EBS**.

1. In **Description (Descrizione)** immettere una breve descrizione della policy.

1. Per **Ruolo IAM**, scegli il ruolo IAM che dispone delle autorizzazioni per gestire gli snapshot.

   Per utilizzare il ruolo IAM predefinito fornito da Amazon Data Lifecycle Manager, consigliamo di selezionare **Predefinito**. Tuttavia, è anche possibile utilizzare un ruolo IAM personalizzato creato in precedenza.

1. Per **Frequenza di creazione**, specifica la frequenza con cui desideri che la policy venga eseguita e crei gli snapshot dei tuoi volumi.

   La frequenza specificata determina anche i volumi di cui viene eseguito il backup. La policy eseguirà il backup solo dei volumi di cui non è stato eseguito il backup con altri mezzi entro la frequenza specificata. Ad esempio, se si specifica una frequenza di creazione di 3 giorni, la policy creerà solo snapshot di volumi di cui non è stato eseguito il backup negli ultimi 3 giorni.

1. Per **Periodo di conservazione**, specifica per quanto tempo desideri che la policy conservi gli snapshot da essa create. Quando uno snapshot raggiunge la soglia di conservazione, viene eliminato automaticamente. Il periodo di conservazione deve essere maggiore o uguale alla frequenza di creazione.

1. (*Facoltativo*) Configura i **parametri di esclusione** per escludere volumi specifici dai backup pianificati. I volumi escluse non verranno sottoposti a backup durante l'esecuzione della policy.

   1. Per escludere i volumi di avvio, seleziona **Escludi volumi di avvio**. Se si escludono i volumi di avvio, la policy eseguirà il backup solo dei volumi di dati (non di avvio). In altre parole, non creerà snapshot di volumi collegati alle istanze come volume di avvio.

   1. Per escludere tipi di volume specifici, scegli **Escludi tipi di volume specifici**, quindi seleziona i tipi di volume da escludere. Solo i volumi dei tipi rimanenti verranno sottoposti a backup dalla policy. 

   1. Per escludere i volumi con tag specifici, scegli **Aggiungi tag**, quindi specifica le chiavi e i valori dei tag. La policy non creerà snapshot di volumi contenenti uno qualsiasi dei tag specificati.

1. (*Facoltativo*) In **Impostazioni avanzate**, specifica le azioni aggiuntive che la policy deve eseguire.

   1. Per copiare i tag assegnati dai volumi di origine negli snapshot, seleziona **Copia tag dai volumi**.

   1. Con **Estendi l'eliminazione** disabilitata:
      + Se un volume di origine viene eliminato, Amazon Data Lifecycle Manager continua a eliminare gli snapshot creati in precedenza fino all'ultimo, senza includerlo, in base al periodo di conservazione. Se desideri che Amazon Data Lifecycle Manager elimini tutti gli snapshot, incluso l'ultimo, seleziona **Estendi l'eliminazione**
      + Se una policy viene eliminata o entra nello stato `error` o `disabled`, Amazon Data Lifecycle Manager interrompe l'eliminazione degli snapshot. Se desideri che Amazon Data Lifecycle Manager continui ad eliminare gli snapshot, incluso l'ultimo, seleziona **Estendi l'eliminazione**
**Nota**  
Se abiliti l'eliminazione estesa, sovrascrivi contemporaneamente entrambi i comportamenti descritti sopra.

   1. Per copiare gli snapshot creati dalla policy in altre Regioni, seleziona **Crea copia tra Regioni**, quindi seleziona fino a 3 Regioni di destinazione.
      + Se lo snapshot di origine è crittografato o se la crittografia è abilitata per impostazione predefinita per la Regione di destinazione, gli snapshot copiati vengono crittografati utilizzando la chiave KMS predefinita per la crittografia EBS nella Regione di destinazione.
      + Se lo snapshot di origine non è crittografato e la crittografia è disabilitata per impostazione predefinita per la Regione di destinazione, gli snapshot copiati non vengono crittografati.

1. (*Facoltativo*) Per aggiungere un tag alla policy, seleziona **Aggiungi tag** e specifica la coppia di chiave e valore per il tag.

1. Scegli **Crea policy predefinita**.
**Nota**  
Se viene restituito l'errore `Role with name AWSDataLifecycleManagerDefaultRole already exists`, consulta [Risolvi i problemi relativi ad Amazon Data Lifecycle Manager](dlm-troubleshooting.md) per ulteriori informazioni.

------
#### [ AWS CLI ]

**Creazione di una policy predefinita per gli snapshot EBS**  
Utilizza il comando [ create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-lifecycle-policy.html). È possibile specificare i parametri della richiesta in uno dei due metodi seguenti, a seconda del caso d'uso o delle preferenze:
+ **Metodo 1**

  ```
  $ aws dlm create-lifecycle-policy \
  --state ENABLED | DISABLED \
  --description "policy_description" \
  --execution-role-arn role_arn \
  --default-policy VOLUME \
  --create-interval creation_frequency_in_days (1-7) \
  --retain-interval retention_period_in_days (2-14) \
  --copy-tags | --no-copy-tags \
  --extend-deletion | --no-extend-deletion \
  --cross-region-copy-targets TargetRegion=destination_region_code \
  --exclusions ExcludeBootVolumes=true | false, ExcludeTags=[{Key=tag_key,Value=tag_value}], ExcludeVolumeTypes="standard | gp2 | gp3 | io1 | io2 | st1 | sc1"
  ```

  Ad esempio, per creare una policy predefinita per gli snapshot EBS che si rivolga a tutti i volumi della Regione, utilizzi il ruolo IAM predefinito, venga eseguita quotidianamente (impostazione predefinita) e conservi gli snapshot per 7 giorni (impostazione predefinita), è necessario specificare i seguenti parametri:

  ```
  $ aws dlm create-lifecycle-policy \
  --state ENABLED \
  --description "Daily default snapshot policy" \
  --execution-role-arn arn:aws:iam::account_id:role/AWSDataLifecycleManagerDefaultRole \
  --default-policy VOLUME
  ```
+ **Metodo 2**

  ```
  $ aws dlm create-lifecycle-policy \
  --state ENABLED | DISABLED \
  --description "policy_description" \
  --execution-role-arn role_arn \
  --default-policy VOLUME \
  --policy-details file://policyDetails.json
  ```

  Dove `policyDetails.json` include quanto segue:

  ```
  {
      "PolicyLanguage": "SIMPLIFIED",
      "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
      "ResourceType": "VOLUME",
      "CopyTags": true | false,
      "CreateInterval": creation_frequency_in_days (1-7),
      "RetainInterval": retention_period_in_days (2-14),
      "ExtendDeletion": true | false, 
      "CrossRegionCopyTargets": [{"TargetRegion":"destination_region_code"}],
      "Exclusions": {
          "ExcludeBootVolume": true | false,
  		"ExcludeVolumeTypes": ["standard | gp2 | gp3 | io1 | io2 | st1 | sc1"],
          "ExcludeTags": [{ 
              "Key": "exclusion_tag_key",
              "Value": "exclusion_tag_value"
          }]
      }
  }
  ```

------

## Crea policy predefinite per EBS AMIs
<a name="default-ami-policy"></a>

La procedura seguente mostra come creare una politica predefinita per EBS-Backed. AMIs

------
#### [ Console ]

**Per creare una politica predefinita per EBS-Backed AMIs**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegli **Lifecycle Manager**, quindi scegli **Crea policy del ciclo di vita**.

1. Per **Tipo di policy**, scegli **Policy predefinita**, quindi scegli **Policy AMI supportata da EBS**.

1. In **Description (Descrizione)** immettere una breve descrizione della policy.

1. Per il **ruolo IAM**, scegli il ruolo IAM con le autorizzazioni di gestione. AMIs

   Per utilizzare il ruolo IAM predefinito fornito da Amazon Data Lifecycle Manager, consigliamo di selezionare **Predefinito**. Tuttavia, è anche possibile utilizzare un ruolo IAM personalizzato creato in precedenza.

1. Per **la frequenza di creazione**, specifica la frequenza con cui desideri che la policy venga eseguita e creata a AMIs partire dalle tue istanze.

   La frequenza specificata determina anche le istanze di cui viene eseguito il backup. La policy eseguirà il backup solo delle istanze di cui non è stato eseguito il backup con altri mezzi entro la frequenza specificata. Ad esempio, se specifichi una frequenza di creazione di 3 giorni, la policy verrà creata solo a AMIs partire da istanze di cui non è stato eseguito il backup negli ultimi 3 giorni.

1. Per **Periodo di conservazione**, specifica per quanto tempo desideri che la policy conservi AMIs ciò che crea. Quando un'AMI raggiunge la soglia di conservazione, la sua registrazione viene automaticamente annullata e gli snapshot associati vengono eliminati. Il periodo di conservazione deve essere maggiore o uguale alla frequenza di creazione.

1. (*Facoltativo*) Configura i **parametri di esclusione** per escludere istanze specifiche dai backup pianificati. Le istanze escluse non verranno sottoposte a backup durante l'esecuzione della policy.

   1. Per escludere le istanze con tag specifici, scegli **Aggiungi tag**, quindi specifica le chiavi e i valori dei tag. La policy non verrà creata AMIs da istanze che hanno uno dei tag specificati.

1. (*Facoltativo*) In **Impostazioni avanzate**, specifica le azioni aggiuntive che la policy deve eseguire.

   1. Per copiare i tag assegnati dalle istanze di origine alle relative istanze AMIs, seleziona **Copia tag dalle** istanze.

   1. Con **Estendi l'eliminazione** disabilitata:
      + Se un'istanza di origine viene terminata, Amazon Data Lifecycle Manager continua a cancellare la registrazione AMIs creata in precedenza fino all'ultima, ma non inclusa, in base al periodo di conservazione. **Se desideri che Amazon Data Lifecycle Manager annulli tutta la registrazione AMIs, inclusa l'ultima, seleziona Estendi l'eliminazione.**
      + Se una policy viene eliminata o entra `disabled` nello stato `error` or, Amazon Data Lifecycle Manager interrompe l'annullamento della registrazione. AMIs **Se desideri che Amazon Data Lifecycle Manager continui ad annullare la registrazione AMIs, inclusa l'ultima, seleziona Estendi l'eliminazione.**
**Nota**  
Se abiliti l'eliminazione estesa, sovrascrivi contemporaneamente entrambi i comportamenti descritti sopra.

   1. Per copiare il file AMIs creato dalla policy in altre regioni, seleziona **Crea copia interregionale**, quindi seleziona fino a 3 regioni di destinazione.
      + Se l'AMI di origine è crittografato o se la crittografia per impostazione predefinita è abilitata per la regione di destinazione, le copie AMIs vengono crittografate utilizzando la chiave KMS predefinita per la crittografia EBS nella regione di destinazione.
      + Se l'AMI di origine non è crittografato e la crittografia per impostazione predefinita è disabilitata per la regione di destinazione, le copie copiate non AMIs sono crittografate.

1. (*Facoltativo*) Per aggiungere un tag alla policy, seleziona **Aggiungi tag** e specifica la coppia di chiave e valore per il tag.

1. Scegli **Crea policy predefinita**.
**Nota**  
Se viene restituito l'errore `Role with name AWSDataLifecycleManagerDefaultRoleForAMIManagement already exists`, consulta [Risolvi i problemi relativi ad Amazon Data Lifecycle Manager](dlm-troubleshooting.md) per ulteriori informazioni.

------
#### [ AWS CLI ]

**Per creare una politica predefinita per EBS Based AMIs**  
Utilizza il comando [ create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-lifecycle-policy.html). È possibile specificare i parametri della richiesta in uno dei due metodi seguenti, a seconda del caso d'uso o delle preferenze:
+ **Metodo 1**

  ```
  $ aws dlm create-lifecycle-policy \
  --state ENABLED | DISABLED \
  --description "policy_description" \
  --execution-role-arn role_arn \
  --default-policy INSTANCE \
  --create-interval creation_frequency_in_days (1-7) \
  --retain-interval retention_period_in_days (2-14) \
  --copy-tags | --no-copy-tags \
  --extend-deletion | --no-extend-deletion \
  --cross-region-copy-targets TargetRegion=destination_region_code \
  --exclusions ExcludeTags=[{Key=tag_key,Value=tag_value}]
  ```

  Ad esempio, per creare una policy predefinita per EBS-Backed AMIs che riguardi tutte le istanze della regione, utilizzi il ruolo IAM predefinito, venga eseguita quotidianamente (impostazione predefinita) e venga conservata AMIs per 7 giorni (impostazione predefinita), è necessario specificare i seguenti parametri:

  ```
  $ aws dlm create-lifecycle-policy \
  --state ENABLED \
  --description "Daily default AMI policy" \
  --execution-role-arn arn:aws:iam::account_id:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \
  --default-policy INSTANCE
  ```
+ **Metodo 2**

  ```
  $ aws dlm create-lifecycle-policy \
  --state ENABLED | DISABLED \
  --description "policy_description" \
  --execution-role-arn role_arn \
  --default-policy INSTANCE \
  --policy-details file://policyDetails.json
  ```

  Dove `policyDetails.json` include quanto segue:

  ```
  {
      "PolicyLanguage": "SIMPLIFIED",
      "PolicyType": "IMAGE_MANAGEMENT",
      "ResourceType": "INSTANCE",
      "CopyTags": true | false,
      "CreateInterval": creation_frequency_in_days (1-7),
      "RetainInterval": retention_period_in_days (2-14),
      "ExtendDeletion": true | false, 
  	"CrossRegionCopyTargets": [{"TargetRegion":"destination_region_code"}],
      "Exclusions": {
          "ExcludeTags": [{ 
              "Key": "exclusion_tag_key",
              "Value": "exclusion_tag_value"
          }]
      }
  }
  ```

------

# Abilita le policy predefinite di Data Lifecycle Manager tra account e regioni
<a name="dlm-stacksets"></a>

Utilizzando CloudFormation StackSets, puoi abilitare le policy predefinite di Amazon Data Lifecycle Manager su più account e AWS regioni con un'unica operazione.

Puoi utilizzare i set di stack per abilitare le policy predefinite in uno dei seguenti modi:
+ **All'interno di un' AWS organizzazione**: garantisce che le politiche predefinite siano abilitate e configurate in modo coerente in un'intera AWS organizzazione o in unità organizzative specifiche di un'organizzazione. Questa operazione viene eseguita utilizzando le autorizzazioni *gestite dal servizio*. CloudFormation StackSets crea i ruoli IAM richiesti per tuo conto.
+ **Su AWS account specifici**: garantisce che le politiche predefinite siano abilitate e configurate in modo coerente su account target specifici. Ciò richiede *autorizzazioni gestite automaticamente*. Crei i ruoli IAM necessari per stabilire la relazione di fiducia tra l'account amministratore dello stack set e gli account di destinazione.

Per ulteriori informazioni, consulta [Modelli di autorizzazione per i set di stack nella Guida](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/what-is-cfnstacksets.html#stacksets-concepts-stackset-permission-models) per l'*AWS CloudFormation utente*.

Utilizza le seguenti procedure per abilitare le policy predefinite di Amazon Data Lifecycle Manager in un'intera AWS organizzazione, su account target specifici o su OUs account target specifici.

**Prerequisiti**

Esegui una delle seguenti operazioni, a seconda di come stai abilitando le policy predefinite:
+ (In tutte AWS le organizzazioni) È necessario [abilitare tutte le funzionalità dell'organizzazione](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_org_support-all-features.html) e [attivare l'accesso affidabile con AWS Organizations](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-activate-trusted-access.html). È inoltre necessario utilizzare l'account di gestione dell'organizzazione o un [account amministratore delegato](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-orgs-delegated-admin.html).
+ (Su account di destinazione specifici) È necessario [concedere autorizzazioni autogestite](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html) creando i ruoli necessari per stabilire una relazione di fiducia tra l'account amministratore dello stack set e gli account di destinazione.

------
#### [ Console ]

**Per abilitare le politiche predefinite all'interno di un' AWS organizzazione o su account di destinazione specifici**

1. Apri la CloudFormation console all'indirizzo [https://console.aws.amazon.com/cloudformation.](https://console.aws.amazon.com/cloudformation/)

1. **Nel riquadro di navigazione, scegli **StackSets**, quindi scegli Crea. StackSet**

1. Per **Autorizzazioni**, esegui una delle seguenti operazioni, a seconda di come stai abilitando le politiche predefinite:
   + (All'interno di un' AWS organizzazione) Scegli le autorizzazioni gestite **dal servizio**.
   + **(Per account di destinazione specifici) Scegli le autorizzazioni self-service.** Quindi, per il **ruolo di amministratore IAM ARN**, seleziona il ruolo di servizio IAM che hai creato per l'account amministratore e per il **nome del ruolo di esecuzione IAM**, inserisci il nome del ruolo di servizio IAM che hai creato negli account di destinazione.

1. Per **Prepara modello**, scegli **Usa un modello di esempio**.

1. Per i **modelli di esempio**, esegui una delle seguenti operazioni:
   + (Policy predefinita per gli snapshot EBS) Seleziona **Crea policy predefinite di Amazon Data Lifecycle Manager** per gli snapshot EBS.
   + (Politica predefinita per sistemi supportati da EBS AMIs) Seleziona **Crea policy predefinite di Amazon Data Lifecycle** Manager per supporto da EBS. AMIs

1. Scegli **Next (Successivo)**.

1. Per **StackSet nome** e **StackSet descrizione, inserisci un nome descrittivo** e una breve descrizione.

1. Nella sezione **Parametri**, configura le impostazioni dei criteri predefinite in base alle esigenze.
**Nota**  
Per carichi di lavoro critici, consigliamo **CreateInterval = 1 giorno** e **RetainInterval = 7 giorni**.

1. Scegli **Next (Successivo)**.

1. (Facoltativo) Per i **tag**, specifica i tag per aiutarti a identificare StackSet e impilare le risorse.

1. Per **Esecuzione gestita**, scegli **Active**.

1. Scegli **Next (Successivo)**.

1. In **Add stacks to stack set** (Aggiungi stack a un set di stack), scegli **Deploy new stacks** (Implementa nuovi stack).

1. Effettuate una delle seguenti operazioni, a seconda di come state abilitando le politiche predefinite:
   + (In tutta AWS l'organizzazione) Per **gli obiettivi di distribuzione**, scegli una delle seguenti opzioni:
     + Per eseguire la distribuzione in un'intera AWS organizzazione, scegli **Distribuisci nell'**organizzazione.
     + Per eseguire la distribuzione su unità organizzative (OU) specifiche, scegli **Distribuisci su unità organizzative**, quindi per **ID OU, inserisci l'ID OU**. Per aggiungerne altriOUs, scegli **Aggiungi un'altra** unità organizzativa.
   + (Su account target specifici) Per **gli account**, esegui una delle seguenti operazioni:
     + Per eseguire la distribuzione su account di destinazione specifici, scegli **Distribuisci pile negli account**, quindi, per **Numeri di account**, inserisci gli account IDs di destinazione.
     + Per eseguire la distribuzione su tutti gli account di una specifica unità organizzativa, scegli **Distribuisci lo stack su tutti gli account di un'unità organizzativa**, quindi per i **numeri dell'organizzazione**, inserisci l'ID dell'unità organizzativa di destinazione.

1. **Per la **distribuzione automatica**, scegli Attivato.**

1. Per il **comportamento di rimozione dell'account**, scegli **Retain stacks**.

1. Per **Specificare le regioni**, seleziona regioni specifiche in cui abilitare le politiche predefinite oppure scegli **Aggiungi tutte le regioni** per abilitare le politiche predefinite in tutte le regioni.

1. Scegli **Next (Successivo)**.

1. Controlla le impostazioni dello stack set, seleziona **Riconosco che CloudFormation potrebbe creare risorse IAM**, quindi scegli **Invia**.

------
#### [ AWS CLI ]

**Per abilitare le policy predefinite all'interno di un'organizzazione AWS**

1. Crea lo stack set. Utilizza il comando [ create-stack-set](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-set.html).

   Per `--permission-model`, specificare `SERVICE_MANAGED`. 

   Per`--template-url`, specifica uno dei seguenti modelli URLs:
   + (Politiche predefinite per EBS AMIs) `https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/DataLifecycleManagerAMIDefaultPolicy.yaml`
   + (Politiche predefinite per le istantanee EBS) `https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/DataLifecycleManagerEBSSnapshotDefaultPolicy.yaml`

   Per`--parameters`, specifica le impostazioni per le politiche predefinite. Per i parametri supportati, le descrizioni dei parametri e i valori validi, scaricate il modello utilizzando l'URL e quindi visualizzatelo utilizzando un editor di testo.

   Per `--auto-deployment`, specificare `Enabled=true, RetainStacksOnAccountRemoval=true`.

   ```
   $ aws cloudformation create-stack-set \
   --stack-set-name stackset_name \
   --permission-model SERVICE_MANAGED \
   --template-url template_url \
   --parameters "ParameterKey=param_name_1,ParameterValue=param_value_1" "ParameterKey=param_name_2,ParameterValue=param_value_2" \
   --auto-deployment "Enabled=true, RetainStacksOnAccountRemoval=true"
   ```

1. Distribuisci lo stack set. Utilizza il comando [ create-stack-instances](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-instances.html).

   Per`--stack-set-name`, specifica il nome dello stack set che hai creato nel passaggio precedente.

   Per`--deployment-targets OrganizationalUnitIds`, specificare l'ID dell'unità organizzativa principale da distribuire in un'intera organizzazione o l'unità organizzativa IDs da distribuire OUs in aree specifiche dell'organizzazione.

   Per`--regions`, specificare le AWS regioni in cui abilitare le politiche predefinite.

   ```
   $ aws cloudformation create-stack-instances \
   --stack-set-name stackset_name \
   --deployment-targets OrganizationalUnitIds='["root_ou_id"]' | '["ou_id_1", "ou_id_2]' \
   --regions '["region_1", "region_2"]'
   ```

**Per abilitare le politiche predefinite su account di destinazione specifici**

1. Crea lo stack set. Utilizza il comando [ create-stack-set](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-set.html).

   Per`--template-url`, specifica uno dei seguenti modelli URLs:
   + (Politiche predefinite per EBS AMIs) `https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/DataLifecycleManagerAMIDefaultPolicy.yaml`
   + (Politiche predefinite per le istantanee EBS) `https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/DataLifecycleManagerEBSSnapshotDefaultPolicy.yaml`

   Per`--administration-role-arn`, specifica l'ARN del ruolo di servizio IAM creato in precedenza per l'amministratore dello stack set. 

   Per`--execution-role-name`, specifica il nome del ruolo di servizio IAM che hai creato negli account di destinazione.

   Per`--parameters`, specifica le impostazioni per le politiche predefinite. Per i parametri supportati, le descrizioni dei parametri e i valori validi, scaricate il modello utilizzando l'URL e quindi visualizzatelo utilizzando un editor di testo.

   Per `--auto-deployment`, specificare `Enabled=true, RetainStacksOnAccountRemoval=true`.

   ```
   $ aws cloudformation create-stack-set \
   --stack-set-name stackset_name \
   --template-url template_url \
   --parameters "ParameterKey=param_name_1,ParameterValue=param_value_1" "ParameterKey=param_name_2,ParameterValue=param_value_2" \
   --administration-role-arn administrator_role_arn \
   --execution-role-name target_account_role \									
   --auto-deployment "Enabled=true, RetainStacksOnAccountRemoval=true"
   ```

1. Distribuisci lo stack set. Utilizza il comando [ create-stack-instances](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/create-stack-instances.html).

   Per`--stack-set-name`, specifica il nome dello stack set che hai creato nel passaggio precedente.

   Per`--accounts`, specifica gli AWS account IDs di destinazione.

   Per`--regions`, specificare le AWS regioni in cui abilitare le politiche predefinite.

   ```
   $ aws cloudformation create-stack-instances \
   --stack-set-name stackset_name \
   --accounts '["account_ID_1","account_ID_2"]' \
   --regions '["region_1", "region_2"]'
   ```

------

# Crea policy personalizzate di Amazon Data Lifecycle Manager per gli snapshot EBS
<a name="snapshot-ami-policy"></a>

La procedura seguente illustra come utilizzare Amazon Data Lifecycle Manager per automatizzare i cicli di vita degli snapshot Amazon EBS.

**Topics**
+ [Creare una policy del ciclo di vita dello snapshot](#create-snap-policy)
+ [Considerazioni sulle policy del ciclo di vita degli snapshot](#snapshot-considerations)
+ [Risorse aggiuntive](#snapshot-additional-resources)
+ [Automatizza le istantanee coerenti con l'applicazione](automate-app-consistent-backups.md)
+ [Altri casi d'uso per gli script pre e post](script-other-use-cases.md)
+ [Come funzionano gli script pre e post](script-flow.md)
+ [Identifica le istantanee create con script precedenti e successivi](dlm-script-tags.md)
+ [Monitora gli script precedenti e successivi](dlm-script-monitoring.md)

## Creare una policy del ciclo di vita dello snapshot
<a name="create-snap-policy"></a>

Per creare una policy del ciclo di vita dello snapshot, attenersi a una delle procedure descritte di seguito.

------
#### [ Console ]

**Come creare una policy di snapshot**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegliere **Elastic Block Store**, **Lifecycle Manager**, quindi selezionare **Create lifecycle policy (Crea policy del ciclo di vita)**.

1. Nella schermata **Seleziona il tipo di policy**, seleziona **Policy di snapshot EBS** e quindi **Successivo**.

1. Nella sezione **Risorse di destinazione**, procedere come segue:

   1. Per **Tipi di risorse di destinazione** seleziona il tipo di risorsa di cui eseguire il backup. Scegliere `Volume` per creare snapshot di singoli volumi oppure `Instance` per creare snapshot a più volumi dai volumi collegati a un'istanza.

   1. (*Outposte solo per i clienti della zona locale*) Specificate dove si trovano le risorse di destinazione.

      Per **Posizione delle risorse interessate**, specifica dove sono collocate le risorse di destinazione.
      + Per indirizzare le risorse in una regione, scegli **AWS Regione**. Amazon Data Lifecycle Manager eseguirà il backup di tutte le risorse del tipo specificato con tag di destinazione corrispondenti solo nella regione corrente. Le istantanee vengono create nella stessa regione.
      + Per indirizzare le risorse in Local Zones, scegli **AWS Local Zones**. Amazon Data Lifecycle Manager eseguirà il backup di tutte le risorse del tipo specificato con tag di destinazione corrispondenti solo in tutte le Local Zones della regione corrente. Le istantanee possono essere create nella stessa zona locale della risorsa di origine o nella sua regione principale.
      + Per indirizzare le risorse eOutpost, scegli **AWS Outpost**. Amazon Data Lifecycle Manager eseguirà il backup di tutte le risorse del tipo specificato con tag di destinazione corrispondenti in tutto Outposts il tuo account. Le istantanee possono essere create sulla Outpost stessa risorsa di origine o nella regione madre.

   1. Per **Tag della risorsa di destinazione**, seleziona i tag delle risorse che identificano i volumi o le istanze di cui eseguire il backup. La policy esegue il backup solo delle risorse che dispongono delle coppie di chiave tag e valore specificate.

1. In **Description (Descrizione)** immettere una breve descrizione della policy.

1. Per **Ruolo IAM**, seleziona il ruolo IAM che dispone delle autorizzazioni per gestire gli snapshot e per descrivere volumi e istanze. Per utilizzare il ruolo predefinito fornito da Amazon Data Lifecycle Manager, seleziona **Ruolo predefinito**. In alternativa, per utilizzare un ruolo IAM personalizzato creato in precedenza, seleziona **Scegli un altro ruolo**, quindi seleziona il ruolo desiderato.

1. Per **Tag di policy**, aggiungi i tag da applicare alla policy del ciclo di vita. Puoi utilizzare i tag per identificare e categorizzare le policy.

1. Per **Policy status** (Stato della policy dopo la creazione), seleziona **Enable**(Abilita) per avviare l'esecuzione della policy all'ora successiva pianificata o **Disable policy** (Disabilita la policy) per impedirne l'esecuzione. Se la policy non viene attivata ora, non inizierà a creare snapshot finché non verrà attivata manualmente dopo la creazione.

1. (*Policy destinate solo alle istanze*) Escludere i volumi dai set di snapshot a più volumi.

   Per impostazione predefinita, Amazon Data Lifecycle Manager crea snapshot di tutti i volumi collegati alle istanze di destinazione. Tuttavia, puoi scegliere di creare snapshot per un sottoinsieme dei volumi collegati. Nella sezione **Parameters** (Parametri) esegui le operazioni seguenti:
   + Se non desideri creare snapshot dei volumi root collegati alle istanze target, seleziona **Exclude root volume** (Escludi il volume root). Se selezioni questa opzione, solo i volumi di dati (non root) collegati alle istanze target verranno inclusi nei set di snapshot a più volumi.
   + Se desideri creare snapshot di un sottoinsieme dei volumi di dati (non root) collegati all'istanza, seleziona **Exclude specific data volumes** (Escludi volumi di dati specifici), quindi specifica i tag da utilizzare per identificare i volumi di dati da escludere. Amazon Data Lifecycle Manager non creerà snapshot di volumi di dati contenenti uno qualsiasi dei tag specificati. Amazon Data Lifecycle Manager creerà solo snapshot di volumi di dati non contenenti i tag specificati.

1. Scegli **Next (Successivo)**.

1. Nella schermata **Configura pianificazione**, configura le pianificazioni delle policy. Una policy può avere fino a 4 pianificazioni. La pianificazione 1 è obbligatoria. Le pianificazioni 2, 3 e 4 sono facoltative. Per ogni pianificazione di policy che viene aggiunta, completa le seguenti operazioni:

   1. Nella sezione **Dettagli pianificazione**, completa le operazioni descritte di seguito.

      1. Per **Nome pianificazione**, specifica un nome descrittivo per la pianificazione.

      1. Per **Frequenza** e nei campi correlati, configura l'intervallo tra un'esecuzione della policy e l'altra.

         Puoi configurare le esecuzioni delle policy in base a una pianificazione giornaliera, settimanale, mensile o annuale. In alternativa, scegli **Custom cron expression (Personalizza espressione cron)** per specificare un intervallo massimo di 1 anno. Per ulteriori informazioni, consulta [Cron and rate expression](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html) nella *Amazon EventBridge User Guide*.
**Nota**  
Se devi abilitare l'**archiviazione degli snapshot** per la pianificazione, devi selezionare la frequenza **mensile** o **annuale**, oppure devi specificare un'espressione cron con una frequenza di creazione di almeno 28 giorni.  
Se specifichi una frequenza mensile che crea snapshot in un giorno specifico di una settimana specifica (ad esempio il secondo giovedì del mese), per una pianificazione basata sul conteggio il numero di conservazioni per il livello archivio deve essere almeno 4.

      1. In **A partire dalle**, specifica l'ora di avvio pianificata per le esecuzioni della policy. La prima esecuzione della policy inizia entro un'ora dall'orario pianificato. L'ora deve essere inserita in formato `hh:mm` UTC.

      1. Per **Tipo di conservazione**, specifica la policy di conservazione per gli snapshot creati dalla pianificazione.

         È possibile conservare gli snapshot in base al loro conteggio totale o alla loro età.
         + Mantenimento basato sul conteggio
           + Con l'archiviazione degli snapshot disabilitata, l'intervallo è da `1` a `1000`. Quando viene raggiunta la soglia di conservazione, lo snapshot meno recente viene eliminato definitivamente.
           + Con l'archiviazione degli snapshot abilitata, l'intervallo è da `0` (archiviazione immediata dopo la creazione) a `1000`. Quando viene raggiunta la soglia di conservazione, lo snapshot meno recente viene convertito in uno snapshot completo e viene spostato nel livello di archivio.
         + Mantenimento basato sull'età
           + Con l'archiviazione degli snapshot disabilitata, l'intervallo è da `1` giorno a `100` anni. Quando viene raggiunta la soglia di conservazione, lo snapshot meno recente viene eliminato definitivamente.
           + Con l'archiviazione degli snapshot abilitata, l'intervallo è da `0` giorni (archiviazione immediata dopo la creazione) a `100` anni. Quando viene raggiunta la soglia di conservazione, lo snapshot meno recente viene convertito in uno snapshot completo e viene spostato nel livello di archivio.
**Nota**  
Tutte le pianificazioni devono avere lo stesso tipo di conservazione (in base all'età o in base al conteggio). È possibile specificare il tipo di conservazione solo per Pianificazione 1. Le pianificazioni 2, 3 e 4 ereditano il tipo di conservazione dal programma 1. Ogni programma può avere il proprio conteggio o periodo di conservazione.
Se abiliti il ripristino rapido degli snapshot, la copia tra regioni o la condivisione di snapshot, devi specificare un numero di conservazioni di almeno `1` o un periodo di conservazione di almeno `1` giorno.

      1. (*AWS Outposts e solo per i clienti della zona locale*) Specificate la destinazione dello snapshot.

         Per **Destinazione dello snapshot**, specifica la destinazione per gli snapshot creati dalla policy.
         + Se la politica riguarda le risorse in una regione, le istantanee devono essere create nella stessa regione. AWS La regione è selezionata automaticamente.
         + Se la politica riguarda le risorse in una zona locale, è possibile creare istantanee nella stessa zona locale della risorsa di origine o nella relativa regione principale.
         + Se la politica riguarda le risorse su unaOutpost, è possibile creare istantanee sulla Outpost stessa risorsa di origine o nella relativa regione principale.

   1. Configura il tagging per gli snapshot.

      Nella sezione **Tagging**, procedi nel seguente modo:

      1. Per copiare tutti i tag definiti dall'utente dal volume di origine agli snapshot creati dalla pianificazione, seleziona **Copia tag dall'origine**.

      1. Per specificare eventuali tag aggiuntivi da assegnare agli snapshot creati da questa pianificazione, seleziona **Aggiungi tag**.

   1. Configura gli script pre e post per gli snapshot coerenti con l'applicazione.

      Per ulteriori informazioni, consulta [Automatizza le istantanee coerenti con le applicazioni con Data Lifecycle Manager](automate-app-consistent-backups.md).

   1. (*Policy destinate solo ai volumi*) Configura l'archiviazione degli snapshot.

      Nella sezione **Archiviazione degli snapshot**, procedi come segue:
**Nota**  
Puoi abilitare l'archiviazione degli snapshot per una sola pianificazione in una policy.

      1. Per abilitare l'archiviazione degli snapshot per la pianificazione, seleziona **Archivia snapshot creati da questa pianificazione**.
**Nota**  
Puoi abilitare l'archiviazione degli snapshot solo se la frequenza di creazione degli snapshot è mensile o annuale, oppure se specifichi un'espressione cron con una frequenza di creazione di almeno 28 giorni.

      1. Specifica la regola di conservazione per gli snapshot nel livello archivio.
         + Per **pianificazioni basate sul conteggio**, specifica il numero di snapshot da mantenere nel livello archivio. Quando viene raggiunta la soglia di conservazione, lo snapshot meno recente viene eliminato definitivamente dal livello di archivio. Ad esempio, se specifichi 3, la pianificazione manterrà max 3 snapshot nel livello archivio. Quando viene archiviato il quarto snapshot, il più vecchio dei tre snapshot esistenti nel livello archivio viene eliminato.
         + Per **pianificazioni basate sul conteggio**, specifica il numero di snapshot da mantenere nel livello archivio. Quando viene raggiunta la soglia di conservazione, lo snapshot meno recente viene eliminato definitivamente dal livello di archivio. Ad esempio, se specifichi 120 giorni, la pianificazione eliminerà automaticamente gli snapshot dal livello archivio quando avranno raggiunto tale età.
**Importante**  
Il periodo minimo di conservazione per gli snapshot archiviati è 90 giorni. Devi specificare una regola di conservazione che mantenga lo snapshot per almeno 90 giorni.

   1. Abilitare il ripristino rapido degli snapshot.

      Per abilitare il ripristino rapido degli snapshot creati dalla pianificazione, nella finestra di dialogo **Ripristino rapido degli snapshot**, seleziona **Abilita ripristino rapido degli snapshot**. Se si abilita il ripristino rapido dello snapshot, è necessario scegliere le zone di disponibilità in cui attivarlo. Se la pianificazione utilizza una pianificazione di conservazione basata sull'età, è necessario specificare il periodo durante il quale abilitare il ripristino rapido degli snapshot per ogni snapshot. Se la pianificazione utilizza la conservazione basata su conteggi, è necessario specificare il numero massimo di snapshot per consentire il ripristino rapido degli snapshot.

      Se la pianificazione crea istantanee su unaOutpost, non è possibile abilitare il ripristino rapido delle istantanee. Il ripristino rapido delle istantanee non è supportato con le istantanee locali archiviate su un. Outpost
**Nota**  
Viene fatturato ogni minuto in cui viene abilitato il ripristino rapido degli snapshot per uno snapshot in una determinata zona di disponibilità. Le tariffe sono proporzionalmente valutate con un minimo di un'ora.

   1. Configura la copia tra Regioni.

      **Per copiare le istantanee create dalla pianificazione in una Outpost o in un'altra regione, nella sezione **Copia tra regioni, seleziona Abilita copia** tra regioni.**

      Se la pianificazione crea istantanee in una regione, puoi copiare le istantanee in un massimo di tre regioni aggiuntive o nel tuo account. Outposts È necessario specificare una regola di copia interregionale distinta per ogni regione di destinazione o. Outpost

      Per ogni regioneOutpost, puoi scegliere politiche di conservazione diverse e puoi scegliere se copiare tutti i tag o nessun tag. Se lo snapshot di origine è crittografato o se la crittografia è abilitata per impostazione predefinita, le copie degli snapshot saranno crittografate. Se lo snapshot di origine non è crittografato, è possibile abilitare la crittografia. Se non si specifica una chiave KMS, gli snapshot vengono crittografati utilizzando la chiave KMS predefinita per la crittografia EBS in ogni regione di destinazione. Se si specifica una Chiave KMS per la regione di destinazione, il ruolo IAM selezionato deve avere accesso alla Chiave KMS.
**Nota**  
È necessario assicurarsi di non superare il numero di copie di snapshot simultanee per regione.

       Se la policy crea istantanee su una regioneOutpost, non è possibile copiare le istantanee in una regione o in un'altra Outpost e le impostazioni di copia tra aree geografiche non sono disponibili.

   1. Configura la condivisione tra account.

      Nella **condivisione tra account**, configura la politica per condividere automaticamente le istantanee create dalla pianificazione con altri account. AWS Esegui questa operazione:

      1. Per abilitare la condivisione con altri AWS account, seleziona **Abilita condivisione tra** account.

      1. Per aggiungere gli account con cui condividere gli snapshot, scegli **Aggiungi account**, inserisci l'ID account AWS di 12 cifre e seleziona **Aggiungi**.

      1. Per annullare automaticamente la condivisione degli snapshot condivisi dopo un periodo di tempo specifico, selezionare **Unshare automatically (Annulla la condivisione automatica)**. Se si sceglie di annullare automaticamente la condivisione degli snapshot condivisi, il periodo dopo il quale si desidera annullare la condivisione automatica degli snapshot non può essere più lungo del periodo durante il quale la policy conserva gli snapshot. Ad esempio, se la configurazione di conservazione della policy prevede la conservazione degli snapshot per un periodo di 5 giorni, è possibile configurare la policy solo affinché annulli automaticamente la condivisione degli snapshot condivisi dopo un periodo di massimo 4 giorni. Questo vale per le policy con configurazioni di conservazione degli snapshot basate sull'età e sul conteggio.

         Se non si attiva l'annullamento della condivisione automatica, lo snapshot sarà condiviso fino a quando non viene eliminato.
**Nota**  
È possibile condividere solo snapshot non crittografati o crittografati utilizzando una chiave gestita dal cliente. Non è possibile condividere snapshot crittografati con la Chiave KMS di crittografia EBS predefinita. Se si condividono snapshot crittografati, è necessario condividere con gli account di destinazione anche la Chiave KMS utilizzata per crittografare il volume di origine. Per ulteriori informazioni, consultare [Consentire agli utenti in altri account di utilizzare una chiave KMS](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

   1. Per aggiungere ulteriori pianificazioni, seleziona **Aggiungi un'altra pianificazione**, che si trova nella parte superiore dello schermo. Per ogni pianificazione aggiuntiva, completa i campi come descritto in precedenza in questo argomento.

   1. Dopo aver aggiunto le pianificazioni richieste, seleziona **Rivedi policy**.

1. Esamina il riepilogo della policy, quindi seleziona **Crea policy**.
**Nota**  
Se viene restituito l'errore `Role with name AWSDataLifecycleManagerDefaultRole already exists`, consulta [Risolvi i problemi relativi ad Amazon Data Lifecycle Manager](dlm-troubleshooting.md) per ulteriori informazioni.

------
#### [ Command line ]

Utilizza il [create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-lifecycle-policy.html)comando per creare una politica del ciclo di vita delle istantanee. Per `PolicyType`, specificare `EBS_SNAPSHOT_MANAGEMENT`.

**Nota**  
Per semplificare la sintassi, negli esempi seguenti viene utilizzato un file JSON, `policyDetails.json`, che include i dettagli della policy.

**Esempio 1: policy del ciclo di vita degli snapshot con due pianificazioni**  
In questo esempio viene creata una policy del ciclo di vita degli snapshot che crea snapshot di tutti i volumi che dispongono di una chiave di tag `costcenter` con il valore `115`. La policy include due orari. La prima pianificazione crea uno snapshot ogni giorno alle 03:00 UTC. La seconda pianificazione crea uno snapshot settimanale ogni venerdì alle 17:00 UTC.

```
aws dlm create-lifecycle-policy \
    --description "My volume policy" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole \
    --policy-details file://policyDetails.json
```

Di seguito è riportato un esempio del file `policyDetails.json`.

```
{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": [
        "VOLUME"
    ],
    "TargetTags": [{
        "Key": "costcenter",
        "Value": "115"
    }],
    "Schedules": [{
        "Name": "DailySnapshots",
        "TagsToAdd": [{
            "Key": "type",
            "Value": "myDailySnapshot"
        }],
        "CreateRule": {
            "Interval": 24,
            "IntervalUnit": "HOURS",
            "Times": [
                "03:00"
            ]
        },
        "RetainRule": {
            "Count": 5
        },
        "CopyTags": false
    },
    {
        "Name": "WeeklySnapshots",
        "TagsToAdd": [{
            "Key": "type",
            "Value": "myWeeklySnapshot"
        }],
        "CreateRule": {
            "CronExpression": "cron(0 17 ? * FRI *)"
        },
        "RetainRule": {
            "Count": 5
        },
        "CopyTags": false
    }
]}
```

Se la richiesta ha esito positivo, il comando restituisce l'ID della policy appena creata. Di seguito è riportato un output di esempio.

```
{
   "PolicyId": "policy-0123456789abcdef0"
}
```

**Esempio 2: Policy del ciclo di vita degli snapshot che si rivolge alle istanze e crea snapshot di un sottoinsieme di volumi di dati (non root)**  
Questo esempio illustra la creazione di una policy del ciclo di vita degli snapshot che crea set di snapshot a più volumi da istanze taggate con `code=production`. La policy include soltanto una pianificazione. La pianificazione non crea snapshot di volumi di dati taggati con `code=temp`.

```
aws dlm create-lifecycle-policy \
    --description "My volume policy" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole \
    --policy-details file://policyDetails.json
```

Di seguito è riportato un esempio del file `policyDetails.json`.

```
{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": [
        "INSTANCE"
    ],
    "TargetTags": [{
        "Key": "code",
        "Value": "production"
    }],
    "Parameters": {
        "ExcludeDataVolumeTags": [{
            "Key": "code",
            "Value": "temp"
        }]
    },
    "Schedules": [{
        "Name": "DailySnapshots",
        "TagsToAdd": [{
            "Key": "type",
            "Value": "myDailySnapshot"
        }],
        "CreateRule": {
            "Interval": 24,
            "IntervalUnit": "HOURS",
            "Times": [
                "03:00"
            ]
        },
        "RetainRule": {
            "Count": 5
        },
        "CopyTags": false
    }
]}
```

Se la richiesta ha esito positivo, il comando restituisce l'ID della policy appena creata. Di seguito è riportato un output di esempio.

```
{
   "PolicyId": "policy-0123456789abcdef0"
}
```

**Esempio 3: politica del ciclo di vita delle istantanee che automatizza le istantanee locali delle risorse Outpost**  
Questo esempio crea una politica del ciclo di vita delle istantanee che crea istantanee dei volumi con cui sono etichettati tutti i tuoi. `team=dev` Outposts La policy crea le istantanee sugli stessi Outposts volumi di origine. La policy crea snapshot ogni `12` ore a partire dalle `00:00` UTC.

```
aws dlm create-lifecycle-policy \
    --description "My local snapshot policy" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole \
    --policy-details file://policyDetails.json
```

Di seguito è riportato un esempio del file `policyDetails.json`.

```
{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": "VOLUME",
	"ResourceLocations": "OUTPOST",
    "TargetTags": [{
        "Key": "team",
        "Value": "dev"
    }],
    "Schedules": [{
        "Name": "on-site backup",
        "CreateRule": {
            "Interval": 12,
            "IntervalUnit": "HOURS",
            "Times": [
                "00:00"
            ],
	"Location": [
		"OUTPOST_LOCAL"
	]
        },
        "RetainRule": {
            "Count": 1
        },
        "CopyTags": false
    }
]}
```

**Esempio 4: politica del ciclo di vita delle istantanee che crea istantanee in una regione e le copia in una Outpost**  
La policy di esempio seguente crea snapshot dei volumi con tag `team=dev`. Gli snapshot vengono creati nella stessa Regione del volume di origine. Gli snapshot vengono creati ogni `12` ore a partire dalle `00:00` UTC. Viene conservato un massimo di `1` snapshot. La policy copia inoltre le istantanee in Outpost`arn:aws:outposts:us-east-1:123456789012:outpost/op-1234567890abcdef0`, crittografa le istantanee copiate utilizzando la chiave KMS di crittografia predefinita e conserva le copie per un mese. `1`

```
aws dlm create-lifecycle-policy \
    --description "Copy snapshots to Outpost" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole \
    --policy-details file://policyDetails.json
```

Di seguito è riportato un esempio del file `policyDetails.json`.

```
{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": "VOLUME",
    "ResourceLocations": "CLOUD",
    "TargetTags": [{
        "Key": "team",
        "Value": "dev"
    }],
    "Schedules": [{
        "Name": "on-site backup",
        "CopyTags": false,
        "CreateRule": {
            "Interval": 12,
            "IntervalUnit": "HOURS",
            "Times": [
                "00:00"
            ],
            "Location": "CLOUD"
        },
        "RetainRule": {
            "Count": 1
        },
        "CrossRegionCopyRules" : [
        {
            "Target": "arn:aws:outposts:us-east-1:123456789012:outpost/op-1234567890abcdef0",
            "Encrypted": true,
            "CopyTags": true,
            "RetainRule": {
                "Interval": 1,
                "IntervalUnit": "MONTHS"
            }
        }]
    }
]}
```

**Esempio 5: policy del ciclo di vita degli snapshot con una pianificazione basata sull'età e abilitata all'archiviazione**  
In questo esempio viene creata una policy del ciclo di vita dei volumi di destinazioni con tag con `Name=Prod`. La policy ha una pianificazione basata sull'età che crea snapshot il primo giorno di ogni mese alle ore 09:00. La pianificazione mantiene ogni snapshot nel livello standard per un giorno, dopodiché lo sposta nel livello archivio. Gli snapshot vengono memorizzati nel livello archivio per 90 giorni prima di essere eliminati.

```
aws dlm create-lifecycle-policy \
    --description "Copy snapshots to Outpost" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole \
    --policy-details file://policyDetails.json
```

Di seguito è riportato un esempio del file `policyDetails.json`.

```
{
    "ResourceTypes": [ "VOLUME"],
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "Schedules" : [
      {
        "Name": "sched1",
        "TagsToAdd": [
          {"Key":"createdby","Value":"dlm"}
        ],
        "CreateRule": {
          "CronExpression": "cron(0 9 1 * ? *)"
        },
        "CopyTags": true,
        "RetainRule":{
          "Interval": 1,
          "IntervalUnit": "DAYS"
        },
        "ArchiveRule": {
            "RetainRule":{
              "RetentionArchiveTier": {
                 "Interval": 90,
                 "IntervalUnit": "DAYS"
              }
            }
        }
      }
    ],
    "TargetTags": [
      {
        "Key": "Name",
        "Value": "Prod"
      }
    ]
}
```

**Esempio 6: policy del ciclo di vita degli snapshot con una pianificazione basata sul conteggio e abilitata all'archiviazione**  
In questo esempio viene creata una policy del ciclo di vita dei volumi di destinazioni con tag con `Purpose=Test`. La policy ha una pianificazione basata sul conteggio che crea snapshot il primo giorno di ogni mese alle ore 09:00. La pianificazione archivia gli snapshot subito dopo la creazione e mantiene max 3 snapshot nel livello archivio.

```
aws dlm create-lifecycle-policy \
    --description "Copy snapshots to Outpost" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole \
    --policy-details file://policyDetails.json
```

Di seguito è riportato un esempio del file `policyDetails.json`.

```
{
    "ResourceTypes": [ "VOLUME"],
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "Schedules" : [
      {
        "Name": "sched1",
        "TagsToAdd": [
          {"Key":"createdby","Value":"dlm"}
        ],
        "CreateRule": {
          "CronExpression": "cron(0 9 1 * ? *)"
        },
        "CopyTags": true,
        "RetainRule":{
          "Count": 0
        },
        "ArchiveRule": {
            "RetainRule":{
              "RetentionArchiveTier": {
                 "Count": 3
              }
            }
        }
      }
    ],
    "TargetTags": [
      {
        "Key": "Purpose",
        "Value": "Test"
      }
    ]
}
```

------

## Considerazioni sulle policy del ciclo di vita degli snapshot
<a name="snapshot-considerations"></a>

Alle policy sul ciclo di vita degli snapshot si applicano le seguenti **considerazioni generali**:
+ Le policy del ciclo di vita degli snapshot riguardano solo le istanze o i volumi che si trovano nella stessa regione della policy.
+ La prima operazione di creazione dello snapshot inizia entro un'ora dall'ora di inizio specificata. Le successive operazioni di creazione di snapshot iniziano entro un'ora dall'orario pianificato.
+ Puoi creare più policy per supportare un volume o un'istanza. Ad esempio, se a un volume sono associati due tag, dove il tag *A* è il tag di destinazione della policy *A* per la creazione di uno snapshot ogni 12 ore e il tag *B* è il tag di destinazione della policy *B* per la creazione di uno snapshot ogni 24 ore, Amazon Data Lifecycle Manager crea snapshot in base alle pianificazioni di entrambe le policy. In alternativa, è possibile ottenere lo stesso risultato creando un'unica policy con più pianificazioni. Ad esempio, è possibile creare un'unica policy indirizzata solo al tag *A* e specificare due pianificazioni: una ogni 12 ore e una ogni 24 ore.
+ I tag delle risorse di destinazione fanno distinzione tra maiuscole e minuscole.
+ Se rimuovi i tag di destinazione di una policy, Sistema di gestione del ciclo di vita dei dati Amazon non gestirà più gli snapshot esistenti nel livello standard e nel livello archivio; se non sono più necessari, dovrai eliminarli manualmente.
+ Se si crea una policy indirizzata alle istanze di destinazione e i nuovi volumi vengono collegati all'istanza di destinazione dopo la creazione della policy, i volumi appena aggiunti vengono inclusi nel backup alla successiva esecuzione della policy. Sono inclusi tutti i volumi collegati all'istanza al momento dell'esecuzione della policy.
+ Se si crea una policy con una pianificazione basata su cronologia personalizzata che è configurata per creare solo uno snapshot, la policy non eliminerà automaticamente tale snapshot quando viene raggiunta la soglia di conservazione. Se non è più necessario, occorre eliminare manualmente lo snapshot.
+ Se crei una policy basata sull'età in cui il periodo di conservazione è più breve della frequenza di creazione, Sistema di gestione del ciclo di vita dei dati Amazon conserverà sempre l'ultimo snapshot fino alla creazione di quello successivo. Ad esempio, se una policy basata sull'età crea uno snapshot ogni mese con un periodo di conservazione di sette giorni, Sistema di gestione del ciclo di vita dei dati Amazon conserverà ogni snapshot per un mese anche se il periodo di conservazione è di sette giorni.

All'**[archiviazione degli snapshot](snapshot-archive.md)** si applicano le considerazioni seguenti:
+ Puoi abilitare l'archiviazione degli snapshot solo per le policy degli snapshot per volumi di destinazione.
+ Puoi specificare una regola di archiviazione per una sola pianificazione per ogni policy.
+ Se usi la console, puoi abilitare l'archiviazione degli snapshot solo se la pianificazione ha una frequenza di creazione mensile o annuale, oppure se specifichi un'espressione cron con una frequenza di creazione di almeno 28 giorni.

  Se si utilizza l' AWS API o l' AWS CLI AWS SDK, è possibile abilitare l'archiviazione delle istantanee solo se la pianificazione ha un'espressione cron con una frequenza di creazione di almeno 28 giorni.
+ Il periodo di conservazione minimo nel livello archivio è 90 giorni.
+ Quando uno snapshot viene archiviato, viene convertito in uno snapshot completo quando viene spostato nel livello di archivio. Ciò potrebbe aumentare i costi di archiviazione degli snapshot. Per ulteriori informazioni, consulta [Prezzi e fatturazione per l'archiviazione degli snapshot di Amazon EBS](snapshot-archive-pricing.md).
+ Il ripristino rapido e la condivisione degli snapshot sono disattivati per gli snapshot quando vengono archiviati.
+ Se, nel caso di un anno bisestile, la regola di conservazione comporta un periodo di conservazione dell'archivio inferiore a 90 giorni, Amazon Data Lifecycle Manager garantisce che gli snapshot vengano mantenuti per un periodo minimo di 90 giorni.
+ Se archivi manualmente uno snapshot creato da Amazon Data Lifecycle Manager e lo snapshot rimane ancora archiviato quando viene raggiunta la soglia di conservazione della pianificazione, Amazon Data Lifecycle Manager non gestisce più tale snapshot. Tuttavia, se ripristini lo snapshot al livello standard prima che venga raggiunta la soglia di conservazione della pianificazione, la pianificazione continuerà a gestire lo snapshot secondo le regole di conservazione.
+ Se ripristini definitivamente o temporaneamente uno snapshot creato da Amazon Data Lifecycle Manager al livello standard e lo snapshot rimane ancora archiviato quando viene raggiunta la soglia di conservazione della pianificazione, Amazon Data Lifecycle Manager non gestisce più tale snapshot. Tuttavia, se archivi nuovamente lo snapshot prima che venga raggiunta la soglia di conservazione della pianificazione, la pianificazione eliminerà lo snapshot quando viene raggiunta la soglia di conservazione.
+ Gli snapshot archiviati da Amazon Data Lifecycle Manager vengono conteggiati nelle tue quote `Archived snapshots per volume` e `In-progress snapshot archives per account`.
+ Se una pianificazione non è in grado di archiviare una snapshot dopo nuovi tentativi per 24 ore, lo snapshot rimane nel livello standard e viene pianificato per l'eliminazione in base al tempo in cui sarebbe stata eliminata dal livello archivio. Ad esempio, se la pianificazione archivia snapshot per 120 giorni, gli snapshot rimangono nel livello standard per 120 giorni dopo l'archiviazione non riuscita prima dell'eliminazione definitiva. Per le pianificazioni basate sul conteggio, lo snapshot non viene conteggiato nel numero di conservazioni della pianificazione.
+ Gli snapshot devono essere archiviati nella stessa regione in cui sono stati creati. Se hai abilitato la copia e l'archiviazione di snapshot tra Regioni, Sistema di gestione del ciclo di vita dei dati Amazon non archivia copie dello snapshot.
+ Gli snapshot archiviati da Amazon Data Lifecycle Manager sono contrassegnati con il tag di sistema `aws:dlm:archived=true`. Inoltre, gli snapshot creati da una pianificazione basata sull'età e abilitata all'archiviazione sono contrassegnati con il tag di sistema `aws:dlm:expirationTime` indicante la data e l'ora in cui è pianificata l'archiviazione dello snapshot.

Le considerazioni seguenti si applicano all'**esclusione di volumi root e di volumi di dati (non root)**:
+ Se scegli di escludere i volumi di avvio e specifichi tag che di conseguenza escludono tutti i volumi di dati aggiuntivi collegati a un'istanza, Amazon Data Lifecycle Manager non creerà alcuna istantanea per l'istanza interessata ed emetterà un parametro. `SnapshotsCreateFailed` CloudWatch Per ulteriori informazioni, consulta [Monitora le politiche utilizzando CloudWatch](monitor-dlm-cw-metrics.md).

Le considerazioni seguenti si applicano all'**eliminazione di volumi o alla terminazione di istanze di destinazione delle policy del ciclo di vita degli snapshot**:
+ Se elimini un volume o termini un'istanza di destinazione di una policy con una pianificazione di conservazione basata sul conteggio, Amazon Data Lifecycle Manager non gestirà più gli snapshot nel livello standard e nel livello archivio che sono stati creati dall'istanza o dal volume eliminato. Se non sono più necessari, occorre annullare manualmente gli snapshot precedenti.
+ Se elimini un volume o termini un'istanza di destinazione di una policy con una pianificazione di conservazione basata sull'età, la policy continua a eliminare gli snapshot dal livello standard e dal livello archivio che sono stati creati dall'istanza o dal volume eliminato in base alla pianificazione definita, fino all'ultimo snapshot non incluso. Se non è più necessario, occorre eliminare manualmente l'ultimo snapshot.

Le considerazioni seguenti si applicano alle policy del ciclo di vita degli snapshot e al ** [ripristino rapido degli snapshot](ebs-fast-snapshot-restore.md)**:
+ Amazon Data Lifecycle Manager può abilitare il ripristino rapido delle istantanee solo per istantanee di dimensioni pari o inferiori a 16 TiB. Per ulteriori informazioni, consulta [Ripristino rapido degli snapshot Amazon EBS](ebs-fast-snapshot-restore.md).
+ Uno snapshot che è abilitato per il ripristino rapido degli snapshot rimane abilitato anche se si elimina o si disabilita la policy, si disabilita il ripristino rapido degli snapshot per la policy o si disabilita il ripristino rapido degli snapshot per la zona di disponibilità. Il ripristino rapido degli snapshot per questi snapshot deve essere disabilitato manualmente.
+ Se si abilita il ripristino rapido degli snapshot per una policy e si supera il numero massimo di snapshot che possono essere abilitati per il ripristino rapido degli snapshot, Amazon Data Lifecycle Manager crea snapshot come pianificato ma non li abilita per il ripristino rapido degli snapshot. Dopo che uno snapshot che è stato abilitato per il ripristino rapido degli snapshot viene eliminato, lo snapshot successivo creato da Amazon Data Lifecycle Manager viene abilitato per il ripristino rapido degli snapshot.
+ Quando il ripristino rapido degli snapshot è abilitato per uno snapshot, sono necessari 60 minuti per consentire a TiB di ottimizzare lo snapshot. È consigliabile configurare le pianificazioni in modo che ogni snapshot sia completamente ottimizzato prima che Amazon Data Lifecycle Manager crei lo snapshot successivo.
+ Se abiliti il ripristino rapido delle istantanee per una policy destinata alle istanze, Amazon Data Lifecycle Manager abilita il ripristino rapido delle istantanee per ogni istantanea nella serie di istantanee a più volumi singolarmente. Se Amazon Data Lifecycle Manager non riesce ad abilitare il ripristino rapido delle istantanee per una delle istantanee della serie di istantanee multivolume, tenterà comunque di abilitare il ripristino rapido delle istantanee per le istantanee rimanenti nella serie di istantanee.
+ Viene fatturato ogni minuto in cui viene abilitato il ripristino rapido degli snapshot per uno snapshot in una determinata zona di disponibilità. Le tariffe sono proporzionalmente valutate con un minimo di un'ora. Per ulteriori informazioni, consulta [Prezzi e fatturazione](ebs-fast-snapshot-restore.md#fsr-pricing).
**Nota**  
A seconda della configurazione delle policy del ciclo di vita, è possibile che siano abilitati più snapshot per il ripristino rapido degli snapshot in più zone di disponibilità contemporaneamente.

Le considerazioni seguenti si applicano alle policy del ciclo di vita degli snapshot e ai ** volumi con l'abilitazione per gli [allegati multipli](ebs-volumes-multi.md) **:
+ Quando si crea una policy del ciclo di vita che si rivolge alle istanze con volumi con l'abilitazione per gli allegati multipli, Amazon Data Lifecycle Manager avvia uno snapshot del volume per ogni istanza allegata. Utilizzare il tag *timestamp* per identificare il set di snapshot costanti nel tempo creati dalle istanze allegate.

Alla **condivisione degli snapshot tra account** si applicano le considerazioni seguenti:
+ È possibile condividere solo snapshot non crittografati o crittografati utilizzando una chiave gestita dal cliente.
+ Non è possibile condividere snapshot crittografati con la Chiave KMS di crittografia EBS predefinita.
+ Se si condividono snapshot crittografati, è necessario condividere con gli account di destinazione anche la Chiave KMS utilizzata per crittografare il volume di origine. Per ulteriori informazioni, consultare [Consentire agli utenti in altri account di utilizzare una chiave KMS](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

Le considerazioni seguenti si applicano alle policy degli snapshot e all'** [archivio degli snapshot](snapshot-archive.md)**:
+ Se si archivia manualmente uno snapshot creato da una policy e tale snapshot si trova nel livello di archiviazione quando viene raggiunta la soglia di conservazione della policy, Amazon Data Lifecycle Manager non eliminerà lo snapshot. Amazon Data Lifecycle Manager non gestisce gli snapshot mentre sono archiviati nel livello di archiviazione. Se non sono più necessari gli snapshot archiviati nel livello di archiviazione, è necessario eliminarli manualmente.

[Le seguenti considerazioni si applicano alle policy relative alle istantanee e al Recycle Bin:](recycle-bin.md)
+ Se Amazon Data Lifecycle Manager elimina uno snapshot e lo invia al Cestino di riciclaggio quando viene raggiunta la soglia di conservazione della policy e si ripristina manualmente lo snapshot dal Cestino di riciclaggio, è necessario eliminare manualmente tale snapshot quando non è più necessario. Amazon Data Lifecycle Manager non gestirà più lo snapshot.
+ Se si elimina manualmente uno snapshot creato da una policy e tale snapshot si trova nel Cestino di riciclaggio quando viene raggiunta la soglia di conservazione della policy, Amazon Data Lifecycle Manager non eliminerà lo snapshot. Amazon Data Lifecycle Manager non gestisce gli snapshot mentre sono archiviati nel Cestino di riciclaggio

  Se lo snapshot viene ripristinato dal Cestino di riciclaggio prima che venga raggiunta la soglia di conservazione della policy, Amazon Data Lifecycle Manager eliminerà lo snapshot quando viene raggiunta la soglia di conservazione della policy.

  Se lo snapshot viene ripristinato dal Cestino di riciclaggio dopo che venga raggiunta la soglia di conservazione della policy, Amazon Data Lifecycle Manager non provvederà più ad eliminare lo snapshot. Lo snapshot che non è più necessario deve essere eliminato manualmente.

Le seguenti considerazioni si applicano alle policy del ciclo di vita in stato **errore**:
+ Per le policy con pianificazioni di conservazione basate sull'età, gli snapshot impostati per la scadenza mentre la policy è in stato `error` vengono conservati indefinitamente. Questi snapshot dovranno essere eliminati manualmente. Quando riabiliti la policy, Amazon Data Lifecycle Manager riprende a eliminare gli snapshot quando scadono i relativi periodi di conservazione.
+ Per le policy con pianificazioni di conservazione basate sul conteggio, la policy interrompe la creazione e l'eliminazione degli snapshot mentre è in stato `error`. Quando riabiliti la policy, Amazon Data Lifecycle Manager riprende la creazione degli snapshot e riprende l'eliminazione degli snapshot al raggiungimento della soglia di conservazione.

Le considerazioni seguenti si applicano alle policy degli snapshot e al **[blocco degli snapshot](ebs-snapshot-lock.md)**:
+ Se blocchi manualmente uno snapshot creato da Amazon Data Lifecycle Manager e lo snapshot rimane ancora bloccato quando viene raggiunta la soglia di conservazione, Amazon Data Lifecycle Manager non gestisce più tale snapshot. Se non è più necessario, occorre eliminare manualmente lo snapshot.
+ Se blocchi manualmente uno snapshot creato e abilitato per il ripristino rapido da Amazon Data Lifecycle Manager e lo snapshot rimane ancora bloccato quando viene raggiunta la soglia di conservazione, Amazon Data Lifecycle Manager non disabiliterà il ripristino rapido né eliminerà lo snapshot. Se non è più necessario, occorre disabilitare manualmente il ripristino rapido ed eliminare lo snapshot.
+ Se registri manualmente uno snapshot creato da Amazon Data Lifecycle Manager con un'AMI e quindi lo blocchi e lo snapshot rimane ancora bloccato e associato all'AMI quando viene raggiunta la soglia di conservazione, Amazon Data Lifecycle Manager continuerà a provarne l'eliminazione. Quando la registrazione dell'AMI viene annullata e lo snapshot viene sbloccato, Amazon Data Lifecycle Manager eliminerà automaticamente lo snapshot.

## Risorse aggiuntive
<a name="snapshot-additional-resources"></a>

Per ulteriori informazioni, consulta il blog [Automating Amazon EBS snapshot and AMI management using Amazon Data AWS Lifecycle Manager storage](https://aws.amazon.com/blogs/storage/automating-amazon-ebs-snapshot-and-ami-management-using-amazon-dlm/).

# Automatizza le istantanee coerenti con le applicazioni con Data Lifecycle Manager
<a name="automate-app-consistent-backups"></a>

È possibile utilizzare snapshot coerenti con l'applicazione con Amazon Data Lifecycle Manager abilitando gli script pre e post nelle tue policy del ciclo di vita degli snapshot che puntano alle istanze.

Amazon Data Lifecycle Manager si integra con (Systems AWS Systems Manager Manager) per supportare istantanee coerenti con le applicazioni. Amazon Data Lifecycle Manager utilizza documenti di comando Systems Manager (SSM) che includono script pre e post per automatizzare le azioni necessarie per completare gli snapshot coerenti con l'applicazione. Prima che Amazon Data Lifecycle Manager inizi la creazione di snapshot, esegue i comandi del pre script per congelare e svuotare. I/O. After Amazon Data Lifecycle Manager initiates snapshot creation, it runs the commands in the post script to thaw I/O

Utilizzando Amazon Data Lifecycle Manager, puoi automatizzare gli snapshot coerenti con l'applicazione di quanto segue:
+ Applicazioni Windows che utilizzano Volume Shadow Copy Service (VSS)
+ SAP HANA utilizza un documento SSDM gestito. AWS Per ulteriori informazioni, consulta [Snapshot Amazon EBS per SAP HANA](https://docs.aws.amazon.com/sap/latest/sap-hana/ebs-sap-hana.html).
+ Database autogestiti, come MySQL, PostgreSQL o IRIS, utilizzando modelli InterSystems di documenti SSM

**Topics**
+ [Requisiti per l'utilizzo di script pre e post](#app-consistent-prereqs)
+ [Guida introduttiva agli snapshot coerenti con l'applicazione](#app-consistent-get-started)
+ [Considerazioni per i backup VSS con Amazon Data Lifecycle Manager](#app-consistent-vss)
+ [Responsabilità condivisa per snapshot coerenti a livello di applicazione](#shared-responsibility)

## Requisiti per l'utilizzo di script pre e post
<a name="app-consistent-prereqs"></a>

La tabella seguente riporta i requisiti per l'utilizzo di script pre e post con Amazon Data Lifecycle Manager.


|  | Snapshot coerenti a livello di applicazione |  | 
| --- |--- |--- |
| Requisito | Backup VSS | Documento SSM personalizzato | Altri casi d'uso | 
| --- |--- |--- |--- |
| SSM Agent installato e funzionante sulle istanze di destinazione | ✓ | ✓ | ✓ | 
| Requisiti di sistema VSS soddisfatti sulle istanze di destinazione | ✓ |  |  | 
| Profilo di istanza abilitato a VSS associato alle istanze di destinazione | ✓ |  |  | 
| Componenti VSS installati sulle istanze di destinazione | ✓ |  |  | 
| Prepara il documento SSM con comandi pre e post script |  | ✓ | ✓ | 
| Prepara il ruolo IAM di Amazon Data Lifecycle Manager, esegui prima e dopo gli script | ✓ | ✓ | ✓ | 
| Crea una policy di snapshot destinata alle istanze e configurata per gli script precedenti e successivi | ✓ | ✓ | ✓ | 

## Guida introduttiva agli snapshot coerenti con l'applicazione
<a name="app-consistent-get-started"></a>

Questa sezione spiega i passaggi da seguire per automatizzare le istantanee coerenti con le applicazioni utilizzando Amazon Data Lifecycle Manager.

### Fase 1: Preparazione delle istanze di destinazione
<a name="prep-instances"></a>

È necessario preparare le istanze di destinazione per gli snapshot coerenti con l'applicazione utilizzando Amazon Data Lifecycle Manager. Completa una delle operazioni riportate di seguito, a seconda del caso d'uso.

------
#### [ Prepare for VSS Backups ]

**Preparazione delle istanze di destinazione per i backup VSS**

1. Installa l'agente SSM sulle istanze di destinazione, se non è già installato. Se l'agente SSM è già installato sulle istanze di destinazione, salta questo passaggio. 

   Per ulteriori informazioni, consulta [Working with SSM Agent on EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-windows.html) Instances for Windows Server.

1. Assicurati che l'agente SSM sia in esecuzione. Per ulteriori informazioni, consulta [Verifica dello stato dell'agente SSM e avvio dell'agente](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-status-and-restart.html).

1. Configura Systems Manager per le istanze Amazon EC2. Per ulteriori informazioni, consulta [Configurazione di Systems Manager per le istanze Amazon EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-ec2.html) nella *Guida per l'utente di AWS Systems Manager *.

1. [Assicurati che i requisiti di sistema per i backup VSS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/application-consistent-snapshots-prereqs.html) siano soddisfatti.

1. [Collega un profilo di istanza abilitato per VSS alle istanze di destinazione](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/vss-iam-reqs.html).

1. [Installa i componenti VSS](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/application-consistent-snapshots-getting-started.html).

------
#### [ Prepare for SAP HANA backups ]

**Preparazione delle istanze di destinazione per i backup SAP HANA**

1. Prepara l'ambiente SAP HANA sulle istanze di destinazione. 

   1. Configura la tua istanza con SAP HANA. Se non disponi già di un ambiente SAP HANA esistente, puoi fare riferimento a [Configurazione dell'ambiente SAP HANA su AWS](https://docs.aws.amazon.com/sap/latest/sap-hana/std-sap-hana-environment-setup.html).

   1. Accedi a SystemDB come utente amministratore adatto.

   1. Crea un utente di backup del database da utilizzare con Amazon Data Lifecycle Manager.

      ```
      CREATE USER username PASSWORD password NO FORCE_FIRST_PASSWORD_CHANGE;
      ```

      Ad esempio, il seguente comando crea un utente denominato `dlm_user` con la password `password`.

      ```
      CREATE USER dlm_user PASSWORD password NO FORCE_FIRST_PASSWORD_CHANGE;
      ```

   1. Assegna il ruolo `BACKUP OPERATOR` all'utente di backup del database creato nel passaggio precedente.

      ```
      GRANT BACKUP OPERATOR TO username
      ```

      Ad esempio, il comando seguente assegna il ruolo a un utente denominato`dlm_user`.

      ```
      GRANT BACKUP OPERATOR TO dlm_user
      ```

   1. Accedi al sistema operativo come amministratore, ad esempio `sidadm`.

   1. Crea una voce `hdbuserstore` per memorizzare le informazioni di connessione in modo che il documento SSM di SAP HANA possa connettersi a SAP HANA senza che gli utenti debbano inserire le informazioni.

      ```
      hdbuserstore set DLM_HANADB_SNAPSHOT_USER localhost:3hana_instance_number13 username password
      ```

      Esempio:

      ```
      hdbuserstore set DLM_HANADB_SNAPSHOT_USER localhost:30013 dlm_user password
      ```

   1. Esegui il test della connessione.

      ```
      hdbsql -U DLM_HANADB_SNAPSHOT_USER "select * from dummy"
      ```

1. Installa l'agente SSM sulle istanze di destinazione, se non è già installato. Se l'agente SSM è già installato sulle istanze di destinazione, salta questo passaggio. 

   Per ulteriori informazioni, consulta [Installazione manuale dell'agente SSM sulle istanze EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) per Linux.

1. Assicurati che l'agente SSM sia in esecuzione. Per ulteriori informazioni, consulta [Verifica dello stato dell'agente SSM e avvio dell'agente](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-status-and-restart.html).

1. Configura Systems Manager per le istanze Amazon EC2. Per ulteriori informazioni, consulta [Configurazione di Systems Manager per le istanze Amazon EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-ec2.html) nella *Guida per l'utente di AWS Systems Manager *.

------
#### [ Prepare for custom SSM documents ]

**Preparazione dei documenti SSM personalizzati per le istanze di destinazione**

1. Installa l'agente SSM sulle istanze di destinazione, se non è già installato. Se l'agente SSM è già installato sulle istanze di destinazione, salta questo passaggio. 
   + (Istanze Linux) [Installazione manuale dell'agente SSM](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) su istanze EC2 per Linux
   + (Istanze Windows) [Utilizzo di SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-windows.html) su istanze EC2 per Windows Server

1. Assicurati che l'agente SSM sia in esecuzione. Per ulteriori informazioni, consulta [Verifica dello stato dell'agente SSM e avvio dell'agente](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-status-and-restart.html).

1. Configura Systems Manager per le istanze Amazon EC2. Per ulteriori informazioni, consulta [Configurazione di Systems Manager per le istanze Amazon EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-ec2.html) nella *Guida per l'utente di AWS Systems Manager *.

------

### Fase 2: Preparazione del documento SSM
<a name="prep-ssm-doc"></a>

**Nota**  
Questo passaggio è necessario solo per i documenti SSM personalizzati. Non è richiesto per i backup VSS o SAP HANA. Per i backup VSS e SAP HANA, Amazon Data Lifecycle Manager utilizza il documento SSM gestito. AWS 

Se si stanno automatizzando istantanee coerenti con l'applicazione per un database autogestito, come MySQL, PostgreSQL o InterSystems IRIS, è necessario creare un documento di comando SSM che includa uno script pre da bloccare e svuotare prima dell'avvio della creazione dello snapshot e un post script da scongelare dopo l'avvio della creazione dello snapshot. I/O I/O 

Se il tuo database MySQL, PostgreSQL o IRIS utilizza configurazioni standard InterSystems , puoi creare un documento di comando SSM utilizzando il contenuto del documento SSM di esempio riportato di seguito. Se il database MySQL, PostgreSQL o IRIS utilizza una configurazione non standard InterSystems , è possibile utilizzare il contenuto di esempio riportato di seguito come punto di partenza per il documento di comando SSM e quindi personalizzarlo in base alle proprie esigenze. In alternativa, se desideri creare un nuovo documento SSM da zero, puoi utilizzare il modello di documenti SSM vuoto riportato di seguito e aggiungere i comandi pre e post nelle sezioni appropriate del documento.

**Tenere presente quanto segue:**  
È tua responsabilità assicurarti che il documento SSM esegua le azioni corrette e necessarie per la configurazione del database.
È garantito che gli snapshot siano coerenti con l'applicazione solo se gli script pre e post del documento SSM riescono a bloccare, svuotare e sbloccare l'I/O con successo.
Il documento SSM deve includere i campi obbligatori per `allowedValues`, tra cui `pre-script`, `post-script` e `dry-run`. Amazon Data Lifecycle Manager eseguirà comandi sull'istanza in base al contenuto di tali sezioni. Se il documento SSM non contiene queste sezioni, Amazon Data Lifecycle Manager lo considererà un'esecuzione non riuscita.

------
#### [ MySQL sample document content ]

```
###===============================================================================###
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
###===============================================================================###
schemaVersion: '2.2'
description: Amazon Data Lifecycle Manager Pre/Post script for MySQL databases
parameters:
  executionId:
    type: String
    default: None
    description: (Required) Specifies the unique identifier associated with a pre and/or post execution
    allowedPattern: ^(None|[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$
  command:
  # Data Lifecycle Manager will trigger the pre-script and post-script actions during policy execution. 
  # 'dry-run' option is intended for validating the document execution without triggering any commands
  # on the instance. The following allowedValues will allow Data Lifecycle Manager to successfully 
  # trigger pre and post script actions.
    type: String
    default: 'dry-run'
    description: (Required) Specifies whether pre-script and/or post-script should be executed.
    allowedValues:
    - pre-script
    - post-script
    - dry-run

mainSteps:
- action: aws:runShellScript
  description: Run MySQL Database freeze/thaw commands
  name: run_pre_post_scripts
  precondition:
    StringEquals:
    - platformType
    - Linux
  inputs:
    runCommand:
    - |
      #!/bin/bash

      ###===============================================================================###
      ### Error Codes
      ###===============================================================================###
      # The following Error codes will inform Data Lifecycle Manager of the type of error 
      # and help guide handling of the error. 
      # The Error code will also be emitted via AWS Eventbridge events in the 'cause' field.
      # 1 Pre-script failed during execution - 201
      # 2 Post-script failed during execution - 202
      # 3 Auto thaw occurred before post-script was initiated - 203
      # 4 Pre-script initiated while post-script was expected - 204
      # 5 Post-script initiated while pre-script was expected - 205
      # 6 Application not ready for pre or post-script initiation - 206

      ###=================================================================###
      ### Global variables
      ###=================================================================###
      START=$(date +%s)
      # For testing this script locally, replace the below with OPERATION=$1.
      OPERATION={{ command }}
      FS_ALREADY_FROZEN_ERROR='freeze failed: Device or resource busy'
      FS_ALREADY_THAWED_ERROR='unfreeze failed: Invalid argument'
      FS_BUSY_ERROR='mount point is busy'

      # Auto thaw is a fail safe mechanism to automatically unfreeze the application after the 
      # duration specified in the global variable below. Choose the duration based on your
      # database application's tolerance to freeze.
      export AUTO_THAW_DURATION_SECS="60"

      # Add all pre-script actions to be performed within the function below
      execute_pre_script() {
          echo "INFO: Start execution of pre-script"
          # Check if filesystem is already frozen. No error code indicates that filesystem 
          # is not currently frozen and that the pre-script can proceed with freezing the filesystem.
          check_fs_freeze
          # Execute the DB commands to flush the DB in preparation for snapshot
          snap_db
          # Freeze the filesystem. No error code indicates that filesystem was succefully frozen
          freeze_fs

          echo "INFO: Schedule Auto Thaw to execute in ${AUTO_THAW_DURATION_SECS} seconds."
          $(nohup bash -c execute_schedule_auto_thaw  >/dev/null 2>&1 &)
      }

      # Add all post-script actions to be performed within the function below
      execute_post_script() {
          echo "INFO: Start execution of post-script"
          # Unfreeze the filesystem. No error code indicates that filesystem was successfully unfrozen.
          unfreeze_fs
          thaw_db
      }

      # Execute Auto Thaw to automatically unfreeze the application after the duration configured 
      # in the AUTO_THAW_DURATION_SECS global variable.
      execute_schedule_auto_thaw() {
          sleep ${AUTO_THAW_DURATION_SECS}
          execute_post_script
      }

      # Disable Auto Thaw if it is still enabled
      execute_disable_auto_thaw() {
          echo "INFO: Attempting to disable auto thaw if enabled"
          auto_thaw_pgid=$(pgrep -f execute_schedule_auto_thaw | xargs -i ps -hp {} -o pgid)
          if [ -n "${auto_thaw_pgid}" ]; then
              echo "INFO: execute_schedule_auto_thaw process found with pgid ${auto_thaw_pgid}"
              sudo pkill -g ${auto_thaw_pgid}
              rc=$?
              if [ ${rc} != 0 ]; then
                  echo "ERROR: Unable to kill execute_schedule_auto_thaw process. retval=${rc}"
              else
                  echo "INFO: Auto Thaw  has been disabled"
              fi
          fi
      }

      # Iterate over all the mountpoints and check if filesystem is already in freeze state.
      # Return error code 204 if any of the mount points are already frozen.
      check_fs_freeze() {
          for target in $(lsblk -nlo MOUNTPOINTS)
          do
              # Freeze of the root and boot filesystems is dangerous and pre-script does not freeze these filesystems.
              # Hence, we will skip the root and boot mountpoints while checking if filesystem is in freeze state.
              if [ $target == '/' ]; then continue; fi
              if [[ "$target" == *"/boot"* ]]; then continue; fi

              error_message=$(sudo mount -o remount,noatime $target 2>&1)
              # Remount will be a no-op without a error message if the filesystem is unfrozen.
              # However, if filesystem is already frozen, remount will fail with busy error message.
              if [ $? -ne 0 ];then
                  # If the filesystem is already in frozen, return error code 204
                  if [[ "$error_message" == *"$FS_BUSY_ERROR"* ]];then
                      echo "ERROR: Filesystem ${target} already frozen. Return Error Code: 204"
                      exit 204
                  fi
                  # If the check filesystem freeze failed due to any reason other than the filesystem already frozen, return 201
                  echo "ERROR: Failed to check_fs_freeze on mountpoint $target due to error - $errormessage"
                  exit 201
              fi
          done
      } 

      # Iterate over all the mountpoints and freeze the filesystem.
      freeze_fs() {
          for target in $(lsblk -nlo MOUNTPOINTS)
          do
              # Freeze of the root and boot filesystems is dangerous. Hence, skip filesystem freeze 
              # operations for root and boot mountpoints.
              if [ $target == '/' ]; then continue; fi
              if [[ "$target" == *"/boot"* ]]; then continue; fi
              echo "INFO: Freezing $target"
              error_message=$(sudo fsfreeze -f $target 2>&1)
              if [ $? -ne 0 ];then
                  # If the filesystem is already in frozen, return error code 204
                  if [[ "$error_message" == *"$FS_ALREADY_FROZEN_ERROR"* ]]; then
                      echo "ERROR: Filesystem ${target} already frozen. Return Error Code: 204"
                      sudo mysql -e 'UNLOCK TABLES;'
                      exit 204
                  fi
                  # If the filesystem freeze failed due to any reason other than the filesystem already frozen, return 201
                  echo "ERROR: Failed to freeze mountpoint $targetdue due to error - $errormessage"
                  thaw_db
                  exit 201
              fi
              echo "INFO: Freezing complete on $target"
          done
      }

      # Iterate over all the mountpoints and unfreeze the filesystem.
      unfreeze_fs() {
          for target in $(lsblk -nlo MOUNTPOINTS)
          do
              # Freeze of the root and boot filesystems is dangerous and pre-script does not freeze these filesystems.
              # Hence, will skip the root and boot mountpoints during unfreeze as well.
              if [ $target == '/' ]; then continue; fi
              if [[ "$target" == *"/boot"* ]]; then continue; fi
              echo "INFO: Thawing $target"
              error_message=$(sudo fsfreeze -u $target 2>&1)
              # Check if filesystem is already unfrozen (thawed). Return error code 204 if filesystem is already unfrozen.
              if [ $? -ne 0 ]; then
                  if [[ "$error_message" == *"$FS_ALREADY_THAWED_ERROR"* ]]; then
                      echo "ERROR: Filesystem ${target} is already in thaw state. Return Error Code: 205"
                      exit 205
                  fi
                  # If the filesystem unfreeze failed due to any reason other than the filesystem already unfrozen, return 202
                  echo "ERROR: Failed to unfreeze mountpoint $targetdue due to error - $errormessage"
                  exit 202
              fi
              echo "INFO: Thaw complete on $target"
          done    
      }

      snap_db() {
          # Run the flush command only when MySQL DB service is up and running
          sudo systemctl is-active --quiet mysqld.service
          if [ $? -eq 0 ]; then
              echo "INFO: Execute MySQL Flush and Lock command."
              sudo mysql -e 'FLUSH TABLES WITH READ LOCK;'
              # If the MySQL Flush and Lock command did not succeed, return error code 201 to indicate pre-script failure
              if [ $? -ne 0 ]; then
                  echo "ERROR: MySQL FLUSH TABLES WITH READ LOCK command failed."
                  exit 201
              fi
              sync
          else 
              echo "INFO: MySQL service is inactive. Skipping execution of MySQL Flush and Lock command."
          fi
      }

      thaw_db() {
          # Run the unlock command only when MySQL DB service is up and running
          sudo systemctl is-active --quiet mysqld.service
          if [ $? -eq 0 ]; then
              echo "INFO: Execute MySQL Unlock"
              sudo mysql -e 'UNLOCK TABLES;'
          else 
              echo "INFO: MySQL service is inactive. Skipping execution of MySQL Unlock command."
          fi
      }

      export -f execute_schedule_auto_thaw
      export -f execute_post_script
      export -f unfreeze_fs
      export -f thaw_db

      # Debug logging for parameters passed to the SSM document
      echo "INFO: ${OPERATION} starting at $(date) with executionId: ${EXECUTION_ID}"

      # Based on the command parameter value execute the function that supports 
      # pre-script/post-script operation
      case ${OPERATION} in
          pre-script)
              execute_pre_script
              ;;
          post-script)
              execute_post_script
              execute_disable_auto_thaw
              ;;
          dry-run)
              echo "INFO: dry-run option invoked - taking no action"
              ;;
          *)
              echo "ERROR: Invalid command parameter passed. Please use either pre-script, post-script, dry-run."
              exit 1 # return failure
              ;;
      esac

      END=$(date +%s)
      # Debug Log for profiling the script time
      echo "INFO: ${OPERATION} completed at $(date). Total runtime: $((${END} - ${START})) seconds."
```

------
#### [ PostgreSQL sample document content ]

```
###===============================================================================###
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
###===============================================================================###
schemaVersion: '2.2'
description: Amazon Data Lifecycle Manager Pre/Post script for PostgreSQL databases
parameters:
  executionId:
    type: String
    default: None
    description: (Required) Specifies the unique identifier associated with a pre and/or post execution
    allowedPattern: ^(None|[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$
  command:
  # Data Lifecycle Manager will trigger the pre-script and post-script actions during policy execution. 
  # 'dry-run' option is intended for validating the document execution without triggering any commands
  # on the instance. The following allowedValues will allow Data Lifecycle Manager to successfully 
  # trigger pre and post script actions.
    type: String
    default: 'dry-run'
    description: (Required) Specifies whether pre-script and/or post-script should be executed.
    allowedValues:
    - pre-script
    - post-script
    - dry-run

mainSteps:
- action: aws:runShellScript
  description: Run PostgreSQL Database freeze/thaw commands
  name: run_pre_post_scripts
  precondition:
    StringEquals:
    - platformType
    - Linux
  inputs:
    runCommand:
    - |
      #!/bin/bash

      ###===============================================================================###
      ### Error Codes
      ###===============================================================================###
      # The following Error codes will inform Data Lifecycle Manager of the type of error 
      # and help guide handling of the error. 
      # The Error code will also be emitted via AWS Eventbridge events in the 'cause' field.
      # 1 Pre-script failed during execution - 201
      # 2 Post-script failed during execution - 202
      # 3 Auto thaw occurred before post-script was initiated - 203
      # 4 Pre-script initiated while post-script was expected - 204
      # 5 Post-script initiated while pre-script was expected - 205
      # 6 Application not ready for pre or post-script initiation - 206

      ###===============================================================================###
      ### Global variables
      ###===============================================================================###
      START=$(date +%s)
      OPERATION={{ command }}
      FS_ALREADY_FROZEN_ERROR='freeze failed: Device or resource busy'
      FS_ALREADY_THAWED_ERROR='unfreeze failed: Invalid argument'
      FS_BUSY_ERROR='mount point is busy'

      # Auto thaw is a fail safe mechanism to automatically unfreeze the application after the 
      # duration specified in the global variable below. Choose the duration based on your
      # database application's tolerance to freeze.
      export AUTO_THAW_DURATION_SECS="60"

      # Add all pre-script actions to be performed within the function below
      execute_pre_script() {
          echo "INFO: Start execution of pre-script"
          # Check if filesystem is already frozen. No error code indicates that filesystem 
          # is not currently frozen and that the pre-script can proceed with freezing the filesystem.
          check_fs_freeze
          # Execute the DB commands to flush the DB in preparation for snapshot
          snap_db
          # Freeze the filesystem. No error code indicates that filesystem was succefully frozen
          freeze_fs

          echo "INFO: Schedule Auto Thaw to execute in ${AUTO_THAW_DURATION_SECS} seconds."
          $(nohup bash -c execute_schedule_auto_thaw  >/dev/null 2>&1 &)
      }

      # Add all post-script actions to be performed within the function below
      execute_post_script() {
          echo "INFO: Start execution of post-script"
          # Unfreeze the filesystem. No error code indicates that filesystem was successfully unfrozen
          unfreeze_fs
      }

      # Execute Auto Thaw to automatically unfreeze the application after the duration configured 
      # in the AUTO_THAW_DURATION_SECS global variable.
      execute_schedule_auto_thaw() {
          sleep ${AUTO_THAW_DURATION_SECS}
          execute_post_script
      }

      # Disable Auto Thaw if it is still enabled
      execute_disable_auto_thaw() {
          echo "INFO: Attempting to disable auto thaw if enabled"
          auto_thaw_pgid=$(pgrep -f execute_schedule_auto_thaw | xargs -i ps -hp {} -o pgid)
          if [ -n "${auto_thaw_pgid}" ]; then
              echo "INFO: execute_schedule_auto_thaw process found with pgid ${auto_thaw_pgid}"
              sudo pkill -g ${auto_thaw_pgid}
              rc=$?
              if [ ${rc} != 0 ]; then
                  echo "ERROR: Unable to kill execute_schedule_auto_thaw process. retval=${rc}"
              else
                  echo "INFO: Auto Thaw  has been disabled"
              fi
          fi
      }

      # Iterate over all the mountpoints and check if filesystem is already in freeze state.
      # Return error code 204 if any of the mount points are already frozen.
      check_fs_freeze() {
          for target in $(lsblk -nlo MOUNTPOINTS)
          do
              # Freeze of the root and boot filesystems is dangerous and pre-script does not freeze these filesystems.
              # Hence, we will skip the root and boot mountpoints while checking if filesystem is in freeze state.
              if [ $target == '/' ]; then continue; fi
              if [[ "$target" == *"/boot"* ]]; then continue; fi

              error_message=$(sudo mount -o remount,noatime $target 2>&1)
              # Remount will be a no-op without a error message if the filesystem is unfrozen.
              # However, if filesystem is already frozen, remount will fail with busy error message.
              if [ $? -ne 0 ];then
                  # If the filesystem is already in frozen, return error code 204
                  if [[ "$error_message" == *"$FS_BUSY_ERROR"* ]];then
                      echo "ERROR: Filesystem ${target} already frozen. Return Error Code: 204"
                      exit 204
                  fi
                  # If the check filesystem freeze failed due to any reason other than the filesystem already frozen, return 201
                  echo "ERROR: Failed to check_fs_freeze on mountpoint $target due to error - $errormessage"
                  exit 201
              fi
          done
      } 

      # Iterate over all the mountpoints and freeze the filesystem.
      freeze_fs() {
          for target in $(lsblk -nlo MOUNTPOINTS)
          do
              # Freeze of the root and boot filesystems is dangerous. Hence, skip filesystem freeze 
              # operations for root and boot mountpoints.
              if [ $target == '/' ]; then continue; fi
              if [[ "$target" == *"/boot"* ]]; then continue; fi
              echo "INFO: Freezing $target"
              error_message=$(sudo fsfreeze -f $target 2>&1)
              if [ $? -ne 0 ];then
                  # If the filesystem is already in frozen, return error code 204
                  if [[ "$error_message" == *"$FS_ALREADY_FROZEN_ERROR"* ]]; then
                      echo "ERROR: Filesystem ${target} already frozen. Return Error Code: 204"
                      exit 204
                  fi
                  # If the filesystem freeze failed due to any reason other than the filesystem already frozen, return 201
                  echo "ERROR: Failed to freeze mountpoint $targetdue due to error - $errormessage"
                  exit 201
              fi
              echo "INFO: Freezing complete on $target"
          done
      }

      # Iterate over all the mountpoints and unfreeze the filesystem.
      unfreeze_fs() {
          for target in $(lsblk -nlo MOUNTPOINTS)
          do
              # Freeze of the root and boot filesystems is dangerous and pre-script does not freeze these filesystems.
              # Hence, will skip the root and boot mountpoints during unfreeze as well.
              if [ $target == '/' ]; then continue; fi
              if [[ "$target" == *"/boot"* ]]; then continue; fi
              echo "INFO: Thawing $target"
              error_message=$(sudo fsfreeze -u $target 2>&1)
              # Check if filesystem is already unfrozen (thawed). Return error code 204 if filesystem is already unfrozen.
              if [ $? -ne 0 ]; then
                  if [[ "$error_message" == *"$FS_ALREADY_THAWED_ERROR"* ]]; then
                      echo "ERROR: Filesystem ${target} is already in thaw state. Return Error Code: 205"
                      exit 205
                  fi
                  # If the filesystem unfreeze failed due to any reason other than the filesystem already unfrozen, return 202
                  echo "ERROR: Failed to unfreeze mountpoint $targetdue due to error - $errormessage"
                  exit 202
              fi
              echo "INFO: Thaw complete on $target"
          done
      }

      snap_db() {
          # Run the flush command only when PostgreSQL DB service is up and running
          sudo systemctl is-active --quiet postgresql
          if [ $? -eq 0 ]; then
              echo "INFO: Execute Postgres CHECKPOINT"
              # PostgreSQL command to flush the transactions in memory to disk
              sudo -u postgres psql -c 'CHECKPOINT;'
              # If the PostgreSQL Command did not succeed, return error code 201 to indicate pre-script failure
              if [ $? -ne 0 ]; then
                  echo "ERROR: Postgres CHECKPOINT command failed."
                  exit 201
              fi
              sync
          else 
              echo "INFO: PostgreSQL service is inactive. Skipping execution of CHECKPOINT command."
          fi
      }

      export -f execute_schedule_auto_thaw
      export -f execute_post_script
      export -f unfreeze_fs

      # Debug logging for parameters passed to the SSM document
      echo "INFO: ${OPERATION} starting at $(date) with executionId: ${EXECUTION_ID}"

      # Based on the command parameter value execute the function that supports 
      # pre-script/post-script operation
      case ${OPERATION} in
          pre-script)
              execute_pre_script
              ;;
          post-script)
              execute_post_script
              execute_disable_auto_thaw
              ;;
          dry-run)
              echo "INFO: dry-run option invoked - taking no action"
              ;;
          *)
              echo "ERROR: Invalid command parameter passed. Please use either pre-script, post-script, dry-run."
              exit 1 # return failure
              ;;
      esac

      END=$(date +%s)
      # Debug Log for profiling the script time
      echo "INFO: ${OPERATION} completed at $(date). Total runtime: $((${END} - ${START})) seconds."
```

------
#### [ InterSystems IRIS sample document content ]

```
###===============================================================================###
# MIT License
# 
# Copyright (c) 2024 InterSystems
# 
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
###===============================================================================###
schemaVersion: '2.2'
description: SSM Document Template for Amazon Data Lifecycle Manager Pre/Post script feature for InterSystems IRIS.
parameters:
  executionId:
    type: String
    default: None
    description: Specifies the unique identifier associated with a pre and/or post execution
    allowedPattern: ^(None|[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$
  command:
    type: String
    # Data Lifecycle Manager will trigger the pre-script and post-script actions. You can also use this SSM document with 'dry-run' for manual testing purposes.
    default: 'dry-run'
    description: (Required) Specifies whether pre-script and/or post-script should be executed.
    #The following allowedValues will allow Data Lifecycle Manager to successfully trigger pre and post script actions.
    allowedValues:
    - pre-script
    - post-script
    - dry-run

mainSteps:
- action: aws:runShellScript
  description: Run InterSystems IRIS Database freeze/thaw commands
  name: run_pre_post_scripts
  precondition:
    StringEquals:
    - platformType
    - Linux
  inputs:
    runCommand:
    - |
      #!/bin/bash
      ###===============================================================================###
      ### Global variables
      ###===============================================================================###
      DOCKER_NAME=iris
      LOGDIR=./
      EXIT_CODE=0
      OPERATION={{ command }}
      START=$(date +%s)
      
      # Check if Docker is installed
      # By default if Docker is present, script assumes that InterSystems IRIS is running in Docker
      # Leave only the else block DOCKER_EXEC line, if you run InterSystems IRIS non-containerised (and Docker is present).
      # Script assumes irissys user has OS auth enabled, change the OS user or supply login/password depending on your configuration.
      if command -v docker &> /dev/null
      then
        DOCKER_EXEC="docker exec $DOCKER_NAME"
      else
        DOCKER_EXEC="sudo -i -u irissys"
      fi
      
                    
      # Add all pre-script actions to be performed within the function below
      execute_pre_script() {
        echo "INFO: Start execution of pre-script"
        
        # find all iris running instances
        iris_instances=$($DOCKER_EXEC iris qall 2>/dev/null | tail -n +3 | grep '^up' | cut -c5-  | awk '{print $1}')
        echo "`date`: Running iris instances $iris_instances"
      
        # Only for running instances
        for INST in $iris_instances; do
      
          echo "`date`: Attempting to freeze $INST"
      
          # Detailed instances specific log
          LOGFILE=$LOGDIR/$INST-pre_post.log
          
          #check Freeze status before starting
          $DOCKER_EXEC irissession $INST -U '%SYS' "##Class(Backup.General).IsWDSuspendedExt()"
          freeze_status=$?
          if [ $freeze_status -eq 5 ]; then
            echo "`date`:   ERROR: $INST IS already FROZEN"
            EXIT_CODE=204
          else
            echo "`date`:   $INST is not frozen"
            # Freeze
            # Docs: https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic.cls?LIBRARY=%25SYS&CLASSNAME=Backup.General#ExternalFreeze
            $DOCKER_EXEC irissession $INST -U '%SYS' "##Class(Backup.General).ExternalFreeze(\"$LOGFILE\",,,,,,600,,,300)"
            status=$?
      
            case $status in
              5) echo "`date`:   $INST IS FROZEN"
                ;;
              3) echo "`date`:   $INST FREEZE FAILED"
                EXIT_CODE=201
                ;;
              *) echo "`date`:   ERROR: Unknown status code: $status"
                EXIT_CODE=201
                ;;
            esac
            echo "`date`:   Completed freeze of $INST"
          fi
        done
        echo "`date`: Pre freeze script finished"
      }
                    
      # Add all post-script actions to be performed within the function below
      execute_post_script() {
        echo "INFO: Start execution of post-script"
      
        # find all iris running instances
        iris_instances=$($DOCKER_EXEC iris qall 2>/dev/null | tail -n +3 | grep '^up' | cut -c5-  | awk '{print $1}')
        echo "`date`: Running iris instances $iris_instances"
      
        # Only for running instances
        for INST in $iris_instances; do
      
          echo "`date`: Attempting to thaw $INST"
      
          # Detailed instances specific log
          LOGFILE=$LOGDIR/$INST-pre_post.log
      
          #check Freeze status befor starting
          $DOCKER_EXEC irissession $INST -U '%SYS' "##Class(Backup.General).IsWDSuspendedExt()"
          freeze_status=$?
          if [ $freeze_status -eq 5 ]; then
            echo "`date`:  $INST is in frozen state"
            # Thaw
            # Docs: https://docs.intersystems.com/irislatest/csp/documatic/%25CSP.Documatic.cls?LIBRARY=%25SYS&CLASSNAME=Backup.General#ExternalFreeze
            $DOCKER_EXEC irissession $INST -U%SYS "##Class(Backup.General).ExternalThaw(\"$LOGFILE\")"
            status=$?
      
            case $status in
              5) echo "`date`:   $INST IS THAWED"
                  $DOCKER_EXEC irissession $INST -U%SYS "##Class(Backup.General).ExternalSetHistory(\"$LOGFILE\")"
                ;;
              3) echo "`date`:   $INST THAW FAILED"
                  EXIT_CODE=202
                ;;
              *) echo "`date`:   ERROR: Unknown status code: $status"
                  EXIT_CODE=202
                ;;
            esac
            echo "`date`:   Completed thaw of $INST"
          else
            echo "`date`:   ERROR: $INST IS already THAWED"
            EXIT_CODE=205
          fi
        done
        echo "`date`: Post thaw script finished"
      }
      
      # Debug logging for parameters passed to the SSM document
        echo "INFO: ${OPERATION} starting at $(date) with executionId: ${EXECUTION_ID}"
                    
      # Based on the command parameter value execute the function that supports 
      # pre-script/post-script operation
      case ${OPERATION} in
        pre-script)
          execute_pre_script
          ;;
        post-script)
          execute_post_script
            ;;
        dry-run)
          echo "INFO: dry-run option invoked - taking no action"
          ;;
        *)
          echo "ERROR: Invalid command parameter passed. Please use either pre-script, post-script, dry-run."
          # return failure
          EXIT_CODE=1
          ;;
      esac
                    
      END=$(date +%s)
      # Debug Log for profiling the script time
      echo "INFO: ${OPERATION} completed at $(date). Total runtime: $((${END} - ${START})) seconds."
      exit $EXIT_CODE
```

[Per ulteriori informazioni, consulta il repository. GitHub ](https://github.com/intersystems-community/aws/blob/master/README.md)

------
#### [ Empty document template ]

```
###===============================================================================###
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
###===============================================================================###
schemaVersion: '2.2'
description: SSM Document Template for Amazon Data Lifecycle Manager Pre/Post script feature
parameters:
  executionId:
    type: String
    default: None
    description: (Required) Specifies the unique identifier associated with a pre and/or post execution
    allowedPattern: ^(None|[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$
  command:
  # Data Lifecycle Manager will trigger the pre-script and post-script actions during policy execution. 
  # 'dry-run' option is intended for validating the document execution without triggering any commands
  # on the instance. The following allowedValues will allow Data Lifecycle Manager to successfully 
  # trigger pre and post script actions.
    type: String
    default: 'dry-run'
    description: (Required) Specifies whether pre-script and/or post-script should be executed.
    allowedValues:
    - pre-script
    - post-script
    - dry-run

mainSteps:
- action: aws:runShellScript
  description: Run Database freeze/thaw commands
  name: run_pre_post_scripts
  precondition:
    StringEquals:
    - platformType
    - Linux
  inputs:
    runCommand:
    - |
      #!/bin/bash

      ###===============================================================================###
      ### Error Codes
      ###===============================================================================###
      # The following Error codes will inform Data Lifecycle Manager of the type of error 
      # and help guide handling of the error. 
      # The Error code will also be emitted via AWS Eventbridge events in the 'cause' field.
      # 1 Pre-script failed during execution - 201
      # 2 Post-script failed during execution - 202
      # 3 Auto thaw occurred before post-script was initiated - 203
      # 4 Pre-script initiated while post-script was expected - 204
      # 5 Post-script initiated while pre-script was expected - 205
      # 6 Application not ready for pre or post-script initiation - 206

      ###===============================================================================###
      ### Global variables
      ###===============================================================================###
      START=$(date +%s)
      # For testing this script locally, replace the below with OPERATION=$1.
      OPERATION={{ command }}

      # Add all pre-script actions to be performed within the function below
      execute_pre_script() {
          echo "INFO: Start execution of pre-script"
      }

      # Add all post-script actions to be performed within the function below
      execute_post_script() {
          echo "INFO: Start execution of post-script"
      }

      # Debug logging for parameters passed to the SSM document
      echo "INFO: ${OPERATION} starting at $(date) with executionId: ${EXECUTION_ID}"

      # Based on the command parameter value execute the function that supports 
      # pre-script/post-script operation
      case ${OPERATION} in
          pre-script)
              execute_pre_script
              ;;
          post-script)
              execute_post_script
              ;;
          dry-run)
              echo "INFO: dry-run option invoked - taking no action"
              ;;
          *)
              echo "ERROR: Invalid command parameter passed. Please use either pre-script, post-script, dry-run."
              exit 1 # return failure
              ;;
      esac

      END=$(date +%s)
      # Debug Log for profiling the script time
      echo "INFO: ${OPERATION} completed at $(date). Total runtime: $((${END} - ${START})) seconds."
```

------

Una volta ottenuto il contenuto del documento SSM, utilizza una delle seguenti procedure per creare il documento SSM personalizzato.

------
#### [ Console ]

**Creazione di un documento di comandi SSM**

1. Apri la AWS Systems Manager console all'indirizzo [https://console.aws.amazon.com//systems-manager/](https://console.aws.amazon.com//systems-manager/).

1. Nel pannello di navigazione, scegli **Documenti**, quindi scegli **Crea documento**, **Comando o Sessione**.

1. Per **Nome**, inserisci un nome descrittivo per il documento.

1. Per **Tipo di destinazione**, seleziona**/AWS::EC2::Instance**.

1. Per **Tipo di documento**, seleziona **Comando**.

1. Nel campo **Contenuto**, seleziona **YAML** e quindi incolla il contenuto del documento.

1. Nella sezione **Tag del documento**, aggiungi un tag con la chiave di tag `DLMScriptsAccess` e il valore di tag `true`.
**Importante**  
Il `DLMScriptsAccess:true` tag è richiesto dalla policy AWS gestita di **AWSDataLifecycleManagerSSMFullaccesso** utilizzata nella *Fase 3: Preparazione del ruolo IAM di Amazon Data Lifecycle Manager*. La policy utilizza la chiave di condizione `aws:ResourceTag` per limitare l'accesso ai documenti SSM che hanno questo tag.

1. Scegli **Crea documento**.

------
#### [ AWS CLI ]

**Creazione di un documento di comandi SSM**  
Usa il comando [create-document](https://docs.aws.amazon.com/cli/latest/reference/ssm/create-document.html). Per `--name`, digitare un nome descrittivo per il documento. Per `--document-type`, specificare `Command`. Per `--content`, specifica il percorso del file.yaml con il contenuto del documento SSM. Per `--tags`, specificare `"Key=DLMScriptsAccess,Value=true"`.

```
$ aws ssm create-document \
--content file://path/to/file/documentContent.yaml \
--name "document_name" \
--document-type "Command" \
--document-format YAML \
--tags "Key=DLMScriptsAccess,Value=true"
```

------

### Fase 3: Preparazione del ruolo IAM di Amazon Data Lifecycle Manager
<a name="prep-iam-role"></a>

**Nota**  
Questo passaggio è necessario se:  
Crei o aggiorni una policy di snapshot pre/post abilitata agli script che utilizza un ruolo IAM personalizzato.
Si utilizza la riga di comando per creare o aggiornare una policy di snapshot pre/post abilitata agli script che utilizza quella predefinita.
Se utilizzi la console per creare o aggiornare una politica di snapshot pre/post abilitata agli script che utilizza il ruolo predefinito per la gestione delle istantanee (), salta questo passaggio. **AWSDataLifecycleManagerDefaultRole** In questo caso, associamo automaticamente la politica di **AWSDataLifecycleManagerSSMFullaccesso** a quel ruolo.

Devi assicurarti che il ruolo IAM che usi per le policy conceda ad Amazon Data Lifecycle Manager l'autorizzazione a eseguire le azioni SSM necessarie per eseguire gli script pre e post sulle istanze oggetto della policy.

Amazon Data Lifecycle Manager fornisce una policy gestita (**AWSDataLifecycleManagerSSMFullAccess**) che include le autorizzazioni richieste. Puoi collegare questa policy al tuo ruolo IAM per la gestione degli snapshot per assicurarti che includa le autorizzazioni.

**Importante**  
La policy gestita di AWSData LifecycleManager SSMFull Access utilizza la chiave di `aws:ResourceTag` condizione per limitare l'accesso a documenti SSM specifici quando si utilizzano script pre e post. Per consentire ad Amazon Data Lifecycle Manager di accedere ai documenti SSM, devi assicurarti che i tuoi documenti SSM siano etichettati con `DLMScriptsAccess:true`.

In alternativa, puoi creare manualmente una policy personalizzata o assegnare le autorizzazioni richieste direttamente al ruolo IAM utilizzato. È possibile utilizzare le stesse autorizzazioni definite nella politica gestita di AWSData LifecycleManager SSMFull Access, tuttavia la chiave di `aws:ResourceTag` condizione è facoltativa. Se decidi di non utilizzare quella chiave di condizione, non è necessario etichettare i documenti SSM con `DLMScriptsAccess:true`.

Utilizza uno dei seguenti metodi per aggiungere la policy di **AWSDataLifecycleManagerSSMFullaccesso** al tuo ruolo IAM.

------
#### [ Console ]

**Collegamento della policy gestita al ruolo personalizzato**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, selezionare **Ruoli**.

1. Cerca e seleziona il tuo ruolo personalizzato per la gestione degli snapshot.

1. Nella scheda **Autorizzazioni**, scegli **Aggiungi autorizzazioni**, quindi **Collega policy**.

1. Cerca e seleziona la policy gestita di **AWSDataLifecycleManagerSSMFullAccess**, quindi scegli **Aggiungi autorizzazioni**.

------
#### [ AWS CLI ]

**Collegamento della policy gestita al ruolo personalizzato**  
Utilizza il comando [ attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html). Per `---role-name`, specifica il nome del tuo ruolo personalizzato. Per `--policy-arn`, specificare `arn:aws:iam::aws:policy/AWSDataLifecycleManagerSSMFullAccess`.

```
$ aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/AWSDataLifecycleManagerSSMFullAccess \
--role-name your_role_name
```

------

### Fase 4: Creazione di una policy del ciclo di vita dello snapshot
<a name="prep-policy"></a>

Per automatizzare gli snapshot coerenti con l'applicazione, è necessario creare una policy del ciclo di vita degli snapshot destinata alle istanze e configurare gli script pre e post per tale policy.

------
#### [ Console ]

**Creazione di una policy del ciclo di vita dello snapshot**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegliere **Elastic Block Store**, **Lifecycle Manager**, quindi selezionare **Create lifecycle policy (Crea policy del ciclo di vita)**.

1. Nella schermata **Seleziona il tipo di policy**, seleziona **Policy di snapshot EBS** e quindi **Successivo**.

1. Nella sezione **Risorse di destinazione**, procedere come segue:

   1. Per **Tipi di risorse di destinazione**, scegli `Instance`.

   1. Per **Tag delle risorse interessate**, specifica i tag delle risorse che identificano le istanze di cui eseguire il backup. Verrà eseguito il backup solo delle risorse con i tag specificati.

1. Per il **ruolo IAM**, scegli **AWSDataLifecycleManagerDefaultRole**(il ruolo predefinito per la gestione delle istantanee) o scegli un ruolo personalizzato che hai creato e preparato per la fase precedente e successiva agli script.

1. Configura le pianificazioni e le opzioni aggiuntive in base alla necessità. Si consiglia di pianificare gli orari di creazione degli snapshot per periodi di tempo corrispondenti al carico di lavoro, ad esempio durante le finestre di manutenzione.

   Per SAP HANA, si consiglia di abilitare il ripristino rapido degli snapshot.
**Nota**  
Se abiliti una pianificazione per i backup VSS, non puoi abilitare **Escludi volumi di dati specifici** o **Copia tag dall'origine**.

1. Nella sezione **Script pre e post**, seleziona **Abilita script pre e post**, quindi procedi come segue, a seconda del carico di lavoro:
   + Per creare snapshot coerenti con l'applicazione delle applicazioni Windows, seleziona **Backup VSS**.
   + Per creare snapshot coerenti con l'applicazione dei carichi di lavoro SAP HANA, seleziona **SAP HANA**.
   + **Per creare istantanee coerenti con l'applicazione di tutti gli altri database e carichi di lavoro, inclusi i database MySQL, PostgreSQL o IRIS autogestiti, utilizzando un documento SSM personalizzato, seleziona Documento SSM personalizzato. InterSystems **

     1. Per l'**Opzione Automatizza**, scegli **Script pre e post**.

     1. Per **Documento SSM**, seleziona il documento SSM che hai preparato.

1. A seconda dell'opzione selezionata, configura le seguenti opzioni aggiuntive:
   + **Timeout dello script**: (*solo documento SSM personalizzato*) il periodo di timeout dopo il quale Amazon Data Lifecycle Manager fallisce il tentativo di esecuzione dello script se non è stato completato. Se uno script non viene completato entro il periodo di timeout, Amazon Data Lifecycle Manager fallisce il tentativo. Il periodo di timeout si applica ai singoli script pre e post. Il periodo di timeout minimo e predefinito è 10 secondi. E il periodo massimo di timeout è di 120 secondi.
   + **Riprova gli script non riusciti**: seleziona questa opzione per riprovare gli script che non vengono completati entro il periodo di timeout. Se lo script preliminare fallisce, Amazon Data Lifecycle Manager riprova l'intero processo di creazione degli snapshot, inclusa l'esecuzione degli script pre e post. Se lo script post fallisce, Amazon Data Lifecycle Manager riprova solo lo script post; in questo caso, lo script pre sarà completato e lo snapshot potrebbe essere stato creato.
   + **Predefinito su snapshot crash-consistent**: seleziona questa opzione per impostare come impostazione predefinita gli snapshot crash-consistent se lo script pre non viene eseguito. Questo è il comportamento di creazione di snapshot predefinito per Amazon Data Lifecycle Manager se gli script pre e post non sono abilitati. Se hai abilitato i nuovi tentativi, Amazon Data Lifecycle Manager utilizzerà per impostazione predefinita gli snapshot crash-consistent solo dopo aver esaurito tutti i tentativi. Se lo script pre non riesce e per impostazione predefinita non utilizzi snapshot crash-consistent, Amazon Data Lifecycle Manager non creerà gli snapshot per l'istanza durante l'esecuzione della pianificazione.
**Nota**  
Se stai creando snapshot per SAP HANA, potresti voler disabilitare questa opzione. Gli snapshot crash-consistent dei carichi di lavoro SAP HANA non possono essere ripristinati nello stesso modo.

1. Scegli **Crea policy predefinita**.
**Nota**  
Se viene restituito l'errore `Role with name AWSDataLifecycleManagerDefaultRole already exists`, consulta [Risolvi i problemi relativi ad Amazon Data Lifecycle Manager](dlm-troubleshooting.md) per ulteriori informazioni.

------
#### [ AWS CLI ]

**Creazione di una policy del ciclo di vita dello snapshot**  
[create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-lifecycle-policy.html)Usa il `Scripts` `CreateRule` comando e includi i parametri in. Per ulteriori informazioni sui parametri, consulta la [https://docs.aws.amazon.com/dlm/latest/APIReference/API_Script.html](https://docs.aws.amazon.com/dlm/latest/APIReference/API_Script.html).

```
$ aws dlm create-lifecycle-policy \
--description "policy_description" \
--state ENABLED \
--execution-role-arn iam_role_arn \
--policy-details file://policyDetails.json
```

Dove `policyDetails.json` include una delle seguenti operazioni, a seconda del caso d'uso:
+ **Backup VSS**

  ```
  {
      "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
      "ResourceTypes": [
          "INSTANCE"
      ],
      "TargetTags": [{
          "Key": "tag_key",
          "Value": "tag_value"
      }],
      "Schedules": [{
          "Name": "schedule_name",
          "CreateRule": {
              "CronExpression": "cron_for_creation_frequency", 
              "Scripts": [{ 
                  "ExecutionHandler":"AWS_VSS_BACKUP",
                  "ExecuteOperationOnScriptFailure":true|false,
                  "MaximumRetryCount":retries (0-3)
              }]
          },
          "RetainRule": {
              "Count": retention_count
          }
      }]
  }
  ```
+ **Backup di SAP HANA**

  ```
  {
      "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
      "ResourceTypes": [
          "INSTANCE"
      ],
      "TargetTags": [{
          "Key": "tag_key",
          "Value": "tag_value"
      }],
      "Schedules": [{
          "Name": "schedule_name",
          "CreateRule": {
              "CronExpression": "cron_for_creation_frequency", 
              "Scripts": [{ 
                  "Stages": ["PRE","POST"],
                  "ExecutionHandlerService":"AWS_SYSTEMS_MANAGER",
                  "ExecutionHandler":"AWSSystemsManagerSAP-CreateDLMSnapshotForSAPHANA",
                  "ExecuteOperationOnScriptFailure":true|false,
                  "ExecutionTimeout":timeout_in_seconds (10-120), 
                  "MaximumRetryCount":retries (0-3)
              }]
          },
          "RetainRule": {
              "Count": retention_count
          }
      }]
  }
  ```
+ **Documento SSM personalizzato**

  ```
  {
      "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
      "ResourceTypes": [
          "INSTANCE"
      ],
      "TargetTags": [{
          "Key": "tag_key",
          "Value": "tag_value"
      }],
      "Schedules": [{
          "Name": "schedule_name",
          "CreateRule": {
              "CronExpression": "cron_for_creation_frequency", 
              "Scripts": [{ 
                  "Stages": ["PRE","POST"],
                  "ExecutionHandlerService":"AWS_SYSTEMS_MANAGER",
                  "ExecutionHandler":"ssm_document_name|arn",
                  "ExecuteOperationOnScriptFailure":true|false,
                  "ExecutionTimeout":timeout_in_seconds (10-120), 
                  "MaximumRetryCount":retries (0-3)
              }]
          },
          "RetainRule": {
              "Count": retention_count
          }
      }]
  }
  ```

------

## Considerazioni per i backup VSS con Amazon Data Lifecycle Manager
<a name="app-consistent-vss"></a>

Con Amazon Data Lifecycle Manager, puoi eseguire il backup e il ripristino di applicazioni Windows abilitate per VSS (Volume Shadow Copy Service) in esecuzione su istanze Amazon EC2. Se un VSS writer è registrato con Windows VSS nell'applicazione, allora il Sistema di gestione del ciclo di vita dei dati Amazon crea uno snapshot che sarà coerente per tale applicazione.

**Nota**  
Attualmente, Amazon Data Lifecycle Manager supporta solo backup coerenti con l'applicazione delle risorse in esecuzione su Amazon EC2, in particolare scenari di backup in cui i dati delle applicazioni possono essere ripristinati sostituendo un'istanza esistente con una nuova istanza creata dal backup. Non tutti i tipi di istanze o applicazioni sono supportati per i backup di Windows VSS. *Per ulteriori informazioni, consulta gli [snapshot Windows VSS coerenti con le applicazioni nella Guida per l'](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/application-consistent-snapshots.html)utente di Amazon EC2.* 

**Tipi di istanze non supportati**  
I seguenti tipi di istanza Amazon EC2 non sono supportati per i backup VSS. Se la tua policy si rivolge a uno di questi tipi di istanze, Amazon Data Lifecycle Manager potrebbe comunque creare backup VSS, ma gli snapshot potrebbero non essere taggati con i tag di sistema richiesti. Senza questi tag, gli snapshot non saranno gestiti da Amazon Data Lifecycle Manager dopo la creazione. Questi snapshot dovranno essere eliminati manualmente.
+ T3: `t3.nano` \$1 `t3.micro`
+ T3a: `t3a.nano` \$1 `t3a.micro`
+ T2: `t2.nano` \$1 `t2.micro`

## Responsabilità condivisa per snapshot coerenti a livello di applicazione
<a name="shared-responsibility"></a>

**È necessario assicurarsi che:**
+ L'agente SSM è installato e in esecuzione sulle istanze di destinazione up-to-date
+ Systems Manager disponga delle autorizzazioni per effettuare le operazioni richieste sulle istanze di destinazione
+ Amazon Data Lifecycle Manager abbia l'autorizzazione a eseguire le azioni di Systems Manager necessarie per eseguire gli script pre e post sulle istanze di destinazione.
+ Per i carichi di lavoro personalizzati, come i database MySQL, PostgreSQL o InterSystems IRIS autogestiti, il documento SSM che usi include le azioni corrette e necessarie per il congelamento, lo svuotamento e lo scongelamento per la configurazione del database. I/O 
+ I tempi di creazione degli snapshot si allineano alla pianificazione del carico di lavoro. Ad esempio, prova a pianificare la creazione di snapshot durante le finestre di manutenzione pianificata.

**Amazon Data Lifecycle Manager garantisce che:**
+ La creazione degli snapshot viene avviata entro 60 minuti dall'ora pianificata per la creazione dello snapshot.
+ Gli script pre vengono eseguiti prima dell'avvio della creazione dello snapshot.
+ Gli script post vengono eseguiti dopo il completamento dello script pre e l'avvio della creazione dello snapshot. Amazon Data Lifecycle Manager esegue lo script post solo se lo script pre ha esito positivo. Se lo script pre fallisce, Amazon Data Lifecycle Manager non eseguirà lo script post.
+ Gli snapshot vengono taggati con i tag appropriati al momento della creazione.
+ CloudWatch le metriche e gli eventi vengono emessi quando gli script vengono avviati e quando hanno esito negativo o hanno esito positivo.

# Altri casi d'uso degli script pre e post di Data Lifecycle Manager
<a name="script-other-use-cases"></a>

Oltre a utilizzare script pre e post per automatizzare gli snapshot coerenti con le applicazioni, è possibile utilizzarli insieme o singolarmente per automatizzare altre attività amministrative prima o dopo la creazione degli snapshot. Esempio:
+ Mediante uno script pre per applicare le patch prima di creare gli snapshot. Questo può aiutarti a creare snapshot dopo aver applicato i regolari aggiornamenti software settimanali o mensili.
**Nota**  
Se decidi di eseguire solo uno script pre, l'opzione **Predefinito su snapshot crash-consistent** è abilitata per impostazione predefinita.
+ Mediante uno script post per applicare le patch prima di creare gli snapshot. Questo può aiutarti a creare snapshot prima di applicare i regolari aggiornamenti software settimanali o mensili.

## Guida introduttiva per altri casi d'uso
<a name="dlm-script-other"></a>

Questa sezione spiega i passaggi da eseguire quando si utilizzano script pre and/or post per **casi d'uso diversi** dagli snapshot coerenti con l'applicazione.

### Fase 1: Preparazione delle istanze di destinazione
<a name="dlm-script-other-prep-instance"></a>

**Per preparare le istanze di destinazione per gli script pre post and/or**

1. Installa l'agente SSM sulle istanze di destinazione, se non è già installato. Se l'agente SSM è già installato sulle istanze di destinazione, salta questo passaggio. 
   + (Istanze Linux) [Installazione manuale di SSM Agent su](https://docs.aws.amazon.com/systems-manager/latest/userguide/manually-install-ssm-agent-linux.html) istanze EC2 per Linux
   + (Istanze Windows) [Utilizzo di SSM Agent](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-windows.html) su istanze EC2 per Windows Server

1. Assicurati che l'agente SSM sia in esecuzione. Per ulteriori informazioni, consulta [Verifica dello stato dell'agente SSM e avvio dell'agente](https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-status-and-restart.html).

1. Configura Systems Manager per le istanze Amazon EC2. Per ulteriori informazioni, consulta [Configurazione di Systems Manager per le istanze Amazon EC2](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-setting-up-ec2.html) nella *Guida per l'utente di AWS Systems Manager *.

### Fase 2: Preparazione del documento SSM
<a name="dlm-script-other-prep-document"></a>

È necessario creare un documento di comando SSM che includa gli script pre and/or post con i comandi che si desidera eseguire.

È possibile creare un documento SSM utilizzando il modello di documenti SSM vuoto riportato di seguito e aggiungendo i comandi degli script pre e post nelle sezioni appropriate del documento.

**Tenere presente quanto segue:**  
È tua responsabilità assicurarti che il documento SSM esegua le azioni corrette e necessarie per il carico di lavoro.
Il documento SSM deve includere i campi obbligatori per `allowedValues`, tra cui `pre-script`, `post-script` e `dry-run`. Amazon Data Lifecycle Manager eseguirà comandi sull'istanza in base al contenuto di tali sezioni. Se il documento SSM non contiene queste sezioni, Amazon Data Lifecycle Manager lo considererà un'esecuzione non riuscita.

```
###===============================================================================###
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

# Permission is hereby granted, free of charge, to any person obtaining a copy of this
# software and associated documentation files (the "Software"), to deal in the Software
# without restriction, including without limitation the rights to use, copy, modify,
# merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
# permit persons to whom the Software is furnished to do so.

# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
# INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
# PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
###===============================================================================###
schemaVersion: '2.2'
description: SSM Document Template for Amazon Data Lifecycle Manager Pre/Post script feature
parameters:
  executionId:
    type: String
    default: None
    description: (Required) Specifies the unique identifier associated with a pre and/or post execution
    allowedPattern: ^(None|[a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12})$
  command:
  # Data Lifecycle Manager will trigger the pre-script and post-script actions during policy execution. 
  # 'dry-run' option is intended for validating the document execution without triggering any commands
  # on the instance. The following allowedValues will allow Data Lifecycle Manager to successfully 
  # trigger pre and post script actions.
    type: String
    default: 'dry-run'
    description: (Required) Specifies whether pre-script and/or post-script should be executed.
    allowedValues:
    - pre-script
    - post-script
    - dry-run

mainSteps:
- action: aws:runShellScript
  description: Run Database freeze/thaw commands
  name: run_pre_post_scripts
  precondition:
    StringEquals:
    - platformType
    - Linux
  inputs:
    runCommand:
    - |
      #!/bin/bash

      ###===============================================================================###
      ### Error Codes
      ###===============================================================================###
      # The following Error codes will inform Data Lifecycle Manager of the type of error 
      # and help guide handling of the error. 
      # The Error code will also be emitted via AWS Eventbridge events in the 'cause' field.
      # 1 Pre-script failed during execution - 201
      # 2 Post-script failed during execution - 202
      # 3 Auto thaw occurred before post-script was initiated - 203
      # 4 Pre-script initiated while post-script was expected - 204
      # 5 Post-script initiated while pre-script was expected - 205
      # 6 Application not ready for pre or post-script initiation - 206

      ###===============================================================================###
      ### Global variables
      ###===============================================================================###
      START=$(date +%s)
      # For testing this script locally, replace the below with OPERATION=$1.
      OPERATION={{ command }}

      # Add all pre-script actions to be performed within the function below
      execute_pre_script() {
          echo "INFO: Start execution of pre-script"
      }

      # Add all post-script actions to be performed within the function below
      execute_post_script() {
          echo "INFO: Start execution of post-script"
      }

      # Debug logging for parameters passed to the SSM document
      echo "INFO: ${OPERATION} starting at $(date) with executionId: ${EXECUTION_ID}"

      # Based on the command parameter value execute the function that supports 
      # pre-script/post-script operation
      case ${OPERATION} in
          pre-script)
              execute_pre_script
              ;;
          post-script)
              execute_post_script
              ;;
          dry-run)
              echo "INFO: dry-run option invoked - taking no action"
              ;;
          *)
              echo "ERROR: Invalid command parameter passed. Please use either pre-script, post-script, dry-run."
              exit 1 # return failure
              ;;
      esac

      END=$(date +%s)
      # Debug Log for profiling the script time
      echo "INFO: ${OPERATION} completed at $(date). Total runtime: $((${END} - ${START})) seconds."
```

### Fase 3: Preparazione del ruolo IAM di Amazon Data Lifecycle Manager
<a name="dlm-script-other-prep-role"></a>

**Nota**  
Questo passaggio è necessario se:  
Crei o aggiorni una policy di snapshot pre/post abilitata agli script che utilizza un ruolo IAM personalizzato.
Si utilizza la riga di comando per creare o aggiornare una policy di snapshot pre/post abilitata agli script che utilizza quella predefinita.
Se utilizzi la console per creare o aggiornare una politica di snapshot pre/post abilitata agli script che utilizza il ruolo predefinito per la gestione delle istantanee (), salta questo passaggio. **AWSDataLifecycleManagerDefaultRole** In questo caso, associamo automaticamente la politica di **AWSDataLifecycleManagerSSMFullaccesso** a quel ruolo.

Devi assicurarti che il ruolo IAM che usi per le policy conceda ad Amazon Data Lifecycle Manager l'autorizzazione a eseguire le azioni SSM necessarie per eseguire gli script pre e post sulle istanze oggetto della policy.

Amazon Data Lifecycle Manager fornisce una policy gestita (**AWSDataLifecycleManagerSSMFullAccess**) che include le autorizzazioni richieste. Puoi collegare questa policy al tuo ruolo IAM per la gestione degli snapshot per assicurarti che includa le autorizzazioni.

**Importante**  
La policy gestita di AWSData LifecycleManager SSMFull Access utilizza la chiave di `aws:ResourceTag` condizione per limitare l'accesso a documenti SSM specifici quando si utilizzano script pre e post. Per consentire ad Amazon Data Lifecycle Manager di accedere ai documenti SSM, devi assicurarti che i tuoi documenti SSM siano etichettati con `DLMScriptsAccess:true`.

In alternativa, puoi creare manualmente una policy personalizzata o assegnare le autorizzazioni richieste direttamente al ruolo IAM utilizzato. È possibile utilizzare le stesse autorizzazioni definite nella politica gestita di AWSData LifecycleManager SSMFull Access, tuttavia la chiave di `aws:ResourceTag` condizione è facoltativa. Se decidi di non utilizzare quella chiave di condizione, non è necessario etichettare i documenti SSM con `DLMScriptsAccess:true`.

Utilizza uno dei seguenti metodi per aggiungere la policy di **AWSDataLifecycleManagerSSMFullaccesso** al tuo ruolo IAM.

------
#### [ Console ]

**Collegamento della policy gestita al ruolo personalizzato**

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione, selezionare **Ruoli**.

1. Cerca e seleziona il tuo ruolo personalizzato per la gestione degli snapshot.

1. Nella scheda **Autorizzazioni**, scegli **Aggiungi autorizzazioni**, quindi **Collega policy**.

1. Cerca e seleziona la policy gestita di **AWSDataLifecycleManagerSSMFullAccess**, quindi scegli **Aggiungi autorizzazioni**.

------
#### [ AWS CLI ]

**Collegamento della policy gestita al ruolo personalizzato**  
Utilizza il comando [ attach-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/attach-role-policy.html). Per `---role-name`, specifica il nome del tuo ruolo personalizzato. Per `--policy-arn`, specificare `arn:aws:iam::aws:policy/AWSDataLifecycleManagerSSMFullAccess`.

```
$ aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/AWSDataLifecycleManagerSSMFullAccess \
--role-name your_role_name
```

------

### Creazione di una policy del ciclo di vita dello snapshot
<a name="dlm-script-other-prep-policy"></a>

------
#### [ Console ]

**Creazione di una policy del ciclo di vita dello snapshot**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegliere **Elastic Block Store**, **Lifecycle Manager**, quindi selezionare **Create lifecycle policy (Crea policy del ciclo di vita)**.

1. Nella schermata **Seleziona il tipo di policy**, seleziona **Policy di snapshot EBS** e quindi **Successivo**.

1. Nella sezione **Risorse di destinazione**, procedere come segue:

   1. Per **Tipi di risorse di destinazione**, scegli `Instance`.

   1. Per **Tag delle risorse interessate**, specifica i tag delle risorse che identificano le istanze di cui eseguire il backup. Verrà eseguito il backup solo delle risorse con i tag specificati.

1. Per il **ruolo IAM**, scegli **AWSDataLifecycleManagerDefaultRole**(il ruolo predefinito per la gestione delle istantanee) o scegli un ruolo personalizzato che hai creato e preparato per la fase precedente e successiva agli script.

1. Configura le pianificazioni e le opzioni aggiuntive in base alla necessità. Si consiglia di pianificare gli orari di creazione degli snapshot per periodi di tempo corrispondenti al carico di lavoro, ad esempio durante le finestre di manutenzione.

1. Nella sezione **Script pre e post**, seleziona **Abilita script pre e post**, quindi procedi come segue:

   1. Seleziona **Documento SSM personalizzato**.

   1. Per **Opzione Automatizza**, scegli l'opzione che corrisponde agli script che desideri eseguire.

   1. Per **Documento SSM**, seleziona il documento SSM che hai preparato.

1. Configura le seguenti opzioni aggiuntive, se necessario:
   + **Timeout dello script**: il periodo di timeout dopo il quale Amazon Data Lifecycle Manager fallisce il tentativo di esecuzione dello script se non è stato completato. Se uno script non viene completato entro il periodo di timeout, Amazon Data Lifecycle Manager fallisce il tentativo. Il periodo di timeout si applica ai singoli script pre e post. Il periodo di timeout minimo e predefinito è 10 secondi. E il periodo massimo di timeout è di 120 secondi.
   + **Riprova gli script non riusciti**: seleziona questa opzione per riprovare gli script che non vengono completati entro il periodo di timeout. Se lo script preliminare fallisce, Amazon Data Lifecycle Manager riprova l'intero processo di creazione degli snapshot, inclusa l'esecuzione degli script pre e post. Se lo script post fallisce, Amazon Data Lifecycle Manager riprova solo lo script post; in questo caso, lo script pre sarà completato e lo snapshot potrebbe essere stato creato.
   + **Predefinito su snapshot crash-consistent**: seleziona questa opzione per impostare come impostazione predefinita gli snapshot crash-consistent se lo script pre non viene eseguito. Questo è il comportamento di creazione di snapshot predefinito per Amazon Data Lifecycle Manager se gli script pre e post non sono abilitati. Se hai abilitato i nuovi tentativi, Amazon Data Lifecycle Manager utilizzerà per impostazione predefinita gli snapshot crash-consistent solo dopo aver esaurito tutti i tentativi. Se lo script pre non riesce e per impostazione predefinita non utilizzi snapshot crash-consistent, Amazon Data Lifecycle Manager non creerà gli snapshot per l'istanza durante l'esecuzione della pianificazione.

1. Scegli **Crea policy predefinita**.
**Nota**  
Se viene restituito l'errore `Role with name AWSDataLifecycleManagerDefaultRole already exists`, consulta [Risolvi i problemi relativi ad Amazon Data Lifecycle Manager](dlm-troubleshooting.md) per ulteriori informazioni.

------
#### [ AWS CLI ]

**Creazione di una policy del ciclo di vita dello snapshot**  
Usa il [create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-lifecycle-policy.html)comando e includi i `Scripts` parametri in. `CreateRule` Per ulteriori informazioni sui parametri, consulta la [https://docs.aws.amazon.com/dlm/latest/APIReference/API_Script.html](https://docs.aws.amazon.com/dlm/latest/APIReference/API_Script.html).

```
$ aws dlm create-lifecycle-policy \
--description "policy_description" \
--state ENABLED \
--execution-role-arn iam_role_arn \
--policy-details file://policyDetails.json
```

Dove `policyDetails.json` include quanto segue.

```
{
    "PolicyType": "EBS_SNAPSHOT_MANAGEMENT",
    "ResourceTypes": [
        "INSTANCE"
    ],
    "TargetTags": [{
        "Key": "tag_key",
        "Value": "tag_value"
    }],
    "Schedules": [{
        "Name": "schedule_name",
        "CreateRule": {
            "CronExpression": "cron_for_creation_frequency", 
            "Scripts": [{ 
                "Stages": ["PRE" | "POST" | "PRE","POST"],
                "ExecutionHandlerService":"AWS_SYSTEMS_MANAGER",
                "ExecutionHandler":"ssm_document_name|arn",
                "ExecuteOperationOnScriptFailure":true|false,
                "ExecutionTimeout":timeout_in_seconds (10-120), 
                "MaximumRetryCount":retries (0-3)
            }]
        },
        "RetainRule": {
            "Count": retention_count
        }
    }]
}
```

------

# Come funzionano gli script pre e post di Amazon Data Lifecycle Manager
<a name="script-flow"></a>

L'immagine seguente mostra il flusso di processo per gli script pre e post quando si utilizzano documenti SSM personalizzati. Non si applica ai backup VSS.

![\[Flusso di elaborazione degli script pre e post di Amazon Data Lifecycle Manager\]](http://docs.aws.amazon.com/it_it/ebs/latest/userguide/images/dlm-scripts.png)


Al momento della creazione pianificata dello snapshot, si verificano le seguenti azioni e interazioni tra servizi.

1. Amazon Data Lifecycle Manager avvia l'azione dello script pre richiamando il documento SSM e passando il parametro `pre-script`.
**Nota**  
I passaggi da 1 a 3 si verificano solo se esegui script pre. Se si eseguono solo script post, i passaggi da 1 a 3 vengono ignorati.

1. Systems Manager invia comandi degli script pre all'agente SSM in esecuzione sulle istanze di destinazione. L'agente SSM esegue i comandi sull'istanza e invia le informazioni sullo stato a Systems Manager.

   Ad esempio, se il documento SSM viene utilizzato per creare istantanee coerenti con l'applicazione, lo script preliminare potrebbe bloccarsi e svuotarsi per garantire che tutti i dati memorizzati nel buffer vengano I/O scritti sul volume prima dell'acquisizione dell'istantanea.

1. Systems Manager invia aggiornamenti sullo stato dei comandi dello script pre ad Amazon Data Lifecycle Manager. Se lo script pre non riesce, Amazon Data Lifecycle Manager richiede una delle seguenti azioni, a seconda di come configuri le opzioni degli script pre e post:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/ebs/latest/userguide/script-flow.html)

1. Amazon Data Lifecycle Manager avvia la creazione di snapshot.

1. Amazon Data Lifecycle Manager avvia l'azione dello script post richiamando il documento SSM e passando il parametro `post-script`.
**Nota**  
I passaggi da 5 a 7 si verificano solo se esegui script pre. Se si eseguono solo script post, i passaggi da 1 a 3 vengono ignorati.

1. Systems Manager invia comandi degli script post all'agente SSM in esecuzione sulle istanze di destinazione. L'agente SSM esegue i comandi sull'istanza e invia le informazioni sullo stato a Systems Manager.

   Ad esempio, se il documento SSM abilita istantanee coerenti con l'applicazione, questo post script potrebbe scongelarsi per garantire che i database riprendano le normali operazioni di I/O dopo l'acquisizione I/O dell'istantanea.

1. Se si esegue uno script post e Systems Manager indica che è stato completato correttamente, il processo viene completato.

   Se lo script post non riesce, Amazon Data Lifecycle Manager richiede una delle seguenti azioni, a seconda di come configuri le opzioni degli script pre e post:    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/ebs/latest/userguide/script-flow.html)

   Tieni presente che se lo script post non riesce, lo script pre (se abilitato) sarà completato con successo e gli snapshot potrebbero essere state creati. Potrebbe essere necessario intraprendere ulteriori azioni sull'istanza per garantire che funzioni come previsto. Ad esempio se il prescript è stato messo in pausa e poi svuotato. I/O, but the post script failed to thaw I/O, you might need to configure your database to auto-thaw I/O or you need to manually thaw I/O

1. Il processo di creazione degli snapshot potrebbe essere completato dopo il completamento dello script post. Il tempo necessario per completare lo snapshot dipende dalla dimensione dello snapshot.

# Identifica le istantanee create con gli script precedenti e successivi a quelli di Data Lifecycle Manager
<a name="dlm-script-tags"></a>

Amazon Data Lifecycle Manager assegna automaticamente i seguenti tag di sistema agli snapshot creati con script pre e post.
+ Chiave: `aws:dlm:pre-script`; valore: `SUCCESS`\$1`FAILED`

  Un valore del tag pari a `SUCCESS` indica che lo script pre è stato eseguito correttamente. Un valore del tag pari a `FAILED` indica che lo script pre non è stato eseguito correttamente. 
+ Chiave: `aws:dlm:post-script`; valore: `SUCCESS`\$1`FAILED`

  Un valore del tag pari a `SUCCESS` indica che lo script post è stato eseguito correttamente. Un valore del tag pari a `FAILED` indica che lo script post non è stato eseguito correttamente. 

Per i documenti SSM personalizzati e i backup SAP HANA, è possibile dedurre che la creazione di snapshot coerenti con le applicazioni sia riuscita se lo snapshot è taggato sia con `aws:dlm:pre-script:SUCCESS` che con `aws:dlm:post-script:SUCCESS`.

Inoltre, gli snapshot coerenti con le applicazioni creati utilizzando il backup VSS vengono taggati automaticamente con:
+ Chiave: `AppConsistent tag`; valore: `true`\$1`false`

  Un valore di tag pari a `true` indica che il backup VSS è stato eseguito correttamente e che gli snapshot sono coerenti a livello di applicazione. Un valore di tag pari a `false` indica che il backup VSS non è stato eseguito correttamente e che gli snapshot non sono coerenti a livello di applicazione.

# Monitora Amazon Data Lifecycle Manager prima e dopo gli script
<a name="dlm-script-monitoring"></a>

**CloudWatch Metriche Amazon**  
Amazon Data Lifecycle Manager pubblica le seguenti CloudWatch metriche quando gli script precedenti e successivi hanno esito negativo e hanno esito positivo e quando i backup VSS falliscono e hanno esito positivo.
+ `PreScriptStarted`
+ `PreScriptCompleted`
+ `PreScriptFailed`
+ `PostScriptStarted`
+ `PostScriptCompleted`
+ `PostScriptFailed`
+ `VSSBackupStarted`
+ `VSSBackupCompleted`
+ `VSSBackupFailed`

Per ulteriori informazioni, consulta [Monitora le policy di Data Lifecycle Manager utilizzando CloudWatch](monitor-dlm-cw-metrics.md).

**Amazon EventBridge**  
Amazon Data Lifecycle Manager emette il seguente evento EventBridge Amazon quando uno script precedente o successivo viene avviato, ha esito positivo o negativo
+ `DLM Pre Post Script Notification`

Per ulteriori informazioni, consulta [Monitora le policy di Data Lifecycle Manager utilizzando EventBridge](monitor-cloudwatch-events.md).

# Crea una policy personalizzata di Amazon Data Lifecycle Manager per il supporto di EBS AMIs
<a name="ami-policy"></a>

La procedura seguente illustra come utilizzare Amazon Data Lifecycle Manager per automatizzare i cicli di vita delle AMI EBS-backed.

**Topics**
+ [Creare una policy del ciclo di vita delle AMI](#create-ami-policy)
+ [Considerazioni sulle policy del ciclo di vita delle AMI](#ami-considerations)
+ [Risorse aggiuntive](#ami-additional-resources)

## Creare una policy del ciclo di vita delle AMI
<a name="create-ami-policy"></a>

Utilizza una delle seguenti procedure per creare una policy del ciclo di vita dell'AMI.

------
#### [ Console ]

**Come creare una policy delle AMI**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegliere **Elastic Block Store**, **Lifecycle Manager**, quindi selezionare **Create lifecycle policy (Crea policy del ciclo di vita)**.

1. Nella schermata **Seleziona il tipo di policy**, seleziona **Policy delle AMI EBS-backed** e quindi **Successivo**.

1. Nella sezione **Risorse di destinazione**, per **Tag risorse di destinazione**, scegli i tag di risorsa che identificano i volumi o le istanze di cui eseguire il backup. La policy esegue il backup solo delle risorse che dispongono delle coppie di chiave tag e valore specificate.

1. In **Description (Descrizione)** immettere una breve descrizione della policy.

1. Per il **ruolo IAM**, scegli il ruolo IAM che dispone delle autorizzazioni per gestire, creare istantanee AMIs e descrivere le istanze. Per utilizzare il ruolo predefinito fornito da Amazon Data Lifecycle Manager, seleziona **Ruolo predefinito**. In alternativa, per utilizzare un ruolo IAM personalizzato creato in precedenza, seleziona **Scegli un altro ruolo**, quindi seleziona il ruolo desiderato.

1. Per **Tag di policy**, aggiungi i tag da applicare alla policy del ciclo di vita. Puoi utilizzare i tag per identificare e categorizzare le policy.

1. **Stato della policy dopo la creazione**: seleziona **Abilita policy** per avviare l'esecuzione della policy all'ora successiva pianificata o **Disabilita policy** per impedirne l'esecuzione. Se non abiliti subito la policy, la sua creazione non inizierà AMIs finché non la abiliterai manualmente dopo la creazione.

1. Nella sezione **Riavvio dell'istanza**, indica se le istanze devono essere riavviate prima della creazione dell'AMI. Per evitare che le istanze di destinazione vengano riavviate, seleziona **No**. La scelta di **No** potrebbe creare problemi di coerenza dei dati. Per riavviare le istanze prima della creazione dell'AMI, scegli **Sì**. La scelta di questa opzione garantisce la coerenza dei dati, ma potrebbe comportare il riavvio simultaneo di più istanze interessate.

1. Scegli **Next (Successivo)**.

1. Nella schermata **Configura pianificazione**, configura le pianificazioni delle policy. Una policy può avere fino a quattro pianificazioni. La pianificazione 1 è obbligatoria. Le pianificazioni 2, 3 e 4 sono facoltative. Per ogni pianificazione di policy che viene aggiunta, completa le seguenti operazioni:

   1. Nella sezione **Dettagli pianificazione**, completa le operazioni descritte di seguito.

      1. Per **Nome pianificazione**, specifica un nome descrittivo per la pianificazione.

      1. Per **Frequenza** e nei campi correlati, configura l'intervallo tra un'esecuzione della policy e l'altra.

         Puoi configurare le esecuzioni delle policy in base a una pianificazione giornaliera, settimanale, mensile o annuale. In alternativa, scegli **Custom cron expression (Personalizza espressione cron)** per specificare un intervallo massimo di 1 anno. Per ulteriori informazioni, consulta [Cron and rate expression](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-scheduled-rule-pattern.html) nella *Amazon EventBridge User Guide*.

      1. In **A partire dalle**, specifica l'ora di avvio per l'esecuzione della policy. La prima esecuzione della policy inizia entro un'ora dall'orario pianificato. L'ora deve essere inserita in formato `hh:mm` UTC.

      1. Per **Tipo di conservazione**, specifica la politica di conservazione AMIs creata dalla pianificazione.

         Puoi conservarli in AMIs base al numero totale o all'età.

         Per la conservazione basata sul conteggio, l'intervallo è compreso tra `1` e `1000`. Una volta raggiunto il numero massimo, l'AMI meno recente viene eliminata e ne viene creata una nuova.

         Per la conservazione basata sull'età, l'intervallo è compreso tra `1` giorno e `100` anni. Alla scadenza del periodo di conservazione di ogni AMI, la sua registrazione viene annullata.
**Nota**  
Tutte le programmazioni devono avere lo stesso tipo di conservazione. È possibile specificare il tipo di conservazione solo per Pianificazione 1. Le pianificazioni 2, 3 e 4 ereditano il tipo di conservazione dal programma 1. Ogni programma può avere il proprio conteggio o periodo di conservazione.

   1. Configura i tag per AMIs.

      Nella sezione **Tagging**, procedi nel seguente modo:

      1. Per copiare tutti i tag definiti dall'utente dall'istanza di origine a quella AMIs creata dalla pianificazione, seleziona **Copia tag dall'**origine.

      1. Per impostazione predefinita, i file AMIs creati dalla pianificazione vengono automaticamente etichettati con l'ID dell'istanza di origine. Per evitare che si verifichi questa aggiunta di tag automatica, per **Tag variabili**, rimuovi la spunta `instance-id:$(instance-id)`.

      1. Per specificare tag aggiuntivi da assegnare a quelli AMIs creati da questa pianificazione, scegli **Aggiungi tag**.

   1. Configura la deprecazione delle AMI.

      Per renderli obsoleti AMIs quando non devono più essere utilizzati, nella sezione Deprecazione **AMI, seleziona Abilita deprecazione** **AMI per questa pianificazione, quindi specifica la regola di deprecazione** AMI. La regola di deprecazione AMI specifica quando devono essere AMIs dichiarate obsolete.

      Se la pianificazione utilizza la conservazione delle AMI basata sul conteggio, è necessario specificare il numero di AMI più vecchie AMIs da rendere obsolete. Il conteggio della definizione come obsoleta dell'AMI deve essere minore o uguale al conteggio di conservazione dell'AMI della pianificazione e non può essere maggiore di 1000. Ad esempio, se la pianificazione è configurata per conservare un massimo di 5 AMIs, è possibile configurare la pianificazione in modo da rendere obsolete fino alle 5 più vecchie. AMIs

      Se la pianificazione utilizza la conservazione delle AMI basata sull'età, è necessario specificare il periodo dopo il quale devono essere AMIs dichiarate obsolete. Il conteggio della definizione come obsoleta dell'AMI deve essere inferiore o uguale al periodo di conservazione dell'AMI della pianificazione e non può essere superiore a 10 anni (120 mesi, 520 settimane o 3650 giorni). Ad esempio, se la pianificazione è configurata per essere conservata AMIs per 10 giorni, è possibile configurarla in modo che diventi obsoleta AMIs dopo periodi fino a 10 giorni dalla creazione.

   1. Configura la copia tra Regioni.

      Per copiare il file AMIs creato dalla pianificazione in diverse regioni, nella sezione **Copia tra aree geografiche, seleziona **Abilita** copia** tra aree geografiche. Puoi copiare fino AMIs a tre regioni aggiuntive nel tuo account. È necessario specificare regola di copia tra regioni separata per ogni regione di destinazione.

      Per ogni Regione di destinazione, puoi specificare quanto segue:
      + Una policy di conservazione per la copia dell'AMI. Alla scadenza del periodo di conservazione, la registrazione della copia nella Regione di destinazione viene automaticamente annullata.
      + Lo stato di crittografia per la copia dell'AMI. Se l'AMI di origine è crittografato o se la crittografia per impostazione predefinita è abilitata, le copie copiate AMIs vengono sempre crittografate. Se l'AMI di origine non è crittografata e la crittografia è disabilitata per impostazione predefinita, è possibile abilitare la crittografia. Se non si specifica una chiave KMS, AMIs vengono crittografate utilizzando la chiave KMS predefinita per la crittografia EBS in ciascuna regione di destinazione. Se si specifica una Chiave KMS per la regione di destinazione, il ruolo IAM selezionato deve avere accesso alla Chiave KMS.
      + Una regola di definizione come obsoleta per la copia dell'AMI. Alla scadenza del periodo di definizione come obsoleta, la copia dell'AMI è resa obsoleta automaticamente. Il periodo stabilito per la definizione come obsoleta deve essere minore o uguale al periodo di conservazione della copia e non può essere maggiore di 10 anni.
      + Se copiare tutti i tag o nessun tag dall'AMI di origine.
**Nota**  
Non superare il numero di copie AMI simultanee per regione.

   1. Per aggiungere ulteriori pianificazioni, seleziona **Aggiungi un'altra pianificazione**, che si trova nella parte superiore dello schermo. Per ogni pianificazione aggiuntiva, completa i campi come descritto in precedenza in questo argomento.

   1. Dopo aver aggiunto le pianificazioni richieste, seleziona **Rivedi policy**.

1. Esamina il riepilogo della policy, quindi seleziona **Crea policy**.
**Nota**  
Se viene restituito l'errore `Role with name AWSDataLifecycleManagerDefaultRoleForAMIManagement already exists`, consulta [Risolvi i problemi relativi ad Amazon Data Lifecycle Manager](dlm-troubleshooting.md) per ulteriori informazioni.

------
#### [ Command line ]

Usa il [create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-lifecycle-policy.html)comando per creare una politica del ciclo di vita AMI. Per `PolicyType`, specificare `IMAGE_MANAGEMENT`.

**Nota**  
Per semplificare la sintassi, negli esempi seguenti viene utilizzato un file JSON, `policyDetails.json`, che include i dettagli della policy.

**Esempio 1: conservazione basata sull'età e definizione dell'AMI come obsoleta**  
Questo esempio crea una policy del ciclo di vita AMIs dell'AMI che crea tutte le istanze con una chiave tag di `purpose` con un valore di `production` senza riavviare le istanze di destinazione. La policy include una pianificazione che crea un'AMI ogni giorno alle `01:00` UTC. La policy viene mantenuta per giorni e le rende obsolete giorno dopo AMIs giorno`2`. `1` Inoltre, copia i tag dall'istanza di origine a quella che crea. AMIs 

```
aws dlm create-lifecycle-policy \
    --description "My AMI policy" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \
    --policy-details file://policyDetails.json
```

Di seguito è riportato un esempio del file `policyDetails.json`.

```
{
    "PolicyType": "IMAGE_MANAGEMENT",
    "ResourceTypes": [
        "INSTANCE"
    ],
    "TargetTags": [{
        "Key": "purpose",
        "Value": "production"
    }],
    "Schedules": [{
            "Name": "DailyAMIs",
            "TagsToAdd": [{
                "Key": "type",
                "Value": "myDailyAMI"
            }],
            "CreateRule": {
                "Interval": 24,
                "IntervalUnit": "HOURS",
                "Times": [
                    "01:00"
                ]
            },
            RetainRule":{
                "Interval" : 2,
                "IntervalUnit" : "DAYS"
            },
            DeprecateRule": {
                "Interval" : 1,
                "IntervalUnit" : "DAYS"
            },
            "CopyTags": true
        }
    ],
    "Parameters" : {
        "NoReboot":true
    }
}
```

Se la richiesta ha esito positivo, il comando restituisce l'ID della policy appena creata. Di seguito è riportato un output di esempio.

```
{
   "PolicyId": "policy-9876543210abcdef0"
}
```

**Esempio 2: conservazione basata sul conteggio e definizione dell'AMI come obsoleta con copia tra Regioni**  
Questo esempio crea una policy del ciclo di vita AMIs dell'AMI che crea tutte le istanze con una chiave tag di `purpose` con un valore di `production` e riavvia le istanze di destinazione. La policy include una pianificazione che crea un'AMI ogni `6` ore a partire dalle `17:30` UTC. La policy mantiene e rende automaticamente obsolete le `3` AMIs più vecchie. `2` AMIs Ha anche una regola di copia tra regioni che copia`us-east-1`, AMIs conserva le copie `2` AMI e depreca automaticamente l'AMI più vecchia.

```
aws dlm create-lifecycle-policy \
    --description "My AMI policy" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement \
    --policy-details file://policyDetails.json
```

Di seguito è riportato un esempio del file `policyDetails.json`.

```
{
    "PolicyType": "IMAGE_MANAGEMENT",
    "ResourceTypes" : [
        "INSTANCE"
    ],
    "TargetTags": [{
        "Key":"purpose", 
        "Value":"production"
    }],
    "Parameters" : {
          "NoReboot": true
    },
    "Schedules" : [{
        "Name" : "Schedule1",
        "CopyTags": true,
        "CreateRule" : {
            "Interval": 6,
            "IntervalUnit": "HOURS",
            "Times" : ["17:30"]
        },
        "RetainRule":{
            "Count" : 3
        },
        "DeprecateRule":{
            "Count" : 2
        },
        "CrossRegionCopyRules": [{
            "TargetRegion": "us-east-1",
            "Encrypted": true,
            "RetainRule":{
                "IntervalUnit": "DAYS",
                "Interval": 2
            },
            "DeprecateRule":{
                "IntervalUnit": "DAYS",
                "Interval": 1
            },
            "CopyTags": true
        }]
    }]
}
```

------

## Considerazioni sulle policy del ciclo di vita delle AMI
<a name="ami-considerations"></a>

Alla creazione delle policy sul ciclo di vita delle AMI si applicano le seguenti **considerazioni generali**:
+ Le policy del ciclo di vita delle AMI riguardano solo le istanze che si trovano nella stessa regione della policy.
+ La prima operazione di creazione della AMI inizia entro un'ora dall'orario di inizio specificato. Le successive operazioni di creazione delle AMI iniziano entro un'ora dall'orario programmato.
+ Quando Amazon Data Lifecycle Manager annulla la registrazione di una AMI, elimina automaticamente anche i relativi backup degli snapshot.
+ I tag delle risorse di destinazione fanno distinzione tra maiuscole e minuscole.
+ Se rimuovi i tag di destinazione da un'istanza oggetto di una policy, Amazon Data Lifecycle Manager non gestisce più i tag esistenti AMIs nello standard; devi eliminarli manualmente se non sono più necessari.
+ Puoi creare più policy per supportare un'istanza. *Ad esempio, se un'istanza ha due tag, dove il tag *A* è l'obiettivo della policy A per creare un AMI ogni 12 ore e il tag *B* è l'obiettivo della policy *B* per creare un AMI ogni 24 ore, Amazon Data Lifecycle Manager crea in AMIs base alle pianificazioni per entrambe le policy.* In alternativa, è possibile ottenere lo stesso risultato creando un'unica policy con più pianificazioni. Ad esempio, è possibile creare un'unica policy indirizzata solo al tag *A* e specificare due pianificazioni: una ogni 12 ore e una ogni 24 ore.
+ I nuovi volumi collegati a un'istanza di destinazione dopo la creazione della policy vengono automaticamente inclusi nel backup alla successiva esecuzione della policy. Sono inclusi tutti i volumi collegati all'istanza al momento dell'esecuzione della policy.
+ Se si crea una policy con una pianificazione basata su cronologia personalizzata che è configurata per creare solo una AMI, la policy non annullerà automaticamente la registrazione dell'AMI quando viene raggiunta la soglia di conservazione. Se non è più necessaria, occorre annullare manualmente la registrazione di un'AMI.
+ Se crei una policy basata sull'età in cui il periodo di conservazione è più breve della frequenza di creazione, Sistema di gestione del ciclo di vita dei dati Amazon conserverà sempre l'ultima AMI fino alla creazione di quella successiva. Ad esempio, se una policy basata sull'età crea un'AMI ogni mese con un periodo di conservazione di sette giorni, Sistema di gestione del ciclo di vita dei dati Amazon conserverà ogni AMI per un mese anche se il periodo di conservazione è di sette giorni.
+ Per le policy basate sul conteggio, Amazon Data Lifecycle Manager crea AMIs sempre in base alla frequenza di creazione prima di tentare di annullare la registrazione dell'AMI più vecchia in base alla politica di conservazione.
+ Possono essere necessarie diverse ore per annullare correttamente la registrazione di un'AMI ed eliminare gli snapshot di supporto associati. Se Amazon Data Lifecycle Manager crea l'AMI successivo prima che l'AMI creato in precedenza venga annullata con successo, puoi conservarne temporaneamente un numero superiore al numero AMIs di conservazione. 

Le considerazioni seguenti si applicano alla **terminazione delle istanze di destinazione di una policy:**
+ Se interrompi un'istanza presa di mira da una policy con un programma di conservazione basato sul conteggio, la policy non gestisce più l'istanza precedentemente creata dall'istanza AMIs terminata. È necessario annullarle manualmente in precedenza AMIs se non sono più necessarie.
+ Se si interrompe un'istanza oggetto di una policy con una pianificazione di conservazione basata sull'età, la policy continua ad annullare la registrazione AMIs delle istanze precedentemente create dall'istanza terminata secondo la pianificazione definita, fino all'ultima AMI, ma non inclusa. Se non è più necessaria, occorre annullare manualmente la registrazione dell'ultima AMI.

Alle policy per l'AMI e alla **definizione come obsoleta dell'AMI** si applicano le considerazioni seguenti:
+ Se si aumenta il numero di obsoleti AMI per una pianificazione con conservazione basata sul conteggio, la modifica viene applicata a tutto AMIs (esistente e nuovo) creato dalla pianificazione.
+ Se si aumenta il periodo di obsolescenza dell'AMI per una pianificazione con conservazione basata sull'età, la modifica viene applicata solo ai nuovi. AMIs Gli esistenti non sono interessati. AMIs 
+ Se rimuovi la regola di deprecazione AMI da una pianificazione, Amazon Data Lifecycle Manager non annullerà la AMIs deprecazione per quelli precedentemente obsoleti in base a quella pianificazione.
+ Se riduci il numero o il periodo di deprecazione dell'AMI per una pianificazione, Amazon Data Lifecycle Manager non annullerà la AMIs deprecazione per quelli precedentemente obsoleti in base a quella pianificazione.
+ Se rendi manualmente obsoleta un'AMI creata da una policy AMI, Amazon Data Lifecycle Manager non sovrascriverà la definizione come obsoleta.
+ Se annulli manualmente la definizione come obsoleta per un'AMI precedentemente resa obsoleta da una policy AMI, Amazon Data Lifecycle Manager non sovrascriverà l'annullamento.
+ Se un'AMI viene creata da più pianificazioni in conflitto e una o più di queste pianificazioni non presentano una regola di definizione come obsoleta dell'AMI, Amazon Data Lifecycle Manager non renderà obsoleta tale AMI.
+ Se un'AMI viene creata da più pianificazioni in conflitto e tutte queste pianificazioni presentano una regola di definizione come obsoleta dell'AMI, Amazon Data Lifecycle Manager userà la regola di definizione come obsoleta con la data più recente.

Le seguenti considerazioni si applicano alle policy AMI e al [Recycle](recycle-bin.md) Bin:
+ Se il Sistema di gestione del ciclo di vita dei dati Amazon annulla la registrazione di un'AMI inviandola in seguito al Cestino quando viene raggiunta la soglia di conservazione della policy e si ripristina manualmente l'AMI dal Cestino, è necessario annullare manualmente la registrazione dell'AMI quando non è più necessaria. Sistema di gestione del ciclo di vita dei dati Amazon non gestirà più l'AMI.
+ Se annulli manualmente la registrazione di un'AMI creata da una policy e tale AMI si trova nel Cestino quando viene raggiunta la soglia di conservazione della policy, Sistema di gestione del ciclo di vita dei dati Amazon non annullerà la registrazione. Amazon Data Lifecycle Manager non gestisce i dati AMIs mentre si trovano nel Cestino.

  Se l'AMI viene ripristinata dal Cestino prima che venga raggiunta la soglia di conservazione della policy, Sistema di gestione del ciclo di vita dei dati Amazon annullerà la registrazione dell'AMI al raggiungimento di tale soglia.

  Se l'AMI viene ripristinata dal Cestino dopo aver raggiunto la soglia di conservazione della policy, Sistema di gestione del ciclo di vita dei dati Amazon non annullerà più la registrazione dell'AMI. Devi eliminarla manualmente quando non è più necessaria.

Le considerazioni seguenti si applicano alle policy AMI in stato **errore**:
+ Per le politiche con piani di conservazione basati sull'età, AMIs che scadono mentre la policy è in vigore, vengono mantenute a tempo indeterminato. `error` È necessario annullare la registrazione manualmente. AMIs Quando riattivi la policy, Amazon Data Lifecycle Manager riprende l'annullamento della registrazione allo scadere AMIs dei periodi di conservazione.
+ Per le politiche con piani di conservazione basati sul conteggio, la policy interrompe la creazione e la cancellazione della registrazione mentre è in vigore. AMIs `error` Quando riattivi la policy, Amazon Data Lifecycle Manager riprende la AMIs creazione e riprende l'annullamento della registrazione non appena viene raggiunta la soglia di conservazione AMIs .

Le seguenti considerazioni si applicano alle politiche e alla **[ AMIsdisabilitazione](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/disable-an-ami.html)** delle AMI:
+ Se disabiliti un'AMI creata da Sistema di gestione del ciclo di vita dei dati Amazon e tale AMI rimane disabilitata quando viene raggiunta la soglia di conservazione, Sistema di gestione del ciclo di vita dei dati Amazon annullerà la registrazione dell'AMI ed eliminerà gli snapshot associati.
+ Se disabiliti un'AMI creata da Sistema di gestione del ciclo di vita dei dati Amazon, archivi manualmente gli snapshot associati e tali snapshot vengono archiviati quando viene raggiunta la soglia di conservazione, Sistema di gestione del ciclo di vita dei dati Amazon non eliminerà tali snapshot e non li gestirà più.

La seguente considerazione si applica alle politiche AMI e alla protezione dalla **[cancellazione dell'AMI:](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/deregister-ami.html#ami-deregistration-protection)**
+ Se abiliti manualmente la protezione dall'annullamento della registrazione per un'AMI creata da Amazon Data Lifecycle Manager ed è ancora abilitata quando viene raggiunta la soglia di conservazione dell'AMI, Amazon Data Lifecycle Manager non gestisce più quell'AMI. È necessario annullare manualmente la registrazione dell'AMI ed eliminare le relative istantanee sottostanti se non è più necessaria.

## Risorse aggiuntive
<a name="ami-additional-resources"></a>

Per ulteriori informazioni, consulta il blog [Automating Amazon EBS snapshot and AMI management using Amazon Data AWS Lifecycle Manager storage](https://aws.amazon.com/blogs/storage/automating-amazon-ebs-snapshot-and-ami-management-using-amazon-dlm/).

# Automatizza le copie degli snapshot su più account con Data Lifecycle Manager
<a name="event-policy"></a>

L'automatizzazione delle copie degli snapshot tra account consente di copiare gli snapshot Amazon EBS in regioni specifiche in un account isolato e crittografarli con una chiave di crittografia. Questo consente di proteggersi dalla perdita di dati in caso di compromissione dell'account.

L'automatizzazione delle copie degli snapshot tra account coinvolge due account:
+ **Account di origine** — L'account di origine è l'account che crea e condivide gli snapshot con l'account di destinazione. In questo account, devi creare una politica di snapshot EBS che crei istantanee a intervalli prestabiliti e poi le condivida con altri account. AWS 
+ **Account di destinazione** — L'account di destinazione è l'account con cui vengono condivisi gli snapshot, nonché quello che crea copie degli snapshot condivisi. In questo account è necessario creare una policy degli eventi di copia tra account che consenta di copiare automaticamente gli snapshot condivisi con esso da uno o più account di origine specificati.

**Nota**  
Sia la policy EBS snapshot dell'account di origine che la policy relativa agli eventi di copia tra account di destinazione devono essere create nella stessa regione. AWS L'account di destinazione può quindi copiare le istantanee in diverse regioni di destinazione, se necessario.

**Topics**
+ [Creazione di policy di copia degli snapshot tra account](#create-cac-policy)
+ [Specificare filtri per la descrizione degli snapshot](#snapshot-descr-filters)
+ [Considerazioni sulle policy di copia degli snapshot tra account](#event-policy-considerations)
+ [Risorse aggiuntive](#event-additional-resources)

## Creazione di policy di copia degli snapshot tra account
<a name="create-cac-policy"></a>

Per preparare gli account di origine e di destinazione per la copia degli snapshot tra account, è necessario eseguire le seguenti operazioni:

**Topics**

### Passaggio 1: Creare la policy per gli snapshot EBS (*account di origine*)
<a name="create-snapshot-policy"></a>

Nell'account di origine, creare una policy per gli snapshot EBS che crei gli snapshot e li condivida con gli account di destinazione richiesti.

Quando crei la policy, assicurati di abilitare la condivisione tra account e di specificare gli AWS account di destinazione con cui condividere le istantanee. Si tratta degli account con cui verranno condivisi gli snapshot. Se si condividono snapshot crittografati, è necessario concedere agli account di destinazione selezionati l'autorizzazione per utilizzare la Chiave KMS usata per crittografare il volume di origine. Per ulteriori informazioni, consulta [Passaggio 2: condividere il chiave gestita dal cliente (*account di origine*)](#share-cmk).

**Nota**  
Crea questa politica nella stessa AWS regione in cui creerai la politica sugli eventi di copia su più account dell'account di destinazione nella Fase 3. Affinché la condivisione di istantanee tra account funzioni correttamente, entrambe le politiche devono trovarsi nella stessa regione.
È possibile condividere solo snapshot non crittografati o crittografati utilizzando una chiave gestita dal cliente. Non è possibile condividere snapshot crittografati con la Chiave KMS di crittografia EBS predefinita. Se si condividono snapshot crittografati, è necessario condividere con gli account di destinazione anche la Chiave KMS utilizzata per crittografare il volume di origine. Per ulteriori informazioni, consultare [Consentire agli utenti in altri account di utilizzare una chiave KMS](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

Per ulteriori informazioni sulla creazione di una policy per gli snapshot EBS, consulta [Crea policy personalizzate di Amazon Data Lifecycle Manager per gli snapshot EBS](snapshot-ami-policy.md).

Utilizzare uno dei metodi descritti di seguito per creare la policy per gli snapshot EBS.

### Passaggio 2: condividere il chiave gestita dal cliente (*account di origine*)
<a name="share-cmk"></a>

Se si condividono snapshot crittografati, è necessario concedere al ruolo IAM e agli account AWS di destinazione (selezionati nella fase precedente) le autorizzazioni per utilizzare la chiave gestita dal cliente usata per crittografare il volume di origine.

**Nota**  
Esegui questo passaggio solo stai condividendo snapshot crittografati. Se si condividono snapshot non crittografati, ignorare questo passaggio.

------
#### [ Console ]

****

1. [Apri la AWS KMS console in /kms. https://console.aws.amazon.com](https://console.aws.amazon.com/kms)

1. Per modificare il Regione AWS, usa il selettore della regione nell'angolo in alto a destra della pagina.

1. Nel pannello di navigazione scegliere **Customer managed keys (Chiavi gestite dal cliente)** e selezionare la chiave KMS da condividere con gli account di destinazione.

   Prendere nota dell'ARN delle Chiave KMS (servirà in seguito).

1. Nella scheda **Key policy (Policy chiave)** scorrere verso il basso fino alla sezione **Key users (Utenti chiave)**. Scegliere **Add (Aggiungi)**, immettere il nome del ruolo IAM selezionato nel passaggio precedente, quindi scegliere **Add (Aggiungi)**.

1. Nella scheda **Policy delle chiavi** scorrere verso il basso fino alla sezione **Altri account AWS **. Scegli **Aggiungi altri AWS account**, quindi aggiungi tutti gli AWS account di destinazione con cui hai scelto di condividere le istantanee nel passaggio precedente.

1. Scegli **Save changes** (Salva modifiche).

------
#### [ Command line ]

Usa il [get-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/get-key-policy.html)comando per recuperare la politica chiave attualmente allegata alla chiave KMS.

Ad esempio, il comando seguente recupera la policy chiave per una Chiave KMS con ID `9d5e2b3d-e410-4a27-a958-19e220d83a1e` e la scrive in un file denominato `snapshotKey.json`.

```
$ aws kms get-key-policy \
    --policy-name default \
    --key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e \
    --query Policy \
    --output text > snapshotKey.json
```

Aprire la policy chiave utilizzando l'editor di testo preferito. Aggiungi l'ARN del ruolo IAM che hai specificato quando hai creato la policy di snapshot e gli account ARNs di destinazione con cui condividere la chiave KMS.

Ad esempio, nella policy seguente è stato aggiunto l'ARN del ruolo IAM predefinito e l'ARN dell'account root per l'account di destinazione `222222222222.`

**Suggerimento**  
Per seguire il principio del privilegio minimo, non consentire l'accesso completo a `kms:CreateGrant`. Utilizza invece la chiave `kms:GrantIsForAWSResource` condition per consentire all'utente di creare sovvenzioni sulla chiave KMS solo quando la concessione viene creata per conto dell'utente da un AWS servizio, come mostrato nell'esempio seguente.

```
{
    "Sid" : "Allow use of the key",
    "Effect" : "Allow",
    "Principal" : {
        "AWS" : [
            "arn:aws:iam::111111111111:role/service-role/AWSDataLifecycleManagerDefaultRole",
            "arn:aws:iam::222222222222:root"
        ]
    },
    "Action" : [ 
        "kms:Encrypt", 
        "kms:Decrypt", 
        "kms:ReEncrypt*", 
        "kms:GenerateDataKey*", 
        "kms:DescribeKey" 
    ],
    "Resource" : "*"
}, 
{
    "Sid" : "Allow attachment of persistent resources",
    "Effect" : "Allow",
    "Principal" : {
        "AWS" : [
            "arn:aws:iam::111111111111:role/service-role/AWSDataLifecycleManagerDefaultRole",
            "arn:aws:iam::222222222222:root"
        ]
    },
    "Action" : [ 
        "kms:CreateGrant", 
        "kms:ListGrants", 
        "kms:RevokeGrant"
    ],
    "Resource" : "*",
    "Condition" : {
        "Bool" : {
          "kms:GrantIsForAWSResource" : "true"
        }
    }
}
```

Salva e chiudi il file. Quindi usa il [put-key-policy](https://docs.aws.amazon.com/cli/latest/reference/kms/put-key-policy.html)comando per allegare la politica delle chiavi aggiornata alla chiave KMS. 



```
$ aws kms put-key-policy \
    --policy-name default \
    --key-id 9d5e2b3d-e410-4a27-a958-19e220d83a1e \
    --policy file://snapshotKey.json
```

------

### Passaggio 3: creare policy degli eventi di copia tra account (*account di destinazione*)
<a name="cac-policy"></a>

Nell'account di destinazione è necessario creare una policy per gli eventi di copia tra account, che copierà automaticamente gli snapshot condivisi dagli account di origine richiesti.

Questa policy verrà eseguita solo nell'account di destinazione, quando uno degli account di origine specificati condivide lo snapshot con l'account.

**Nota**  
Crea questa politica nella stessa AWS regione della politica di snapshot EBS dell'account di origine creata nel passaggio 1. Affinché la condivisione di istantanee tra account funzioni correttamente, entrambe le politiche devono trovarsi nella stessa regione. È quindi possibile configurare questa politica per copiare le istantanee in diverse regioni di destinazione, se necessario.

Utilizzare uno dei metodi seguenti per creare la policy degli eventi di copia tra account.

------
#### [ Console ]

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, scegliere **Elastic Block Store**, **Lifecycle Manager**, quindi selezionare **Create lifecycle policy (Crea policy del ciclo di vita)**.

1. Nella schermata **Seleziona il tipo di policy**, seleziona **Policy di eventi di copia tra account** e quindi **Successivo**.

1. In **Descrizione** inserisci una breve descrizione della policy.

1. Per **Tag di policy**, aggiungi i tag da applicare alla policy del ciclo di vita. Puoi utilizzare i tag per identificare e categorizzare le policy.

1. Nella sezione **Impostazioni eventi**, definisci l'evento di condivisione snapshot che causerà l'esecuzione della policy. Esegui questa operazione:

   1. Per **Condivisione degli account**, specifica gli AWS account di origine da cui desideri copiare le istantanee condivise. **Scegli **Aggiungi account**, inserisci l'ID dell' AWS account a 12 cifre, quindi scegli Aggiungi.**

   1. In **Filtra per descrizione** immettere la descrizione richiesta dello snapshot utilizzando un'espressione regolare. Solo gli snapshot condivisi dagli account di origine specificati e con descrizioni corrispondenti al filtro specificato vengono copiati dalla policy. Per ulteriori informazioni, consulta [Specificare filtri per la descrizione degli snapshot](#snapshot-descr-filters).

1. In **Ruolo IAM**, seleziona il ruolo IAM che dispone delle autorizzazioni per eseguire le azioni di copia dello snapshot. Per utilizzare il ruolo predefinito fornito da Amazon Data Lifecycle Manager, seleziona **Ruolo predefinito**. In alternativa, per utilizzare un ruolo IAM personalizzato creato in precedenza, seleziona **Scegli un altro ruolo**, quindi seleziona il ruolo desiderato.

   Se si stanno copiando snapshot crittografati, è necessario concedere al ruolo IAM selezionato le autorizzazioni per utilizzare la Chiave KMS di crittografia utilizzata per crittografare il volume di origine. Analogamente, se si sta crittografando lo snapshot nella regione di destinazione utilizzando una Chiave KMS diversa, è necessario concedere al ruolo IAM l'autorizzazione per utilizzare la Chiave KMS di destinazione. Per ulteriori informazioni, consulta [Passaggio 4: consentire al ruolo IAM di utilizzare le Chiavi KMS richieste (*account di destinazione*)](#target_iam-role).

1. Nella sezione **Azione di copia**, definisci le azioni di copia snapshot che la policy deve eseguire quando viene attivata. La policy può copiare gli snapshot in un massimo di tre regioni. È necessario specificare una regola di copia separata per ogni regione di destinazione. Per ogni regola che desideri aggiungere, completa le seguenti operazioni:

   1. In **Name (Nome)** immettere un nome descrittivo per la configurazione.

   1. In **Target Region (Regione di destinazione)** selezionare la regione in cui copiare gli snapshot.

   1. In **Scadenza**, specifica per quanto tempo conservare le copie degli snapshot nella regione di destinazione dopo la creazione.

   1. Per crittografare la copia di snapshot, per **Crittografia**, seleziona **Abilita crittografia**. Se lo snapshot di origine è crittografato o se la crittografia è abilitata per impostazione predefinita per l'account, la copia dello snapshot viene sempre crittografata, anche se non abiliti la crittografia. Se lo snapshot di origine non è crittografato e la crittografia per impostazione predefinita non è abilitata per l'account, è possibile scegliere di attivare o disattivare la crittografia. Se si attiva la crittografia, ma non si specifica una Chiave KMS, gli snapshot vengono crittografati utilizzando la Chiave KMS di crittografia predefinita in ogni regione di destinazione. Se si specifica una Chiave KMS per la regione destinazione, è necessario disporre dell'accesso a Chiave KMS.

1. Per aggiungere ulteriori azioni di copia di snapshot, seleziona **Aggiungi nuove regioni**: .

1. **Policy status after creation (Stato della policy dopo la creazione)**: seleziona **Enable policy (Abilita policy)** per avviare l'esecuzione della policy all'ora successiva pianificata o **Disable policy (Disabilita policy)** per impedirne l'esecuzione. Se la policy non viene attivata ora, non inizierà a copiare gli snapshot finché non verrà attivata manualmente dopo la creazione.

1. Seleziona **Create Policy** (Crea policy).

------
#### [ Command line ]

Usa il [create-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-lifecycle-policy.html)comando per creare una politica. Per creare una policy per gli eventi di copia tra account, per `PolicyType` specificare `EVENT_BASED_POLICY`.

Ad esempio, il comando seguente crea una policy per gli eventi di copia tra account nell'account di destinazione `222222222222`. La policy copia gli snapshot condivisi dall'account di origine `111111111111`. La policy copia gli snapshot in `sa-east-1` e `eu-west-2`. Gli snapshot copiati in `sa-east-1` non vengono crittografati e sono conservati per 3 giorni. Gli snapshot copiati in `eu-west-2` vengono crittografati utilizzando la Chiave KMS `8af79514-350d-4c52-bac8-8985e84171c7` e sono conservati per 1 mese. La policy utilizza il ruolo IAM predefinito.

```
$ aws dlm create-lifecycle-policy \
    --description "Copy policy" \
    --state ENABLED \
    --execution-role-arn arn:aws:iam::222222222222:role/service-role/AWSDataLifecycleManagerDefaultRole \
    --policy-details file://policyDetails.json
```

Nell'esempio seguente viene mostrato il contenuto del file `policyDetails.json`.

```
{
    "PolicyType" : "EVENT_BASED_POLICY",
    "EventSource" : {
        "Type" : "MANAGED_CWE",
        "Parameters": {
            "EventType" : "shareSnapshot",
            "SnapshotOwner": ["111111111111"]
        }
    },
    "Actions" : [{
        "Name" :"Copy Snapshot to Sao Paulo and London",
        "CrossRegionCopy" : [{
            "Target" : "sa-east-1",
             "EncryptionConfiguration" : {
                 "Encrypted" : false
             },
             "RetainRule" : {
             "Interval" : 3,
            "IntervalUnit" : "DAYS"
            }
        },
        {
            "Target" : "eu-west-2",
            "EncryptionConfiguration" : {
                 "Encrypted" : true,
                 "CmkArn" : "arn:aws:kms:eu-west-2:222222222222:key/8af79514-350d-4c52-bac8-8985e84171c7"
            },
            "RetainRule" : {
                "Interval" : 1,
                "IntervalUnit" : "MONTHS"
            }
        }]
    }]
}
```

Se la richiesta ha esito positivo, il comando restituisce l'ID della policy appena creata. Di seguito è riportato un output di esempio.

```
{
    "PolicyId": "policy-9876543210abcdef0"
}
```

------

### Passaggio 4: consentire al ruolo IAM di utilizzare le Chiavi KMS richieste (*account di destinazione*)
<a name="target_iam-role"></a>

Se si stanno copiando snapshot crittografati, è necessario concedere al ruolo IAM (selezionato nel passaggio precedente) le autorizzazioni per utilizzare la chiave gestita dal cliente usata per crittografare il volume di origine.

**Nota**  
Eseguire questo passaggio solo se si stanno copiando snapshot crittografati. Se si stanno copiando snapshot non crittografati, ignorare questo passaggio.

Utilizzare uno dei metodi seguenti per aggiungere le policy richieste al ruolo IAM.

------
#### [ Console ]

****

1. Aprire la console IAM all'indirizzo [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/).

1. Nel riquadro di navigazione selezionare **Roles (Ruoli)**. Cercare e selezionare il ruolo IAM selezionato al momento della creazione della policy per gli eventi di copia tra account nel passaggio precedente. Se si sceglie di utilizzare il ruolo predefinito, al ruolo viene assegnato un nome **AWSDataLifecycleManagerDefaultRole**. 

1. Scegliere **Add inline policy (Aggiungi policy inline)** e quindi selezionare la scheda **JSON**.

1. Sostituire la policy esistente con quanto segue e specificare l'ARN della chiave KMS utilizzata per crittografare i volumi di origine e che è stata condivisa con l'account in questione dall'account di origine nel passaggio 2.
**Nota**  
Se si sta copiando da più account di origine, è necessario specificare la chiave ARN della chiave KMS corrispondente da ciascun account di origine.

   Nell'esempio seguente, la policy concede al ruolo IAM l'autorizzazione per l'utilizzo della Chiave KMS `1234abcd-12ab-34cd-56ef-1234567890ab`, che è stata condivisa dall'account di origine `111111111111`, e Chiave KMS `4567dcba-23ab-34cd-56ef-0987654321yz`, presente nell'account di destinazione `222222222222`.
**Suggerimento**  
Per seguire il principio del privilegio minimo, non consentire l'accesso completo a `kms:CreateGrant`. Utilizza invece la chiave `kms:GrantIsForAWSResource` condition per consentire all'utente di creare sovvenzioni sulla chiave KMS solo quando la concessione viene creata per conto dell'utente da un AWS servizio, come illustrato nell'esempio seguente.

------
#### [ JSON ]

****  

   ```
    {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "kms:RevokeGrant",
                   "kms:CreateGrant",
                   "kms:ListGrants"
               ],
               "Resource": [
                   "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                   "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz"		
               ],
               "Condition": {
                   "Bool": {
                       "kms:GrantIsForAWSResource": "true"
                   }
               }
           },
           {
               "Effect": "Allow",
               "Action": [
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:DescribeKey"
               ],
               "Resource": [
                   "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                   "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz"
               ]
           }
       ]
   }
   ```

------

1. Scegli **Review policy (Esamina policy)**.

1. In **Name (Nome)** immettere un nome descrittivo per la policy, quindi scegliere **Create policy (Crea policy)**.

------
#### [ Command line ]

Utilizzando l'editor di testo preferito, creare un nuovo file JSON denominato `policyDetails.json`. Aggiungere la policy esistente e specificare l'ARN della chiave KMS utilizzata per crittografare i volumi di origine e che è stata condivisa con te dall'account di origine nel passaggio 2.

**Nota**  
Se si sta copiando da più account di origine, è necessario specificare la chiave ARN della chiave KMS corrispondente da ciascun account di origine.

Nell'esempio seguente, la policy concede al ruolo IAM l'autorizzazione per l'utilizzo della Chiave KMS `1234abcd-12ab-34cd-56ef-1234567890ab`, che è stata condivisa dall'account di origine `111111111111`, e Chiave KMS `4567dcba-23ab-34cd-56ef-0987654321yz`, presente nell'account di destinazione `222222222222`.

**Suggerimento**  
Per seguire il principio del privilegio minimo, non consentire l'accesso completo a `kms:CreateGrant`. Utilizza invece la chiave di `kms:GrantIsForAWSResource` condizione per consentire all'utente di creare sovvenzioni sulla chiave KMS solo quando la concessione viene creata per conto dell'utente da un AWS servizio, come mostrato nell'esempio seguente.

------
#### [ JSON ]

****  

```
 {
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "kms:RevokeGrant",
                "kms:CreateGrant",
                "kms:ListGrants"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz"		
            ],
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": [
                "arn:aws:kms:us-east-1:111111111111:key/1234abcd-12ab-34cd-56ef-1234567890ab",
                "arn:aws:kms:us-east-1:222222222222:key/4567dcba-23ab-34cd-56ef-0987654321yz"
            ]
        }
    ]
}
```

------

Salva e chiudi il file. Quindi usa il [put-role-policy](https://docs.aws.amazon.com/cli/latest/reference/iam/put-role-policy.html)comando per aggiungere la policy al ruolo IAM.

Ad esempio

```
$ aws iam put-role-policy \
    --role-name AWSDataLifecycleManagerDefaultRole \
    --policy-name CopyPolicy \
    --policy-document file://AdminPolicy.json
```

------

## Specificare filtri per la descrizione degli snapshot
<a name="snapshot-descr-filters"></a>

Quando si crea una policy di copia degli snapshot nell'account di destinazione è necessario specificare un filtro per la descrizione dello snapshot. Il filtro per la descrizione dello snapshot consente di specificare un ulteriore livello di filtraggio, per controllare quali snapshot vengono copiati dalla policy. Ciò significa che uno snapshot viene copiato dalla policy solo se è condiviso da uno degli account di origine specificati e dispone di una descrizione corrispondente al filtro specificato. In altre parole, se uno snapshot è condiviso da uno degli account del corso specificati, ma non dispone di una descrizione corrispondente al filtro specificato, non viene copiato dalla policy.

La descrizione del filtro snapshot deve essere specificata utilizzando un'espressione regolare. Si tratta di un campo obbligatorio quando si creano policy per gli eventi di copia tra account utilizzando la console e la riga di comando. Di seguito sono riportati esempi di espressioni regolari che possono essere utilizzate:
+ `.*` — Questo filtro soddisfa tutte le descrizioni degli snapshot. Se si utilizza questa espressione, la policy copierà tutti gli snapshot condivisi da uno degli account di origine specificati.
+ `Created for policy: policy-0123456789abcdef0.*` — Questo filtro corrisponde solo agli snapshot creati da una policy con ID `policy-0123456789abcdef0`. Se si utilizza un'espressione simile a questa, solo gli snapshot condivisi con il proprio account da uno degli account di origine specificati e creati da una policy con l'ID specificato vengono copiati dalla policy.
+ `.*production.*` — Questo filtro corrisponde a qualsiasi snapshot contenente la parola `production` in qualsiasi punto della descrizione. Se si utilizza questa espressione, la policy copierà tutti gli snapshot condivisi da uno degli account di origine specificati e con il testo specificato nella descrizione.

## Considerazioni sulle policy di copia degli snapshot tra account
<a name="event-policy-considerations"></a>

Le seguenti considerazioni si applicano alle policy degli eventi di copia tra account:
+ La policy EBS snapshot dell'account di origine e la policy relativa agli eventi di copia tra account di destinazione devono essere create nella stessa regione. AWS Dopo aver condiviso l'istantanea, la politica dell'account di destinazione può copiare l'istantanea in diverse regioni di destinazione, come specificato nelle azioni di copia.
+ È possibile copiare solo snapshot non crittografati o crittografati utilizzando una chiave gestita dal cliente.
+ È possibile creare una policy degli eventi di copia tra account che consenta di copiare snapshot condivisi all'esterno di Amazon Data Lifecycle Manager.
+ Se si desidera crittografare gli snapshot nell'account di destinazione, il ruolo IAM selezionato per la policy degli eventi di copia tra account deve disporre dell'autorizzazione per utilizzare la Chiave KMS richiesta.

## Risorse aggiuntive
<a name="event-additional-resources"></a>

Per ulteriori informazioni, consulta il blog [Automating copying encrypted Amazon EBS snapshot su AWS](https://aws.amazon.com/blogs/storage/automating-copying-encrypted-amazon-ebs-snapshots-across-aws-accounts/) account storage. AWS 

# Modifica le policy di Amazon Data Lifecycle Manager
<a name="modify"></a>

Tieni presente quanto segue quando modifichi le policy di Amazon Data Lifecycle Manager:
+ Se si modifica una AMI o uno snapshot rimuovendo i tag di destinazione, i volumi o le istanze con tali tag non saranno più gestiti dalla policy.
+ Se modifichi il nome di una pianificazione, le istantanee o quelle AMIs create con il vecchio nome di pianificazione non vengono più gestite dalla policy.
+ Se si modifica una pianificazione di conservazione basata sull'età per utilizzare un nuovo intervallo di tempo, il nuovo intervallo viene utilizzato solo per le nuove istantanee o creato dopo la modifica. AMIs La nuova pianificazione non influisce sulla pianificazione di conservazione delle istantanee o delle istantanee create prima della modifica. AMIs 
+ Dopo la creazione non è più possibile modificare la pianificazione di conservazione di una policy passando da una policy basata sul conteggio a una policy basata sul tempo. Per apportare questa modifica, occorre creare una nuova policy.
+ Se si disabilita una policy con una pianificazione di conservazione basata sull'età, le istantanee o AMIs quelle impostate per scadere mentre la policy è disabilitata vengono conservate a tempo indeterminato. È necessario eliminare le istantanee o annullarne la registrazione manualmente. AMIs Quando riattivi la policy, Amazon Data Lifecycle Manager riprende a eliminare gli snapshot o ad annullare la registrazione allo scadere dei periodi di conservazione. AMIs 
+ Se disabiliti una policy con una pianificazione di conservazione basata sul conteggio, la policy interrompe la creazione e l'eliminazione di snapshot o. AMIs Quando riattivi la policy, Amazon Data Lifecycle Manager riprende a creare istantanee AMIs e riprende a eliminarle o quando viene raggiunta la soglia di conservazione. AMIs 
+ Se disabiliti una policy che ha una policy abilitata all'archiviazione degli snapshot, gli snapshot presenti nel livello archivio al momento della disabilitazione della policy non vengono più gestiti da Amazon Data Lifecycle Manager. Devi eliminare manualmente gli snapshot che non sono più necessari.
+ Se abiliti l'archiviazione degli snapshot in base a una pianificazione basata sul conteggio, la regola di archiviazione si applica a tutti i nuovi snapshot creati e archiviati in base alla pianificazione, e si applica anche agli snapshot esistenti che sono stati creati e archiviati precedentemente in base alla pianificazione.
+ Se abiliti l'archiviazione degli snapshot in base all'età, la regola di archiviazione si applica solo ai nuovi snapshot creati dopo l'abilitazione dell'archiviazione degli snapshot. Gli snapshot esistenti creati prima dell'abilitazione dell'archiviazione degli snapshot continuano a essere eliminati dai rispettivi livelli archivio, in base alla pianificazione impostata al momento in cui tali snapshot sono stati creati e archiviati originariamente.
+ Se disabiliti l'archiviazione degli snapshot per una pianificazione basata sul conteggio, la pianificazione interrompe immediatamente l'archiviazione degli snapshot. Gli snapshot precedentemente archiviati in base alla pianificazione rimangono nel livello archivio e non verranno eliminati da Amazon Data Lifecycle Manager.
+ Se disabiliti l'archiviazione degli snapshot per una pianificazione basata sull'età, gli snapshot creati dalla policy e pianificati per l'archiviazione vengono eliminati definitivamente alla data e all'ora di archiviazione pianificate, come indicato dal tag di sistema `aws:dlm:expirationTime`.
+ Se disabiliti l'archiviazione degli snapshot per una pianificazione, la pianificazione interrompe immediatamente l'archiviazione degli snapshot. Gli snapshot precedentemente archiviati in base alla pianificazione rimangono nel livello archivio e non verranno eliminati da Amazon Data Lifecycle Manager.
+ Se modifichi il numero di conservazioni dell'archivio per una pianificazione basata sul conteggio, il nuovo numero di conservazioni include gli snapshot esistenti che sono stati archiviati precedentemente in base alla pianificazione.
+ Se modifichi il periodo di conservazione dell'archivio per una pianificazione basata sull'età, il nuovo periodo di conservazione si applica solo agli snapshot archiviati dopo la modifica della regola di conservazione.

Per modificare una policy del ciclo di vita, utilizzare una delle procedure descritte di seguito.

------
#### [ Console ]

**Per modificare una policy per il ciclo di vita dei dati**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, selezionare **Elastic Block Store (Elastic Block Store [EBS])**, **Lifecycle Manager**.

1. Selezionare una policy per il ciclo di vita dei dati dall'elenco.

1. Scegli **Azioni**, **Modifica policy del ciclo di vita**.

1. Modificare le impostazioni della policy in base alle esigenze. Ad esempio, è possibile modificare la pianificazione, aggiungere o rimuovere tag oppure abilitare o disabilitare la policy.

1. Scegli **Modifica policy**.

------
#### [ Command line ]

Usa il comando per modificare le informazioni in una politica del [update-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/update-lifecycle-policy.html)ciclo di vita. Per semplificare la sintassi, questo esempio fa riferimento a un file JSON, `policyDetailsUpdated.json`, che include i dettagli della policy.

```
aws dlm update-lifecycle-policy \
    --state DISABLED \
    --execution-role-arn arn:aws:iam::12345678910:role/AWSDataLifecycleManagerDefaultRole" \
    --policy-details file://policyDetailsUpdated.json
```

Di seguito è riportato un esempio del file `policyDetailsUpdated.json`.

```
{
   "ResourceTypes":[
      "VOLUME"
   ],
   "TargetTags":[
      {
         "Key": "costcenter",
         "Value": "120"
      }
   ],
   "Schedules":[
      {
         "Name": "DailySnapshots",
         "TagsToAdd": [
            {
               "Key": "type",
               "Value": "myDailySnapshot"
            }
         ],
         "CreateRule": {
            "Interval": 12,
            "IntervalUnit": "HOURS",
            "Times": [
               "15:00"
            ]
         },
         "RetainRule": {
            "Count" :5
         },
         "CopyTags": false 
      }
   ]
}
```

Per visualizzare la policy aggiornata, utilizzare il comando `get-lifecycle-policy`. È possibile notare che lo stato, il valore del tag, l'intervallo di snapshot e l'ora di avvio dello snapshot sono stati modificati.

------

# Eliminazione delle policy di Amazon Data Lifecycle Manager
<a name="delete"></a>

Tieni presente quanto segue quando elimini le policy di Amazon Data Lifecycle Manager:
+ Se elimini una policy, le istantanee o quelle AMIs create da tale policy non vengono eliminate automaticamente. Se le istantanee non sono più necessarie o AMIs è necessario eliminarle manualmente.
+ Se elimini una policy che ha una policy abilitata all'archiviazione degli snapshot, gli snapshot presenti nel livello archivio al momento dell'eliminazione della policy non vengono più gestiti da Amazon Data Lifecycle Manager. Devi eliminare manualmente gli snapshot che non sono più necessari.
+ Se elimini una policy con una pianificazione basata sull'età abilitata all'archiviazione, gli snapshot creati dalla policy e pianificati per l'archiviazione vengono eliminati definitivamente alla data e all'ora di archiviazione pianificate, come indicato dal tag di sistema `aws:dlm:expirationtime`.

Utilizzare una delle procedure seguenti per eliminare una policy del ciclo di vita.

------
#### [ Console ]

**Come eliminare una policy per il ciclo di vita dei dati**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel riquadro di navigazione, selezionare **Elastic Block Store (Elastic Block Store [EBS])**, **Lifecycle Manager**.

1. Selezionare una policy per il ciclo di vita dei dati dall'elenco.

1. Scegli **Azioni**, **Elimina policy del ciclo di vita**.

1. Quando viene richiesta la conferma, seleziona **Policy di eliminazione**.

------
#### [ Command line ]

Utilizzate il [delete-lifecycle-policy](https://docs.aws.amazon.com/cli/latest/reference/dlm/delete-lifecycle-policy.html)comando per eliminare una politica del ciclo di vita e liberare i tag di destinazione specificati nella politica per il riutilizzo. 

**Nota**  
È possibile eliminare solo gli snapshot creati da Amazon Data Lifecycle Manager.

```
aws dlm delete-lifecycle-policy --policy-id policy-0123456789abcdef0
```

------

La [Documentazione di riferimento dell'API di Amazon Data Lifecycle Manager](https://docs.aws.amazon.com/dlm/latest/APIReference/) fornisce descrizioni e sintassi di ogni operazione e tipo di dati disponibili nell'API di query Amazon Data Lifecycle Manager.

In alternativa, puoi utilizzare uno di questi AWS SDKs per accedere all'API in un modo personalizzato in base al linguaggio di programmazione o alla piattaforma che stai utilizzando. Per ulteriori informazioni, consulta [AWS SDKs](https://aws.amazon.com/developer/tools/).

# Controlla l'accesso ad Amazon Data Lifecycle Manager tramite IAM
<a name="dlm-prerequisites"></a>

L'accesso ad Amazon Data Lifecycle Manager richiede le apposite credenziali. Tali credenziali devono disporre delle autorizzazioni per accedere a AWS risorse, come istanze, volumi, istantanee e. AMIs

Le seguenti autorizzazioni IAM sono necessarie per utilizzare Amazon Data Lifecycle Manager.

**Nota**  
Le autorizzazioni `ec2:DescribeAvailabilityZones`, `ec2:DescribeRegions`, `kms:ListAliases` e `kms:DescribeKey` sono richieste solo per gli utenti della console. Se l'accesso alla console non è richiesto, puoi rimuovere le autorizzazioni.
Il formato ARN del *AWSDataLifecycleManagerDefaultRole*ruolo varia a seconda che sia stato creato utilizzando la console o il. AWS CLI Se il ruolo è stato creato utilizzando la console, il formato ARN è `arn:aws:iam::account_id:role/service-role/AWSDataLifecycleManagerDefaultRole`. Se il ruolo è stato creato utilizzando il AWS CLI, il formato ARN è. `arn:aws:iam::account_id:role/AWSDataLifecycleManagerDefaultRole`

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "dlm:*",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": [
                "arn:aws:iam::111122223333:role/AWSDataLifecycleManagerDefaultRole",
                "arn:aws:iam::111122223333:role/AWSDataLifecycleManagerDefaultRoleForAMIManagement",
                "arn:aws:iam::111122223333:role/service-role/AWSDataLifecycleManagerDefaultRole",
                "arn:aws:iam::111122223333:role/service-role/AWSDataLifecycleManagerDefaultRoleForAMIManagement"
            ]
        },
        {
            "Effect": "Allow",
            "Action": "iam:ListRoles",
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeAvailabilityZones",
                "ec2:DescribeRegions",
                "kms:ListAliases",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        }
    ]
}
```

------

**Autorizzazioni per la crittografia**

Quando lavori con Amazon Data Lifecycle Manager e risorse crittografate, considera quanto segue.
+ Se il volume di origine è crittografato, assicurati che i ruoli predefiniti di Amazon Data Lifecycle Manager (**AWSDataLifecycleManagerDefaultRole**e **AWSDataLifecycleManagerDefaultRoleForAMIManagement**) siano autorizzati a utilizzare le chiavi KMS utilizzate per crittografare il volume.
+ Se abiliti la **copia interregionale** per istantanee non crittografate o AMIs supportata da istantanee non crittografate e scegli di abilitare la crittografia nella regione di destinazione, assicurati che i ruoli predefiniti siano autorizzati a utilizzare la chiave KMS necessaria per eseguire la crittografia nella regione di destinazione.
+ Se abiliti la **copia interregionale** per le istantanee crittografate o AMIs supportata da istantanee crittografate, assicurati che i ruoli predefiniti siano autorizzati a utilizzare sia le chiavi KMS di origine che quelle di destinazione. 
+ Se abiliti l'archiviazione degli snapshot per gli snapshot crittografati, assicurati che il **AWSDataLifecycleManagerDefaultRole**ruolo predefinito di Amazon Data Lifecycle Manager (sia autorizzato a utilizzare la chiave KMS utilizzata per crittografare lo snapshot).

Per ulteriori informazioni, consultare [Consentire agli utenti in altri account di utilizzare una chiave KMS](https://docs.aws.amazon.com//kms/latest/developerguide/key-policy-modifying-external-accounts.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

Per ulteriori informazioni, consulta [Modifica delle autorizzazioni per un utente IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users_change-permissions.html) nella *Guida per l'utente IAM*.

# AWS politiche gestite per Amazon Data Lifecycle Manager
<a name="managed-policies"></a>

Una policy AWS gestita è una policy autonoma creata e amministrata da. AWS AWS le politiche gestite sono progettate per fornire autorizzazioni per molti casi d'uso comuni. AWS le politiche gestite consentono di assegnare in modo più efficiente le autorizzazioni appropriate a utenti, gruppi e ruoli rispetto a quando si devono scrivere le politiche autonomamente.

Tuttavia, non è possibile modificare le autorizzazioni definite nelle AWS politiche gestite. AWS aggiorna occasionalmente le autorizzazioni definite in una politica AWS gestita. In questi casi l'aggiornamento interessa tutte le entità principali (utenti, gruppi e ruoli) a cui è collegata la policy.

Amazon Data Lifecycle Manager fornisce policy AWS gestite per casi d'uso comuni. Queste policy consentono di definire le autorizzazioni appropriate e di controllare l'accesso alle risorse. Le policy AWS gestite fornite da Amazon Data Lifecycle Manager sono progettate per essere associate a ruoli trasferiti ad Amazon Data Lifecycle Manager.

**Topics**
+ [AWSDataLifecycleManagerServiceRole](#AWSDataLifecycleManagerServiceRole)
+ [AWSDataLifecycleManagerServiceRoleForAMIManagement](#AWSDataLifecycleManagerServiceRoleForAMIManagement)
+ [AWSDataLifecycleManagerSSMFullAccesso](#AWSDataLifecycleManagerSSMFullAccess)
+ [AWS aggiornamenti delle politiche gestiti](#policy-update)

## AWSDataLifecycleManagerServiceRole
<a name="AWSDataLifecycleManagerServiceRole"></a>

La **AWSDataLifecycleManagerServiceRole**policy fornisce le autorizzazioni appropriate ad Amazon Data Lifecycle Manager per creare e gestire le policy di snapshot di Amazon EBS e le policy degli eventi di copia tra account.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateSnapshot",
                "ec2:CreateSnapshots",
                "ec2:DeleteSnapshot",
                "ec2:DescribeInstances",
                "ec2:DescribeVolumes",
                "ec2:DescribeSnapshots",
                "ec2:EnableFastSnapshotRestores",
                "ec2:DescribeFastSnapshotRestores",
                "ec2:DisableFastSnapshotRestores",
                "ec2:CopySnapshot",
                "ec2:ModifySnapshotAttribute",
                "ec2:DescribeSnapshotAttribute",
                "ec2:ModifySnapshotTier",
                "ec2:DescribeSnapshotTierStatus",
                "ec2:DescribeAvailabilityZones"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:CreateTags"
            ],
            "Resource": "arn:aws:ec2:*::snapshot/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "events:PutRule",
                "events:DeleteRule",
                "events:DescribeRule",
                "events:EnableRule",
                "events:DisableRule",
                "events:ListTargetsByRule",
                "events:PutTargets",
                "events:RemoveTargets"
            ],
            "Resource": "arn:aws:events:*:*:rule/AwsDataLifecycleRule.managed-cwe.*"
        }
    ]
}
```

------

## AWSDataLifecycleManagerServiceRoleForAMIManagement
<a name="AWSDataLifecycleManagerServiceRoleForAMIManagement"></a>

La **AWSDataLifecycleManagerServiceRoleForAMIManagement**policy fornisce le autorizzazioni appropriate ad Amazon Data Lifecycle Manager per creare e gestire policy AMI supportate da Amazon EBS.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:CreateTags",
            "Resource": [
                "arn:aws:ec2:*::snapshot/*",
                "arn:aws:ec2:*::image/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeImages",
                "ec2:DescribeInstances",
                "ec2:DescribeImageAttribute",
                "ec2:DescribeVolumes",
                "ec2:DescribeSnapshots"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": "ec2:DeleteSnapshot",
            "Resource": "arn:aws:ec2:*::snapshot/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:ResetImageAttribute",
                "ec2:DeregisterImage",
                "ec2:CreateImage",
                "ec2:CopyImage",
                "ec2:ModifyImageAttribute"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2:EnableImageDeprecation",
                "ec2:DisableImageDeprecation"
            ],
            "Resource": "arn:aws:ec2:*::image/*"
        }
    ]
}
```

------

## AWSDataLifecycleManagerSSMFullAccesso
<a name="AWSDataLifecycleManagerSSMFullAccess"></a>

Fornisce ad Amazon Data Lifecycle Manager l'autorizzazione a eseguire le azioni di Systems Manager necessarie per eseguire gli script pre e post su tutte le istanze Amazon EC2.

**Importante**  
La policy utilizza la chiave di condizione `aws:ResourceTag` per limitare l'accesso a documenti SSM specifici quando si utilizzano script pre e post. Per consentire ad Amazon Data Lifecycle Manager di accedere ai documenti SSM, devi assicurarti che i tuoi documenti SSM siano etichettati con `DLMScriptsAccess:true`. 

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowSSMReadOnlyAccess",
            "Effect": "Allow",
            "Action": [
                "ssm:GetCommandInvocation",
                "ssm:ListCommands",
                "ssm:DescribeInstanceInformation"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AllowTaggedSSMDocumentsOnly",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand",
                "ssm:DescribeDocument",
                "ssm:GetDocument"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:document/*"
            ],
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/DLMScriptsAccess": "true"
                }
            }
        },
        {
            "Sid": "AllowSpecificAWSOwnedSSMDocuments",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand",
                "ssm:DescribeDocument",
                "ssm:GetDocument"
            ],
            "Resource": [
                "arn:aws:ssm:*:*:document/AWSEC2-CreateVssSnapshot",
                "arn:aws:ssm:*:*:document/AWSSystemsManagerSAP-CreateDLMSnapshotForSAPHANA"
            ]
        },
        {
            "Sid": "AllowAllEC2Instances",
            "Effect": "Allow",
            "Action": [
                "ssm:SendCommand"
            ],
            "Resource": [
                "arn:aws:ec2:*:*:instance/*"
            ]
        }
    ]
}
```

------

## AWS aggiornamenti delle politiche gestiti
<a name="policy-update"></a>

AWS i servizi mantengono e aggiornano le politiche AWS gestite. Non è possibile modificare le autorizzazioni nelle politiche AWS gestite. I servizi aggiungono occasionalmente autorizzazioni aggiuntive a una policy AWS gestita per supportare nuove funzionalità. Questo tipo di aggiornamento interessa tutte le identità (utenti, gruppi e ruoli) a cui è collegata la policy. È più probabile che i servizi aggiornino una politica AWS gestita quando viene lanciata una nuova funzionalità o quando diventano disponibili nuove operazioni. I servizi non rimuovono le autorizzazioni da una policy AWS gestita, quindi gli aggiornamenti delle policy non comprometteranno le autorizzazioni esistenti.

La tabella seguente fornisce dettagli sugli aggiornamenti delle policy AWS gestite per Amazon Data Lifecycle Manager da quando questo servizio ha iniziato a tracciare queste modifiche. Per gli avvisi automatici sulle modifiche apportate a questa pagina, iscriversi al feed RSS alla pagina [Cronologia dei documenti per la Amazon EBS User Guide](doc-history.md).


| Modifica | Descrizione | Data | 
| --- | --- | --- | 
| AWSDataLifecycleManagerServiceRole— Sono state aggiornate le autorizzazioni delle policy. | Amazon Data Lifecycle Manager ha aggiunto l'ec2:DescribeAvailabilityZonesazione per concedere alle policy di snapshot l'autorizzazione a ottenere informazioni sulle Local Zones. | 16 dicembre 2024 | 
| AWSDataLifecycleManagerSSMFullAccesso: sono state aggiornate le autorizzazioni delle policy. | È stata aggiornata la policy per supportare snapshot coerenti con l'applicazione per SAP HANA utilizzando il documento SSM AWSSystemsManagerSAP-CreateDLMSnapshotForSAPHANA. | 17 novembre 2023 | 
| AWSDataLifecycleManagerSSMFullAccesso: è stata aggiunta una nuova politica AWS gestita. | Amazon Data Lifecycle Manager ha aggiunto la policy gestita di Access. AWSData LifecycleManager SSMFull AWS  | 7 novembre 2023 | 
| AWSDataLifecycleManagerServiceRole— Sono state aggiunte le autorizzazioni per supportare l'archiviazione degli snapshot. | Amazon Data Lifecycle Manager ha aggiunto le operazioni ec2:ModifySnapshotTier e ec2:DescribeSnapshotTierStatus per concedere alle policy degli snapshot l'autorizzazione per l'archiviazione degli snapshot e il controllo dello stato dell'archivio per gli snapshot. | 30 settembre 2022 | 
| AWSDataLifecycleManagerServiceRoleForAMIManagement— Sono state aggiunte le autorizzazioni per supportare la deprecazione AMI. | Amazon Data Lifecycle Manager ha aggiunto le operazioni ec2:EnableImageDeprecation e ec2:DisableImageDeprecation per concedere alle policy delle AMI EBS-backed l'autorizzazione per abilitare e disabilitare gli elementi obsoleti delle AMI. | 23 agosto 2021 | 
| Amazon Data Lifecycle Manager ha iniziato a tenere traccia delle modifiche | Amazon Data Lifecycle Manager ha iniziato a tracciare le modifiche per le sue policy gestite. AWS  | 23 agosto 2021 | 

# Ruoli del servizio IAM per Amazon Data Lifecycle Manager
<a name="service-role"></a>

Un ruolo AWS Identity and Access Management (IAM) è simile a quello di un utente, in quanto è un' AWS identità con politiche di autorizzazione che determinano ciò che l'identità può e non può fare. AWS Tuttavia, invece di essere associato in modo univoco a una persona, un ruolo è destinato a essere assunto da chiunque. Un ruolo di servizio è un ruolo che un AWS servizio assume per eseguire azioni per conto dell'utente. In quanto servizio che esegue le operazioni di backup per tuo conto, Amazon Data Lifecycle Manager richiede che tu fornisca un ruolo da assumere durante l'esecuzione di operazioni di policy per tuo conto. Per ulteriori informazioni sui ruoli IAM, consulta [Ruoli IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html) nella *Guida per l'utente di IAM*.

Il ruolo che passi ad Amazon Data Lifecycle Manager deve disporre di una policy IAM con le autorizzazioni che consentano ad Amazon Data Lifecycle Manager di eseguire azioni associate alle operazioni relative alle policy, come la creazione di snapshot, la copia di snapshot, l'eliminazione di snapshot AMIs e l'annullamento della registrazione. AMIs AMIs Sono necessarie autorizzazioni diverse per ciascuno dei tipi di policy di Amazon Data Lifecycle Manager. È inoltre necessario che Amazon Data Lifecycle Manager sia presente nell'elenco delle entità attendibili per il ruolo, permettendo quindi ad Amazon Data Lifecycle Manager di assumere quel ruolo.

**Topics**
+ [Ruoli di servizio predefiniti per Amazon Data Lifecycle Manager](#default-service-roles)
+ [Ruoli di servizio personalizzati per Amazon Data Lifecycle Manager](#custom-role)

## Ruoli di servizio predefiniti per Amazon Data Lifecycle Manager
<a name="default-service-roles"></a>

Amazon Data Lifecycle Manager utilizza i seguenti ruoli di servizio predefiniti:
+ **AWSDataLifecycleManagerDefaultRole**—ruolo predefinito per la gestione degli snapshot. Considera attendibile per assumere il ruolo solo il servizio `dlm.amazonaws.com` e consente ad Amazon Data Lifecycle Manager di eseguire le operazioni richieste dalle policy di copia di snapshot e snapshot tra account per tuo conto. Questo ruolo utilizza la policy ` AWSDataLifecycleManagerServiceRole` AWS gestita.
**Nota**  
Il formato ARN del ruolo varia a seconda che sia stato creato utilizzando la console o la AWS CLI. Se il ruolo è stato creato utilizzando la console, il formato ARN è `arn:aws:iam::account_id:role/service-role/AWSDataLifecycleManagerDefaultRole`. Se il ruolo è stato creato utilizzando il AWS CLI, il formato ARN è. `arn:aws:iam::account_id:role/AWSDataLifecycleManagerDefaultRole`
+ **AWSDataLifecycleManagerDefaultRoleForAMIManagement**—ruolo predefinito per la gestione. AMIs Considera attendibile per assumere il ruolo solo il servizio `dlm.amazonaws.com` e consente ad Amazon Data Lifecycle Manager di eseguire le operazioni richieste dalle policy AMI EBS-backed per tuo conto. Questo ruolo utilizza la politica `AWSDataLifecycleManagerServiceRoleForAMIManagement` AWS gestita.

Se utilizzi la console Amazon Data Lifecycle Manager, Amazon Data Lifecycle Manager **AWSDataLifecycleManagerDefaultRole**crea automaticamente il ruolo di servizio la prima volta che crei uno snapshot o una policy di copia degli snapshot tra account e **AWSDataLifecycleManagerDefaultRoleForAMIManagement**crea automaticamente il ruolo di servizio la prima volta che crei una policy AMI supportata da EBS.

Se non utilizzi la console, puoi creare manualmente i ruoli di servizio utilizzando il comando. [create-default-role](https://docs.aws.amazon.com/cli/latest/reference/dlm/create-default-role.html) Per`--resource-type`, specifica `snapshot` di creare AWSData LifecycleManagerDefaultRole o `image` creare AWSData LifecycleManagerDefaultRoleForAMIManagement.

```
$ aws dlm create-default-role --resource-type snapshot|image
```

Se elimini i ruoli di servizio predefiniti e quindi devi crearli di nuovo, puoi utilizzare lo stesso processo per ricreare i ruoli nel tuo account.

## Ruoli di servizio personalizzati per Amazon Data Lifecycle Manager
<a name="custom-role"></a>

In alternativa all'utilizzo di ruoli di servizio predefiniti, puoi creare ruoli IAM personalizzati con le autorizzazioni necessarie e selezionarli durante la creazione della policy del ciclo di vita. 

**Per creare un ruolo IAM personalizzato**

1. Creare ruoli con le seguenti autorizzazioni.
   + Autorizzazioni necessarie per la gestione delle policy del ciclo di vita degli snapshot

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:CreateSnapshot",
                     "ec2:CreateSnapshots",
                     "ec2:DeleteSnapshot",
                     "ec2:DescribeInstances",
                     "ec2:DescribeVolumes",
                     "ec2:DescribeSnapshots",
                     "ec2:EnableFastSnapshotRestores",
                     "ec2:DescribeFastSnapshotRestores",
                     "ec2:DisableFastSnapshotRestores",
                     "ec2:CopySnapshot",
                     "ec2:ModifySnapshotAttribute",
                     "ec2:DescribeSnapshotAttribute",
                     "ec2:ModifySnapshotTier",
                     "ec2:DescribeSnapshotTierStatus",
                     "ec2:DescribeAvailabilityZones"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:CreateTags"
                 ],
                 "Resource": "arn:aws:ec2:*::snapshot/*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "events:PutRule",
                     "events:DeleteRule",
                     "events:DescribeRule",
                     "events:EnableRule",
                     "events:DisableRule",
                     "events:ListTargetsByRule",
                     "events:PutTargets",
                     "events:RemoveTargets"
                 ],
                 "Resource": "arn:aws:events:*:*:rule/AwsDataLifecycleRule.managed-cwe.*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ssm:GetCommandInvocation",
                     "ssm:ListCommands",
                     "ssm:DescribeInstanceInformation"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ssm:SendCommand",
                     "ssm:DescribeDocument",
                     "ssm:GetDocument"
                 ],
                 "Resource": [
                     "arn:aws:ssm:*:*:document/*"
                 ],
                 "Condition": {
                     "StringEquals": {
                         "aws:ResourceTag/DLMScriptsAccess": "true"
                     }
                 }
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ssm:SendCommand",
                     "ssm:DescribeDocument",
                     "ssm:GetDocument"
                 ],
                 "Resource": [
                     "arn:aws:ssm:*::document/*"
                 ]
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ssm:SendCommand"
                 ],
                 "Resource": [
                     "arn:aws:ec2:*:*:instance/*"
                 ],
                 "Condition": {
                     "StringNotLike": {
                         "aws:ResourceTag/DLMScriptsAccess": "false"
                     }
                 }
             }
         ]
     }
     ```

------
   + Autorizzazioni necessarie per la gestione delle policy del ciclo di vita delle AMI

------
#### [ JSON ]

****  

     ```
     {
         "Version":"2012-10-17",		 	 	 
         "Statement": [
             {
                 "Effect": "Allow",
                 "Action": "ec2:CreateTags",
                 "Resource": [
                     "arn:aws:ec2:*::snapshot/*",
                     "arn:aws:ec2:*::image/*"
                 ]
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:DescribeImages",
                     "ec2:DescribeInstances",
                     "ec2:DescribeImageAttribute",
                     "ec2:DescribeVolumes",
                     "ec2:DescribeSnapshots"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": "ec2:DeleteSnapshot",
                 "Resource": "arn:aws:ec2:*::snapshot/*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:ResetImageAttribute",
                     "ec2:DeregisterImage",
                     "ec2:CreateImage",
                     "ec2:CopyImage",
                     "ec2:ModifyImageAttribute"
                 ],
                 "Resource": "*"
             },
             {
                 "Effect": "Allow",
                 "Action": [
                     "ec2:EnableImageDeprecation",
                     "ec2:DisableImageDeprecation"
                 ],
                 "Resource": "arn:aws:ec2:*::image/*"
             }
         ]
     }
     ```

------

   Per ulteriori informazioni, consulta la pagina relativa alla [creazione di un ruolo](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html) nella *Guida per l'utente di IAM*.

1. Aggiungere una relazione di trust ai ruoli.

   1. Nella console IAM, scegliere **Roles (Ruoli)**.

   1. Seleziona i ruoli appena creati e quindi scegli **Trust relationships** (Relazioni di affidabilità).

   1. Selezionare **Edit Trust Relationship (Modifica relazione di trust)**, aggiungere la seguente policy e quindi scegliere **Update Trust Policy (Aggiorna policy di trust)**.

------
#### [ JSON ]

****  

      ```
      {
      	"Version":"2012-10-17",		 	 	 
      	"Statement": [{
      		"Effect": "Allow",
      		"Principal": {
      			"Service": "dlm.amazonaws.com"
      		},
      		"Action": "sts:AssumeRole"
      	}]
      }
      ```

------

      Si consiglia di utilizzare il le chiavi di condizione `aws:SourceAccount` e `aws:SourceArn` per proteggersi dal [problema del "confused deputy"](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html). Ad esempio, è possibile aggiungere il seguente blocco di condizione alla policy di attendibilità precedente. `aws:SourceAccount` è il proprietario della policy del ciclo di vita e `aws:SourceArn` è l'ARN della policy del ciclo di vita. Se non si conosce l'ID policy del ciclo di vita, è possibile sostituire quella parte dell'ARN con un carattere jolly (`*`) e quindi aggiornare la policy di attendibilità dopo aver creato la policy del ciclo di vita.

      ```
      "Condition": {
          "StringEquals": {
              "aws:SourceAccount": "account_id"
          },
          "ArnLike": {
              "aws:SourceArn": "arn:partition:dlm:region:account_id:policy/policy_id"
          }
      }
      ```

# Monitora le policy di Amazon Data Lifecycle Manager
<a name="dlm-monitor-lifecycle"></a>

Puoi utilizzare le seguenti funzionalità per monitorare il ciclo di vita delle tue istantanee e. AMIs

**Topics**
+ [Console e AWS CLI](#monitor-console-cli)
+ [AWS CloudTrail](#monitor-lifecycle-cloudtrail)
+ [Monitora le policy di Data Lifecycle Manager utilizzando EventBridge](monitor-cloudwatch-events.md)
+ [Monitora le policy di Data Lifecycle Manager utilizzando CloudWatch](monitor-dlm-cw-metrics.md)

## Console e AWS CLI
<a name="monitor-console-cli"></a>

È possibile visualizzare le policy per il ciclo di vita dei dati utilizzando la console Amazon EC2 o AWS CLI. Ogni snapshot e ogni AMI creato da una policy presenta un timestamp e dei tag associati alla policy stessa. È possibile filtrare le istantanee e AMIs utilizzare questi tag per verificare che i backup vengano creati come previsto.

## AWS CloudTrail
<a name="monitor-lifecycle-cloudtrail"></a>

Con AWS CloudTrail, puoi monitorare l'attività degli utenti e l'utilizzo delle API per dimostrare la conformità alle politiche interne e agli standard normativi. Per ulteriori informazioni, consulta la [Guida per l'utente AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/).

# Monitora le policy di Data Lifecycle Manager utilizzando EventBridge
<a name="monitor-cloudwatch-events"></a>

Amazon EBS e Amazon Data Lifecycle Manager generano eventi relativi alle operazioni delle policy per il ciclo di vita dei dati. Puoi utilizzare AWS Lambda Amazon CloudWatch Events per gestire le notifiche degli eventi in modo programmatico. Gli eventi vengono emessi secondo il principio del massimo sforzo. Per ulteriori informazioni, consulta la [Amazon EventBridge User Guide](https://docs.aws.amazon.com/eventbridge/latest/userguide/).

Sono disponibili i seguenti eventi:

**Nota**  
Non viene generato alcun evento per le azioni della policy del ciclo di vita delle AMI.
+ `createSnapshot`: un evento Amazon EBS generato quando un'operazione `CreateSnapshot` riesce o non riesce. Per ulteriori informazioni, consulta [EventBridge Eventi Amazon per Amazon EBS](ebs-cloud-watch-events.md).
+ `DLM Policy State Change`: un evento Amazon Data Lifecycle Manager generato quando una policy del ciclo di vita entra in uno stato di errore. L'evento contiene una descrizione di ciò che ha causato l'errore.

  Di seguito è riportato un esempio di un evento generato quando le autorizzazioni concesse dal ruolo IAM sono insufficienti:

  ```
  {
      "version": "0",
      "id": "01234567-0123-0123-0123-0123456789ab",
      "detail-type": "DLM Policy State Change",
      source": "aws.dlm",
      "account": "123456789012",
      "time": "2018-05-25T13:12:22Z",
      "region": "us-east-1",
      "resources": [
          "arn:aws:dlm:us-east-1:123456789012:policy/policy-0123456789abcdef"
      ],
      "detail": {
          "state": "ERROR",
          "cause": "Role provided does not have sufficient permissions",
          "policy_id": "arn:aws:dlm:us-east-1:123456789012:policy/policy-0123456789abcdef"
      }
  }
  ```

  Di seguito è illustrato un esempio di un evento generato al superamento di un limite:

  ```
  {
      "version": "0",
      "id": "01234567-0123-0123-0123-0123456789ab",
      "detail-type": "DLM Policy State Change",
      "source": "aws.dlm",
      "account": "123456789012",
      "time": "2018-05-25T13:12:22Z",
      "region": "us-east-1",
      "resources": [
          "arn:aws:dlm:us-east-1:123456789012:policy/policy-0123456789abcdef"
      ],
      "detail":{
          "state": "ERROR",
          "cause": "Maximum allowed active snapshot limit exceeded",
          "policy_id": "arn:aws:dlm:us-east-1:123456789012:policy/policy-0123456789abcdef"
      }
  }
  ```
+ `DLM Pre Post Script Notification`: un evento che viene emesso quando uno script pre o post viene avviato, ha esito positivo o negativo.

  Di seguito è riportato un evento di esempio di quando un backup VSS viene completato correttamente.

  ```
  {
      "version": "0",
      "id": "12345678-1234-1234-1234-123456789012",
      "detail-type": "DLM Pre Post Script Notification",
      "source": "aws.dlm",
      "account": "123456789012",
      "time": "2023-10-27T22:04:52Z",
      "region": "us-east-1",
      "resources": ["arn:aws:dlm:us-east-1:123456789012:policy/policy-01234567890abcdef"],
      "detail": {
          "script_stage": "",
          "result": "success",
          "cause": "",
          "policy_id": "arn:aws:dlm:us-east-1:123456789012:policy/policy-01234567890abcdef",
          "execution_handler": "AWS_VSS_BACKUP",
          "source": "arn:aws:ec2:us-east-1:123456789012:instance/i-01234567890abcdef",
          "resource_type": "EBS_SNAPSHOT",
          "resources": [{
              "status": "pending",
              "resource_id": "arn:aws:ec2:us-east-1::snapshot/snap-01234567890abcdef",
              "source": "arn:aws:ec2:us-east-1:123456789012:volume/vol-01234567890abcdef"
          }],
          "request_id": "a1b2c3d4-a1b2-a1b2-a1b2-a1b2c3d4e5f6",
          "start_time": "2023-10-27T22:03:29.370Z",
          "end_time": "2023-10-27T22:04:51.370Z",
          "timeout_time": ""
      }
  }
  ```

# Monitora le policy di Data Lifecycle Manager utilizzando CloudWatch
<a name="monitor-dlm-cw-metrics"></a>

Puoi monitorare le policy del ciclo di vita di Amazon Data Lifecycle Manager utilizzando CloudWatch, che raccoglie dati grezzi e li elabora in metriche leggibili quasi in tempo reale. Puoi utilizzare questi parametri per vedere esattamente quante istantanee Amazon EBS e supportate da EBS AMIs vengono create, eliminate e copiate dalle tue policy nel tempo. È anche possibile impostare allarmi che controllano determinate soglie e inviare notifiche o intraprendere azioni quando queste soglie vengono raggiunte.

I parametri vengono conservati per un periodo di 15 mesi, per consentirti di accedere alle informazioni cronologiche e acquisire una migliore comprensione delle prestazioni delle policy del ciclo di vita nel corso di un periodo prolungato.

Per ulteriori informazioni su Amazon CloudWatch, consulta la [Amazon CloudWatch User Guide](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/).

**Topics**
+ [Parametri supportati](#metrics)
+ [Visualizza le metriche per le tue politiche CloudWatch](#view-metrics)
+ [Rappresentazione grafica di parametri](#graph-metrics)
+ [Crea un CloudWatch allarme per una politica](#create-alarm)
+ [Casi d'uso di esempio](#use-cases)
+ [Gestione delle policy che segnalano operazioni non riuscite](#manage)

## Parametri supportati
<a name="metrics"></a>

I seguenti parametri di Amazon Data Lifecycle Manager sono inclusi nel namespace. `AWS/EBS` Le metriche differiscono in base al tipo di policy.

Tutti i parametri possono essere misurati sulle dimensioni `DLMPolicyId`. Le statistiche più utili sono`sum` e `average` e l'unità di misura è `count`.

Scegliere una scheda per visualizzare i parametri supportati da quel tipo di policy.

------
#### [ EBS snapshot policies ]


| Metrica | Description | 
| --- | --- | 
|  `ResourcesTargeted`  |  Il numero di risorse destinate ai tag specificati in uno snapshot o in una policy AMI EBS-backed.  | 
|  `SnapshotsCreateStarted`  |  Il numero di azioni di creazione di snapshot avviate da una policy snapshot. Ogni operazione viene registrata una sola volta, anche se sono presenti più tentativi successivi. Se un'operazione di creazione snapshot non riesce, Amazon Data Lifecycle Manager invia un parametro `SnapshotsCreateFailed`.  | 
|  `SnapshotsCreateCompleted`  |  Il numero di snapshot create da una policy snapshot. Ciò include tentativi successivi riusciti entro 60 minuti dall'ora pianificata.  | 
|  `SnapshotsCreateFailed`  |  Il numero di snapshot che non è stato creato da una policy snapshot. Ciò include tentativi successivi non riusciti entro 60 minuti dall'ora pianificata.  | 
|  `SnapshotsSharedCompleted`  |  Il numero di snapshot condivisi su più account da una policy snapshot.  | 
|  `SnapshotsDeleteCompleted`  |  Il numero di snapshot eliminati da uno snapshot o da una policy AMI EBS-backed. Questo parametro si applica solo agli snapshot creati dalla policy. Non si applica alle copie di snapshot tra regioni create dalla policy. Questa metrica include le istantanee che vengono eliminate quando una policy AMI supportata da EBS viene annullata. AMIs  | 
|  `SnapshotsDeleteFailed`  |  Il numero di snapshot che uno snapshot o una policy AMI supportata da EBS non sono riusciti a eliminare. Questo parametro si applica solo agli snapshot creati dalla policy. Non si applica alle copie di snapshot tra regioni create dalla policy. Questa metrica include le istantanee che vengono eliminate quando una policy AMI supportata da EBS viene annullata. AMIs  | 
|  `SnapshotsCopiedRegionStarted`  |  Il numero di azioni di copia degli snapshot tra regioni avviate da una policy snapshot.  | 
|  `SnapshotsCopiedRegionCompleted`  |  Il numero di azioni di copia degli snapshot tra regioni create da una policy snapshot. Ciò include tentativi successivi riusciti entro 24 ore dall'ora pianificata.  | 
|  `SnapshotsCopiedRegionFailed`  |  Il numero di azioni di copia degli snapshot tra regioni che la policy snapshot non è riuscita a craere. Ciò include tentativi successivi non riusciti entro 24 ore dall'ora pianificata.  | 
|  `SnapshotsCopiedRegionDeleteCompleted`  |  Numero di copie di snapshot tra regioni eliminate, come indicato dalla regola di conservazione, da una policy snapshot.  | 
|  `SnapshotsCopiedRegionDeleteFailed`  |  Numero di copie di snapshot tra regioni, come indicato dalla regola di conservazione, che la policy snapshot non è riuscita a eliminare.  | 
|  `snapshotsArchiveDeletionFailed`  |  Il numero di snapshot archiviati che non sono stati eliminati con successo dal livello di archivio mediante una policy per gli snapshot.  | 
|  `snapshotsArchiveScheduled`  |  Il numero di snapshot che una policy per gli snapshot pianificava di archiviare.  | 
|  `snapshotsArchiveCompleted`  |  Il numero di snapshot che sono stati archiviati con successo da una policy per gli snapshot.  | 
|  `snapshotsArchiveFailed`  |  Il numero di snapshot che non sono stati archiviati con successo da una policy per gli snapshot.  | 
|  `snapshotsArchiveDeletionCompleted`  |  Il numero di snapshot archiviati che sono stati eliminati con successo dal livello di archivio da una policy per gli snapshot.  | 
|  `PreScriptStarted`  |  Il numero di istanze per cui uno script pre è stato avviato con successo. Se i nuovi tentativi di script sono abilitati, questo parametro può essere emesso più volte per ogni esecuzione della policy.  | 
|  `PreScriptCompleted`  |  Il numero di istanze per cui uno script post è stato completato correttamente. Il parametro viene emesso anche se lo script pre viene completato al di fuori del periodo di timeout specificato. Se i nuovi tentativi di script sono abilitati, questo parametro può essere emesso più volte per ogni esecuzione della policy.  | 
|  `PreScriptFailed`  |  Il numero di istanze per le quali uno script pre non è stato completato correttamente. Il parametro viene emesso anche se lo script pre viene completato al di fuori del periodo di timeout specificato. Se i nuovi tentativi di script sono abilitati, questo parametro può essere emesso più volte per ogni esecuzione della policy.  | 
|  `PostScriptStarted`  |  Il numero di istanze per cui uno script post è stato avviato con successo. Se i nuovi tentativi di script sono abilitati, questo parametro può essere emesso più volte per ogni esecuzione della policy.  | 
|  PostScriptCompleted  |  Il numero di istanze per cui uno script post è stato completato con successo. Il parametro viene emesso anche se lo script post viene completato al di fuori del periodo di timeout specificato. Se i nuovi tentativi di script sono abilitati, questo parametro può essere emesso più volte per ogni esecuzione della policy.  | 
|  PostScriptFailed  |  Il numero di istanze per cui uno script post è stato non è completato correttamente. Il parametro viene emesso anche se lo script post viene completato al di fuori del periodo di timeout specificato. Se i nuovi tentativi di script sono abilitati, questo parametro può essere emesso più volte per ogni esecuzione della policy.  | 
|  `VSSBackupStarted`  |  Il numero di istanze per cui un backup VSS è stato avviato con successo. Se i nuovi tentativi di script sono abilitati, questo parametro può essere emesso più volte per ogni esecuzione della policy.  | 
|  `VSSBackupCompleted`  |  Il numero di istanze per cui un backup VSS è stato completato con successo. Il parametro viene emesso anche se il backup VSS viene completato al di fuori del periodo di timeout specificato. Se i nuovi tentativi di script sono abilitati, questo parametro può essere emesso più volte per ogni esecuzione della policy.  | 
|  `VSSBackupFailed`  |  Il numero di istanze per cui un backup VSS non è stato completato correttamente. Il parametro viene emesso anche se il backup VSS viene completato al di fuori del periodo di timeout specificato. Se i nuovi tentativi di script sono abilitati, questo parametro può essere emesso più volte per ogni esecuzione della policy.  | 

------
#### [ EBS-backed AMI policies ]

I seguenti parametri possono essere utilizzati con policy AMI EBS-backed:


| Metrica | Description | 
| --- | --- | 
|  `ResourcesTargeted`  |  Il numero di risorse destinate ai tag specificati in uno snapshot o in una policy AMI supportato da EBS.  | 
|  `SnapshotsDeleteCompleted`  |  Il numero di snapshot eliminati da uno snapshot o da una policy AMI supportata da EBS. Questo parametro si applica solo agli snapshot creati dalla policy. Non si applica alle copie di snapshot tra regioni create dalla policy. Questa metrica include le istantanee che vengono eliminate quando una policy AMI supportata da EBS viene annullata. AMIs  | 
|  `SnapshotsDeleteFailed`  |  Il numero di snapshot che uno snapshot o una policy AMI supportata da EBS non sono riusciti a eliminare. Questo parametro si applica solo agli snapshot creati dalla policy. Non si applica alle copie di snapshot tra regioni create dalla policy. Questa metrica include le istantanee che vengono eliminate quando una policy AMI supportata da EBS viene annullata. AMIs  | 
|  `SnapshotsCopiedRegionDeleteCompleted`  |  Numero di copie di snapshot tra regioni eliminate, come indicato dalla regola di conservazione, da una policy snapshot.  | 
|  `SnapshotsCopiedRegionDeleteFailed`  |  Numero di copie di snapshot tra regioni, come indicato dalla regola di conservazione, che la policy snapshot non è riuscita a eliminare.  | 
|  `ImagesCreateStarted`  |  Il numero di **CreateImage**azioni avviate da una policy AMI supportata da EBS.  | 
|  `ImagesCreateCompleted`  |  Il numero di file AMIs creati da una policy AMI supportata da EBS.  | 
|  `ImagesCreateFailed`  |  Non è stato possibile AMIs determinarne il numero con una policy AMI supportata da EBS.  | 
|  `ImagesDeregisterCompleted`  |  Il numero di persone AMIs cancellate da una policy AMI supportata da EBS.  | 
|  `ImagesDeregisterFailed`  |  Non è stato possibile annullare la registrazione di AMIs tale numero mediante una politica AMI sostenuta da EBS.  | 
|  `ImagesCopiedRegionStarted`  |  Il numero di operazioni di copia tra regioni avviate da una policy AMI EBS-backed.  | 
|  `ImagesCopiedRegionCompleted`  |  Numero di copie AMI tra regioni create da una policy AMI EBS-backed.  | 
|  `ImagesCopiedRegionFailed`  |  Numero di copie AMI tra regioni che una policy AMI EBS-backed non è riuscita a creare.  | 
|  `ImagesCopiedRegionDeregisterCompleted`  |  Numero di copie AMI tra regioni di cui è stata annullata la registrazione, come indicato dalla regola di conservazione, da una policy AMI EBS-backed.  | 
|  `ImagesCopiedRegionDeregisteredFailed`  |  Numero di copie AMI tra regioni di cui non è stato possibile annullare la registrazione, come indicato dalla regola di conservazione, da parte di una policy AMI EBS-backed.  | 
|  `EnableImageDeprecationCompleted`  |  Il numero di questi AMIs è stato contrassegnato come obsoleto da una politica AMI supportata da EBS.  | 
|  `EnableImageDeprecationFailed`  |  Non è stato possibile contrassegnare il numero come obsoleto da una politica AMI supportata da EBS. AMIs   | 
|  `EnableCopiedImageDeprecationCompleted`  |  Il numero di copie AMI tra Regioni contrassegnate per la definizione come obsoleta da una policy AMI EBS-backed.  | 
|  `EnableCopiedImageDeprecationFailed`  |  Il numero di copie AMI tra Regioni che potrebbero non essere contrassegnate per la definizione come obsoleta da una policy AMI EBS-backed.  | 

------
#### [ Cross-account copy event policies ]

I seguenti parametri possono essere utilizzati con policy degli eventi di copia tra account:


| Metrica | Description | 
| --- | --- | 
|  `SnapshotsCopiedAccountStarted`  |  Il numero di operazioni di copia snapshot tra account avviate da una policy per gli eventi di copia tra account.  | 
|  `SnapshotsCopiedAccountCompleted`  |  Il numero di snapshot copiati da un altro account da parte di una policy per gli eventi di copia tra account. Ciò include tentativi successivi riusciti entro 24 ore dall'ora pianificata.  | 
|  `SnapshotsCopiedAccountFailed`  |  Il numero di snapshot che non è stato possibile copiare da un altro account da parte di una policy per gli eventi di copia tra account. Ciò include tentativi successivi non riusciti entro 24 ore dall'ora pianificata.  | 
|  `SnapshotsCopiedAccountDeleteCompleted`  |  Numero di copie di snapshot tra regioni eliminate, come indicato dalla regola di conservazione, da parte di una policy per gli eventi di copia tra account.  | 
|  `SnapshotsCopiedAccountDeleteFailed`  |  Numero di copie di snapshot tra regioni che non è stato possibile eliminare, come indicato dalla regola di conservazione, da parte di una policy per gli eventi di copia tra account.  | 

------

## Visualizza le metriche per le tue politiche CloudWatch
<a name="view-metrics"></a>

Puoi utilizzare Console di gestione AWS o gli strumenti da riga di comando per elencare i parametri che Amazon Data Lifecycle Manager invia ad Amazon. CloudWatch

------
#### [ Amazon EC2 console ]

**Per visualizzare i parametri tramite la console di Amazon EC2**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel pannello di navigazione, seleziona **Lifecycle Manager**.

1. Seleziona una policy nella griglia, quindi scegli la scheda **Monitoring (Monitoraggio)**.

------
#### [ CloudWatch console ]

**Per visualizzare le metriche utilizzando la console Amazon CloudWatch**

1. Apri la CloudWatch console all'indirizzo [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).

1. Nel riquadro di navigazione, seleziona **Parametri**.

1. Selezionare lo spazio dei nomi **EBS** e quindi selezionare i **parametri Data Lifecycle Manager**.

------
#### [ AWS CLI ]

**Per elencare tutti i parametri disponibili per Amazon Data Lifecycle Manager**  
Utilizza il comando [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) seguente.

```
$ C:\> aws cloudwatch list-metrics \
    --namespace AWS/EBS
```

**Per elencare tutti i parametri per una policy specifica**  
Utilizza il comando [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) e specifica le dimensioni `DLMPolicyId`.

```
$ C:\> aws cloudwatch list-metrics \
    --namespace AWS/EBS \
    --dimensions Name=DLMPolicyId,Value=policy-abcdef01234567890
```

**Per elencare un singolo parametro tra tutte le policy**  
Utilizza il comando [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) e specifica l'opzione `--metric-name`.

```
$ C:\> aws cloudwatch list-metrics \
    --namespace AWS/EBS \
    --metric-name SnapshotsCreateCompleted
```

------

## Parametri grafici delle policy
<a name="graph-metrics"></a>

Dopo aver creato una policy, puoi aprire la console Amazon EC2 e visualizzare i grafici di monitoraggio per la policy nella scheda **Monitoring (Monitoraggio)**. Ciascun grafico si basa su uno dei parametri di Amazon EC2 disponibili.

Sono disponibili i seguenti parametri grafici:
+ Risorse obiettivo (basate su `ResourcesTargeted`)
+ Creazione snapshot avviata (basata su `SnapshotsCreateStarted`)
+ Creazione snapshot completata (basata su `SnapshotsCreateCompleted`)
+ Creazione snapshot non riuscita (basata su `SnapshotsCreateFailed`)
+ Condivisione snapshot completata (basata su `SnapshotsSharedCompleted`)
+ Eliminazione snapshot completata (basata su `SnapshotsDeleteCompleted`)
+ Eliminazione snapshot non riuscita (basata su `SnapshotsDeleteFailed`)
+ Copia snapshot tra Regioni avviata (basata su `SnapshotsCopiedRegionStarted`)
+ Copia snapshot tra Regioni completata (basata su `SnapshotsCopiedRegionCompleted`)
+ Copia snapshot tra Regioni non riuscita (basata su `SnapshotsCopiedRegionFailed`)
+ Eliminazione copia snapshot tra Regioni completata (basata su `SnapshotsCopiedRegionDeleteCompleted`)
+ Eliminazione copia snapshot tra Regioni non riuscita (basata su `SnapshotsCopiedRegionDeleteFailed`)
+ Copia snapshot tra account avviata (basata su `SnapshotsCopiedAccountStarted`)
+ Copia snapshot tra account completata (basata su `SnapshotsCopiedAccountCompleted`)
+ Copia snapshot tra account non riuscita (basata su `SnapshotsCopiedAccountFailed`)
+ Eliminazione copia snapshot tra account completata (basata su `SnapshotsCopiedAccountDeleteCompleted`)
+ Eliminazione copia snapshot tra account non riuscita (basata su `SnapshotsCopiedAccountDeleteFailed`)
+ Creazione AMI avviata (basata su `ImagesCreateStarted`)
+ Creazione AMI completata (basata su `ImagesCreateCompleted`)
+ Creazione AMI non riuscita (basata su `ImagesCreateFailed`)
+ Annullamento registrazione AMI completato (basato su `ImagesDeregisterCompleted`)
+ Annullamento registrazione AMI non riuscito (basato su `ImagesDeregisterFailed`)
+ Copia di AMI tra Regioni avviata (basata su `ImagesCopiedRegionStarted`)
+ Copia di AMI tra Regioni completata (basata su `ImagesCopiedRegionCompleted`)
+ Copia di AMI tra Regioni non riuscita (basata su `ImagesCopiedRegionFailed`)
+ Annullamento della registrazione della copia di AMI tra Regioni completato (basato su `ImagesCopiedRegionDeregisterCompleted`)
+ Annullamento della registrazione della copia di AMI tra Regioni non riuscito (basata su `ImagesCopiedRegionDeregisteredFailed`)
+ Abilitazione definizione come obsoleta dell'AMI completata (basata su `EnableImageDeprecationCompleted`)
+ Abilitazione definizione come obsoleta dell'AMI non riuscita (basata su `EnableImageDeprecationFailed`)
+ Definizione come obsoleta per l'abilitazione della copia di AMI tra Regioni completata (basata su `EnableCopiedImageDeprecationCompleted`)
+ Abilitazione definizione come obsoleta copia AMI tra Regioni non riuscita (basata su `EnableCopiedImageDeprecationFailed`)

## Crea un CloudWatch allarme per una politica
<a name="create-alarm"></a>

Puoi creare un CloudWatch allarme che monitora le CloudWatch metriche relative alle tue politiche. CloudWatch ti invierà automaticamente una notifica quando la metrica raggiunge una soglia specificata. Puoi creare un CloudWatch allarme utilizzando la CloudWatch console.

Per ulteriori informazioni sulla creazione di allarmi utilizzando la CloudWatch console, consulta il seguente argomento nella *Amazon CloudWatch User Guide*.
+ [Crea un CloudWatch allarme basato su una soglia statica](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/ConsoleAlarms.html)
+ [Crea un CloudWatch allarme basato sul rilevamento di anomalie](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Create_Anomaly_Detection_Alarm.html)

## Casi d'uso di esempio
<a name="use-cases"></a>

Di seguito sono riportati esempi di casi d'uso.

**Topics**
+ [Esempio 1: metrico ResourcesTargeted](#case1)
+ [Esempio 2: metrico SnapshotDeleteFailed](#case2)
+ [Esempio 3: metrico SnapshotsCopiedRegionFailed](#case3)

### Esempio 1: metrico ResourcesTargeted
<a name="case1"></a>

Puoi utilizzare il parametro `ResourcesTargeted` per monitorare il numero totale di risorse destinate a una policy specifica ogni volta che viene eseguita. In questo modo è possibile attivare un allarme quando il numero di risorse mirate è inferiore o superiore a una soglia prevista.

Ad esempio, se si prevede che la policy giornaliera crei backup di non più di `50` volumi, puoi creare un allarme che invia una notifica tramite e-mail quando lo `sum` per `ResourcesTargeted` è maggiore di `50` su un periodo di `1` ore. In questo modo, è possibile assicurarsi che non siano stati creati snapshot in modo imprevisto da volumi con assegnazione di tag errata.

Per creare questo allarme, è possibile utilizzare il seguente comando:

```
$ C:\> aws cloudwatch put-metric-alarm \
    --alarm-name resource-targeted-monitor \
    --alarm-description "Alarm when policy targets more than 50 resources" \
    --metric-name ResourcesTargeted \
    --namespace AWS/EBS \
    --statistic Sum \
    --period 3600 \
    --threshold 50 \
    --comparison-operator GreaterThanThreshold \
    --dimensions "Name=DLMPolicyId,Value=policy_id" \
    --evaluation-periods 1 \
    --alarm-actions sns_topic_arn
```

### Esempio 2: metrico SnapshotDeleteFailed
<a name="case2"></a>

Puoi utilizzare il parametro `SnapshotDeleteFailed` per monitorare la presenza di errori nell'eliminazione degli snapshot secondo la regola di conservazione degli snapshot della policy. 

Ad esempio, se è stata creata una policy che dovrebbe eliminare automaticamente gli snapshot ogni dodici ore, è possibile creare un allarme che avvisa il team tecnico quando la `sum` di `SnapshotDeletionFailed` è maggiore di `0` su un periodo di `1` ore. Ciò potrebbe aiutare a indagare sulla conservazione non corretta degli snapshot e a garantire che i costi di archiviazione non vengano aumentati da snapshot non necessari.

Per creare questo allarme, è possibile utilizzare il seguente comando:

```
$ C:\> aws cloudwatch put-metric-alarm \
    --alarm-name snapshot-deletion-failed-monitor \
    --alarm-description "Alarm when snapshot deletions fail" \
    --metric-name SnapshotsDeleteFailed \
    --namespace AWS/EBS \
    --statistic Sum \
    --period 3600 \
    --threshold 0 \
    --comparison-operator GreaterThanThreshold \
    --dimensions "Name=DLMPolicyId,Value=policy_id" \
    --evaluation-periods 1 \
    --alarm-actions sns_topic_arn
```

### Esempio 3: metrico SnapshotsCopiedRegionFailed
<a name="case3"></a>

Utilizzo del parametro `SnapshotsCopiedRegionFailed` per identificare quando le policy non riescono a copiare gli snapshot in altre regioni.

Ad esempio, se la policy copia gli snapshot in tutte le regioni ogni giorno, è possibile creare un allarme che invia un SMS al team di progettazione quando la `sum` di `SnapshotCrossRegionCopyFailed` è maggiore di `0` su un periodo di `1` ore. Ciò può essere utile per verificare se gli snapshot successivi nel lignaggio siano stati copiati correttamente dalla policy.

Per creare questo allarme, è possibile utilizzare il seguente comando:

```
$ C:\> aws cloudwatch put-metric-alarm \
    --alarm-name snapshot-copy-region-failed-monitor \
    --alarm-description "Alarm when snapshot copy fails" \
    --metric-name SnapshotsCopiedRegionFailed \
    --namespace AWS/EBS \
    --statistic Sum \
    --period 3600 \
    --threshold 0 \
    --comparison-operator GreaterThanThreshold \
    --dimensions "Name=DLMPolicyId,Value=policy_id" \
    --evaluation-periods 1 \
    --alarm-actions sns_topic_arn
```

## Gestione delle policy che segnalano operazioni non riuscite
<a name="manage"></a>

Per ulteriori informazioni su cosa fare quando una delle tue politiche riporta un valore imprevisto diverso da zero per una metrica di azione fallita, consulta l'articolo [Cosa devo fare se Amazon Data Lifecycle Manager](https://repost.aws/knowledge-center/cloudwatch-metrics-dlm) riporta azioni non riuscite nelle metriche? CloudWatch 

# Endpoint di servizio per Amazon Data Lifecycle Manager
<a name="dlm-service-endpoints"></a>

Un *endpoint* è un URL che funge da punto di ingresso per un servizio Web. AWS Amazon Data Lifecycle Manager supporta i seguenti tipi di endpoint:
+ IPv4 endpoint
+ Endpoint dual-stack che supportano sia IPv4 IPv6
+ Endpoint FIPS

Quando si effettua una richiesta, è possibile specificare l'endpoint e la Regione da utilizzare. Se non si specifica un endpoint, l'endpoint viene utilizzato per impostazione IPv4 predefinita. Per utilizzare un tipo di endpoint diverso, devi specificarlo nella richiesta. Per esempi su come eseguire questa operazione, consulta [Specificazione degli endpoint](#dlm-endpoint-examples).

Per Amazon Data Lifecycle Manager, consulta gli endpoint [Amazon Data Lifecycle Manager](https://docs.aws.amazon.com/general/latest/gr/dlm.html) nel. *Riferimenti generali di Amazon Web Services*

**Topics**
+ [IPv4 endpoint](#dlm-ipv4)
+ [Endpoint dual-stack (e) IPv4 IPv6](#dlm-ipv6)
+ [Endpoint FIPS](#dlm-fips)
+ [Specificazione degli endpoint](#dlm-endpoint-examples)

## IPv4 endpoint
<a name="dlm-ipv4"></a>

IPv4 gli endpoint supportano solo il IPv4 traffico. IPv4 gli endpoint sono disponibili per tutte le regioni.

È necessario specificare la regione come parte del nome dell'endpoint. I nomi degli endpoint utilizzano la seguente convenzione di denominazione:
+ dlm. *region*.amazonaws.com

Ad esempio, l' IPv4 endpoint per la regione Stati Uniti orientali (Virginia settentrionale) è. `dlm.us-east-1.amazonaws.com`

## Endpoint dual-stack (e) IPv4 IPv6
<a name="dlm-ipv6"></a>

Gli endpoint dual-stack supportano sia il traffico che il traffico. IPv4 IPv6 Gli endpoint dual-stack sono disponibili per tutte le Regioni.

Per utilizzarlo IPv6, è necessario utilizzare un endpoint dual-stack. Quando effettui una richiesta a un endpoint dual-stack, l'URL dell'endpoint si risolve in un indirizzo IPv6 o in un IPv4 indirizzo, a seconda del protocollo utilizzato dalla rete e dal client.

È necessario specificare la regione come parte del nome dell'endpoint. I nomi degli endpoint dual-stack usano la seguente convenzione di denominazione:
+ `dlm.region.api.aws`

Ad esempio, l'endpoint dual-stack per la regione Stati Uniti orientali (Virginia settentrionale) è. `dlm.us-east-1.api.aws`

## Endpoint FIPS
<a name="dlm-fips"></a>

Amazon Data Lifecycle Manager fornisce endpoint dual-stack (e) convalidati da FIPS per le seguenti regioni: IPv4 IPv6
+ `us-east-1`: Stati Uniti orientali (Virginia settentrionale)
+ `us-east-2`: Stati Uniti orientali (Ohio)
+ `us-west-1`: Stati Uniti occidentali (California settentrionale)
+ `us-west-2`: Stati Uniti occidentali (Oregon)
+ `ca-central-1`: Canada (Centrale)
+ `ca-west-1`— Canada occidentale (Calgary)

Gli endpoint FIPS dual-stack utilizzano la seguente convenzione di denominazione:. `dlm-fips.region.api.aws` Ad esempio, l'endpoint dual-stack FIPS per la regione Stati Uniti orientali (Virginia settentrionale) è. `dlm-fips.us-east-1.api.aws`

## Specificazione degli endpoint
<a name="dlm-endpoint-examples"></a>

Gli esempi seguenti mostrano come specificare un endpoint per la Regione `US East (N. Virginia)` utilizzando AWS CLI.
+ **Dual-stack**

  ```
  aws dlm create-default-role \
  --resource-type snapshot \
  --endpoint-url https://dlm.us-east-2.api.aws
  ```
+ **IPv4**

  ```
  aws dlm create-default-role \
  --resource-type snapshot \
  --endpoint-url https://dlm.us-east-2.amazonaws.com
  ```

# Crea una connessione privata tra un VPC e Amazon EBS
<a name="dlm-vpc-endpoints"></a>

Puoi stabilire una connessione privata tra il tuo VPC e Amazon EBS creando un endpoint *VPC* di interfaccia, basato su. [AWS PrivateLink](https://aws.amazon.com/privatelink/) Puoi accedere ad Amazon EBS come se fosse nel tuo VPC, senza utilizzare un gateway Internet, un dispositivo NAT, una connessione VPN o una connessione. AWS Direct Connect Le istanze nel tuo VPC non necessitano di indirizzi IP pubblici per comunicare con Amazon EBS.

In ciascuna sottorete viene creata un'interfaccia di rete endpoint da abilitare per l'endpoint di interfaccia.

*Per ulteriori informazioni, consulta [Access Servizi AWS through AWS PrivateLink nella Guida](https://docs.aws.amazon.com/vpc/latest/privatelink/privatelink-access-aws-services.html).AWS PrivateLink *

**Nota**  
Amazon Data Lifecycle Manager supporta gli endpoint IPv4 VPC di interfaccia per tutte le aree commerciali e le regioni e gli endpoint IPv6 VPC di interfaccia AWS GovCloud (US) solo per le regioni commerciali.

## Considerazioni sugli endpoint VPC di Amazon EBS
<a name="dlm-vpc-endpoint-considerations"></a>

*Prima di configurare un endpoint VPC di interfaccia per Amazon EBS, consulta le [considerazioni](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#considerations-interface-endpoints) nella guida.AWS PrivateLink *

Per impostazione predefinita, l'accesso completo ad Amazon EBS è consentito tramite l'endpoint. È possibile controllare l'accesso all'endpoint dell'interfaccia utilizzando le policy degli endpoint VPC. Puoi allegare una policy per gli endpoint al tuo endpoint VPC che controlla l'accesso ad Amazon EBS. La policy specifica le informazioni riportate di seguito:
+ Il **principale che può eseguire** azioni.
+ Le **azioni** che possono essere eseguite.
+ Le **risorse** su cui è possibile eseguire le azioni.

Per ulteriori informazioni, consulta [Controllo degli accessi ai servizi con endpoint VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/vpc-endpoints-access.html) in *Guida per l'utente di Amazon VPC*.

Di seguito è riportato un esempio di policy sugli endpoint per Amazon EBS. Se collegata a un endpoint, questa policy concede a tutti gli utenti il permesso di ottenere informazioni di riepilogo sulle policy di Amazon Data Lifecycle Manager.

```
{
  "Statement": [{
    "Action": "dlm:GetLifecyclePolicies",
    "Effect": "Allow",
    "Principal": "*",
    "Resource": "*"
  }]
}
```

## Crea un endpoint VPC di interfaccia per Amazon EBS
<a name="dlm-vpc-endpoint-create"></a>

Puoi creare un endpoint VPC per Amazon EBS utilizzando la console Amazon VPC o (). AWS Command Line Interface AWS CLI Per ulteriori informazioni, consulta la sezione [Creazione di un endpoint VPC](https://docs.aws.amazon.com/vpc/latest/privatelink/create-interface-endpoint.html#create-interface-endpoint-aws) nella *Guida di AWS PrivateLink *.

Crea un endpoint VPC per Amazon EBS utilizzando il seguente nome di servizio: 
+ `com.amazonaws.region.dlm`

Se abiliti il DNS privato per l'endpoint, puoi effettuare richieste API ad Amazon EBS utilizzando il nome DNS predefinito per la regione, ad esempio. `dlm.us-east-1.amazonaws.com`

# Risolvi i problemi relativi ad Amazon Data Lifecycle Manager
<a name="dlm-troubleshooting"></a>

La seguente documentazione può rivelarsi utile per risolvere i problemi che si potrebbero riscontrare.

**Topics**
+ [Errore: `Role with name already exists`](#dlm-role-arn-issue)

## Errore: `Role with name already exists`
<a name="dlm-role-arn-issue"></a>

**Description**  
Quando si prova creare una policy tramite la console viene visualizzato l'errore `Role with name AWSDataLifecycleManagerDefaultRole already exists` o `Role with name AWSDataLifecycleManagerDefaultRoleForAMIManagement already exists`.

**Causa**  
Il formato ARN del ruolo predefinito varia a seconda che sia stato creato utilizzando la console o la AWS CLI. Sebbene ARNs siano diversi, i ruoli utilizzano lo stesso nome di ruolo, il che si traduce in un conflitto di denominazione dei ruoli tra la console e il. AWS CLI

**Soluzione**  
Per risolvere il problema, procedere come segue:

1. (*Per le policy di snapshot abilitate solo per gli script precedenti e successivi*) Collega manualmente la policy AWS gestita di **AWSDataLifecycleManagerSSMFullAccess** al **AWSDataLifecycleManagerDefaultRole**ruolo IAM. Per ulteriori informazioni, consulta [Aggiunta di autorizzazioni per le identità IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#add-policies-console).

1. Quando crei la tua policy Amazon Data Lifecycle Manager, per il **ruolo IAM**, seleziona **Scegli un altro ruolo**, quindi seleziona **AWSDataLifecycleManagerDefaultRole**(per una policy di snapshot) o (**AWSDataLifecycleManagerDefaultRoleForAMIManagement**per una policy AMI).

1. Continua a creare la policy come al solito.