

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

# Ottenimento di valori archiviati in altri servizi utilizzando riferimenti dinamici
<a name="dynamic-references"></a>

I riferimenti dinamici offrono un modo pratico per specificare i valori esterni archiviati e gestiti in altri servizi e disaccoppiare le informazioni sensibili dai modelli. infrastructure-as-code CloudFormation recupera il valore del riferimento specificato quando necessario durante le operazioni di stack e change set.

Con i riferimenti dinamici puoi:
+ **Usa stringhe sicure**: per i dati sensibili, utilizza sempre parametri di stringa sicuri in AWS Systems Manager Parameter Store o segreti Gestione dei segreti AWS per garantire che i dati siano crittografati quando sono inattivi.
+ **Limitare l’accesso**: limita l’accesso ai parametri Parameter Store o ai segreti di Secrets Manager solo ai principali e ai ruoli autorizzati.
+ **Ruotare le credenziali**: ruota regolarmente i dati sensibili archiviati in Parameter Store o Secrets Manager per mantenere un elevato livello di sicurezza.
+ **Rotazione automatica**: sfrutta le funzionalità di rotazione automatica di Secrets Manager per aggiornare e distribuire periodicamente i dati sensibili tra le applicazioni e gli ambienti.

## Considerazioni generali
<a name="dynamic-references-considerations"></a>

Di seguito sono riportate le considerazioni generali da considerare prima di specificare riferimenti dinamici CloudFormation nei modelli:
+ Evita di includere riferimenti dinamici o dati sensibili nelle proprietà delle risorse che fanno parte dell'identificatore principale di una risorsa. CloudFormation può utilizzare l'effettivo valore di testo in chiaro nell'identificatore della risorsa principale, il che potrebbe rappresentare un rischio per la sicurezza. Questo ID risorsa può apparire in qualsiasi output o destinazione derivata.

  Per determinare quali proprietà delle risorse comprendono l’identificatore principale di un tipo di risorsa, fai riferimento alla documentazione di riferimento delle risorse nelle [Informazioni di riferimento sui tipi di proprietà e di risorse AWS](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-template-resource-type-ref.html) per la risorsa in questione. Nella sezione **Return values** (Valori restituiti), il valore restituito della funzione `Ref` rappresenta le proprietà delle risorse che comprendono l’identificatore principale del tipo di risorsa.
+ È possibile includere fino a 60 riferimenti dinamici in un modello di stack.
+ Se utilizzi trasformazioni (come `AWS::Include` o`AWS::Serverless`), CloudFormation non risolve i riferimenti dinamici prima di applicare la trasformazione. Trasmette, invece, la stringa letterale del riferimento dinamico alla trasformazione e risolve i riferimenti quando si esegue il set di modifiche utilizzando il modello.
+ I riferimenti dinamici non possono essere utilizzati per valori sicuri (come quelli archiviati in Parameter Store o Secrets Manager) nelle risorse personalizzate. 
+ Inoltre, i riferimenti dinamici non sono supportati nei metadati `AWS::CloudFormation::Init` e nelle proprietà `UserData` di Amazon EC2.
+ Non create un riferimento dinamico che termina con una barra rovesciata (\$1). CloudFormationnon è in grado di risolvere questi riferimenti, il che causerà il fallimento delle operazioni di stack.

I seguenti argomenti forniscono informazioni e altre considerazioni sull’utilizzo dei riferimenti dinamici.

**Topics**
+ [Considerazioni generali](#dynamic-references-considerations)
+ [Ottenimento di un valore in testo normale da Systems Manager Parameter Store](dynamic-references-ssm.md)
+ [Ottenimento di un valore di stringa sicura da Systems Manager Parameter Store](dynamic-references-ssm-secure-strings.md)
+ [Ottieni un segreto o un valore segreto da Secrets Manager](dynamic-references-secretsmanager.md)

# Ottenimento di un valore in testo normale da Systems Manager Parameter Store
<a name="dynamic-references-ssm"></a>

Quando crei un CloudFormation modello, potresti voler utilizzare valori di testo in chiaro memorizzati in Parameter Store. Parameter Store è una funzionalità di. AWS Systems Manager Per un’introduzione a Parameter Store, consulta [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) nella *Guida per l’utente di AWS Systems Manager *. 

Per utilizzare un valore in testo normale di Parameter Store all’interno del modello, si utilizza un riferimento dinamico `ssm`. Questo riferimento consente di accedere ai valori dai parametri di tipo `String` o `StringList` in Parameter Store. 

Per verificare quale versione di un riferimento dinamico `ssm` verrà utilizzata in un’operazione di stack, crea un set di modifiche per quest’ultimo. Quindi, esamina il modello elaborato nella scheda **Modello**. Per ulteriori informazioni, consulta [Creare un set di modifiche per uno CloudFormation stack](using-cfn-updating-stacks-changesets-create.md).

Quando si utilizzano riferimenti dinamici `ssm`, ci sono alcune cose importanti da tenere a mente:
+ CloudFormation non supporta il rilevamento della deriva sui riferimenti dinamici. Per i riferimenti dinamici `ssm` in cui non hai specificato la versione del parametro, ti consigliamo, se aggiorni la versione del parametro in Systems Manager, di eseguire anche un’operazione di aggiornamento dello stack su tutti gli stack che includono il riferimento dinamico `ssm`, al fine di recuperare la versione più recente del parametro.
+ Per utilizzare un riferimento `ssm` dinamico nella `Parameters` sezione del CloudFormation modello, è necessario includere un numero di versione. CloudFormation non consente di fare riferimento a un valore di Parameter Store senza un numero di versione in questa sezione. In alternativa, puoi definire il parametro come tipo di parametro Systems Manager nel modello. Quando si esegue questa operazione, è possibile specificare una chiave del parametro Systems Manager come valore predefinito per il parametro. CloudFormation recupererà quindi la versione più recente del valore del parametro da Parameter Store, senza che sia necessario specificare un numero di versione. Questo può rendere i tuoi modelli più semplici e facili da gestire. Per ulteriori informazioni, consulta [Specificare le risorse esistenti in fase di esecuzione con i CloudFormation tipi di parametri forniti da](cloudformation-supplied-parameter-types.md).
+ Per le risorse personalizzate, CloudFormation risolve i riferimenti `ssm` dinamici prima di inviare la richiesta alla risorsa personalizzata.
+ CloudFormation non supporta l'utilizzo di riferimenti dinamici per fare riferimento a un parametro condiviso da un altro. Account AWS
+ CloudFormation non supporta l'utilizzo delle etichette dei parametri di Systems Manager nei riferimenti dinamici.

## Permissions
<a name="dynamic-references-ssm-permissions"></a>

Per specificare un parametro archiviato in Systems Manager Parameter Store, devi disporre di un accesso che consente di chiamare [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html) per il parametro specificato. Per scoprire come creare policy IAM che forniscano l’accesso a parametri specifici di Systems Manager, consulta [Limitazione dell’accesso ai parametri di Systems Manager mediante policy IAM](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-access.html) nella *Guida per l’utente di AWS Systems Manager *.

## Schema di riferimento
<a name="dynamic-references-ssm-pattern"></a>

Per fare riferimento a un valore di testo semplice memorizzato in Systems Manager Parameter Store nel CloudFormation modello, utilizzare il seguente schema `ssm` di riferimento.

```
{{resolve:ssm:parameter-name:version}}
```

Il riferimento deve essere conforme allo schema di espressione regolare per parameter-name e version:

```
{{resolve:ssm:[a-zA-Z0-9_.\-/]+(:\d+)?}}
```

`parameter-name`  
Il nome del parametro in Archivio parametri . Il nome di parametro prevede la distinzione tra lettere maiuscole e minuscole.  
Obbligatorio.

`version`  
Un numero intero che specifica la versione del parametro da utilizzare. Se non specificate la versione esatta, CloudFormation utilizza la versione più recente del parametro ogni volta che create o aggiornate lo stack. Per ulteriori informazioni, consulta [Working with parameter versions](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-versions.html) nella *Guida per l’utente di AWS Systems Manager *.  
Opzionale.

## Esempi
<a name="dynamic-references-ssm-examples"></a>

**Topics**
+ [Parametro ID AMI pubblico](#dynamic-references-ssm-public-ami-example)
+ [Parametro ID AMI personalizzato](#dynamic-references-ssm-custom-ami-example)

### Parametro ID AMI pubblico
<a name="dynamic-references-ssm-public-ami-example"></a>

L’esempio seguente crea un’istanza EC2 che fa riferimento a un parametro AMI pubblico. Il riferimento dinamico recupera l’ID AMI Amazon Linux 2023 più recente dal parametro pubblico. Per ulteriori informazioni sui parametri pubblici, consulta [Discovering public parameters in Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-finding-public-parameters.html) nella *Guida per l’utente di AWS Systems Manager *.

#### JSON
<a name="dynamic-references-ssm-public-ami-example.json"></a>

```
{
    "Resources": {
        "MyInstance": {
            "Type": "AWS::EC2::Instance",
            "Properties": {
                "ImageId": "{{resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}",
                "InstanceType": "t2.micro"
            }
        }
    }
}
```

#### YAML
<a name="dynamic-references-ssm-public-ami-example.yaml"></a>

```
Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: '{{resolve:ssm:/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-6.1-x86_64}}'
      InstanceType: t2.micro
```

### Parametro ID AMI personalizzato
<a name="dynamic-references-ssm-custom-ami-example"></a>

L’esempio seguente crea un modello di avvio EC2 che fa riferimento a un ID AMI personalizzato archiviato nel Parameter Store. Il riferimento dinamico recupera l’ID AMI dalla versione *`2`* del parametro `golden-ami` ogni volta che un’istanza viene avviata dal modello di avvio.

#### JSON
<a name="dynamic-references-ssm-custom-ami-example.json"></a>

```
{
    "Resources": {
        "MyLaunchTemplate": {
            "Type": "AWS::EC2::LaunchTemplate",
            "Properties": {
                "LaunchTemplateName": {
                    "Fn::Sub": "${AWS::StackName}-launch-template"
                },
                "LaunchTemplateData": {
                    "ImageId": "{{resolve:ssm:golden-ami:2}}",
                    "InstanceType": "t2.micro"
                }
            }
        }
    }
}
```

#### YAML
<a name="dynamic-references-ssm-custom-ami-example.yaml"></a>

```
Resources:
  MyLaunchTemplate:
    Type: AWS::EC2::LaunchTemplate
    Properties: 
      LaunchTemplateName: !Sub ${AWS::StackName}-launch-template
      LaunchTemplateData:
        ImageId: '{{resolve:ssm:golden-ami:2}}'
        InstanceType: t2.micro
```

# Ottenimento di un valore di stringa sicura da Systems Manager Parameter Store
<a name="dynamic-references-ssm-secure-strings"></a>

In CloudFormation, puoi utilizzare dati sensibili come password o chiavi di licenza senza esporli direttamente nei tuoi modelli archiviando i dati sensibili come «stringa sicura» in AWS Systems Manager Parameter Store. Per un’introduzione a Parameter Store, consulta [AWS Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html) nella *Guida per l’utente di AWS Systems Manager *.

Per utilizzare una stringa sicura di Parameter Store all'interno del modello, si utilizza un riferimento `ssm-secure` dinamico. CloudFormation non memorizza mai il valore effettivo della stringa sicura. Al contrario, archivia il riferimento dinamico letterale, che contiene il nome del parametro della stringa sicura in testo normale. 

Durante la creazione o gli aggiornamenti dello stack, CloudFormation accede al valore della stringa sicura secondo necessità, senza esporre il valore effettivo. Al momento, i parametri di stringa sicura possono essere utilizzati solo per proprietà di risorsa che supportano lo schema di riferimenti dinamici `ssm-secure`. Per ulteriori informazioni, consulta [Risorse che supportano schemi di parametri dinamici per stringhe sicure](#template-parameters-dynamic-patterns-resources).

CloudFormation non restituisce il valore effettivo del parametro per le stringhe sicure in nessuna chiamata API. Restituisce solo il riferimento dinamico letterale. Quando si confrontano le modifiche utilizzando i set di modifiche, confronta CloudFormation solo la stringa di riferimento dinamica letterale. Non risolve e non confronta i valori effettivi della stringa sicura.

Quando si utilizzano riferimenti dinamici `ssm-secure`, ci sono alcune cose importanti da tenere a mente:
+ CloudFormation non può accedere ai valori di Parameter Store da altri. Account AWS
+ CloudFormation non supporta l'uso delle etichette dei parametri di Systems Manager o dei parametri pubblici nei riferimenti dinamici.
+ Le stringhe sicure non sono supportate da Systems Manager nelle regioni `cn-north-1` e `cn-northwest-1`.
+ I riferimenti dinamici per valori sicuri, ad esempio`ssm-secure`, non sono attualmente supportati nelle risorse personalizzate.
+ Se è CloudFormation necessario ripristinare un aggiornamento dello stack e la versione specificata in precedenza di un parametro di stringa sicuro non è più disponibile, l'operazione di rollback avrà esito negativo. In questi casi, sono disponibili due opzioni:
  + Utilizza `CONTINUE_UPDATE_ROLLBACK` per ignorare la risorsa.
  + Ricrea il parametro di stringa sicura in Systems Manager Parameter Store e aggiornalo fino a che la versione del parametro è identica alla versione utilizzata nel modello. Utilizza quindi `CONTINUE_UPDATE_ROLLBACK` senza ignorare la risorsa.

## Risorse che supportano schemi di parametri dinamici per stringhe sicure
<a name="template-parameters-dynamic-patterns-resources"></a>

Le risorse che supportano lo schema di riferimenti dinamici `ssm-secure` includono:


| Risorsa | Tipo di proprietà | Properties | 
| --- | --- | --- | 
| [AWS::DirectoryService::MicrosoftANNUNCIO](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-directoryservice-microsoftad.html) |  | `Password` | 
| [AWS::DirectoryService::SimpleANNUNCIO](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-directoryservice-simplead.html) |  | `Password` | 
| [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-replicationgroup.html) |  | `AuthToken` | 
| [AWS::IAM::User](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-iam-user.html) | [LoginProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-iam-user-loginprofile.html) | `Password` | 
| [AWS::KinesisFirehose::DeliveryStream](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-kinesisfirehose-deliverystream.html) | [RedshiftDestinationConfiguration](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-kinesisfirehose-deliverystream-redshiftdestinationconfiguration.html) | `Password` | 
| [AWS::OpsWorks::App](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opsworks-app.html) | [Origine](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-opsworks-app-source.html) | `Password` | 
| [AWS::OpsWorks::Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opsworks-stack.html) | [CustomCookbooksSource](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-opsworks-stack-source.html) | `Password` | 
| [AWS::OpsWorks::Stack](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-opsworks-stack.html) | [RdsDbInstances](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-properties-opsworks-stack-rdsdbinstance.html) | `DbPassword` | 
| [AWS: :RDS:: DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbcluster.html) |  | `MasterUserPassword` | 
| [AWS: :RDS:: DBInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html) |  | `MasterUserPassword`  | 
| [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-redshift-cluster.html) |  | `MasterUserPassword` | 

## Schema di riferimento
<a name="dynamic-references-ssm-secure-pattern"></a>

Per fare riferimento a un valore di stringa sicuro da Systems Manager Parameter Store nel CloudFormation modello, utilizzare il seguente schema `ssm-secure` di riferimento.

```
{{resolve:ssm-secure:parameter-name:version}}
```

Il riferimento deve essere conforme allo schema di espressione regolare per parameter-name e version:

```
{{resolve:ssm-secure:[a-zA-Z0-9_.\-/]+(:\d+)?}}
```

`parameter-name`  
Il nome del parametro in Archivio parametri . Il nome di parametro prevede la distinzione tra lettere maiuscole e minuscole.  
Obbligatorio.

`version`  
Un numero intero che specifica la versione del parametro da utilizzare. Se non specificate la versione esatta, CloudFormation utilizza la versione più recente del parametro ogni volta che create o aggiornate lo stack. Per ulteriori informazioni, consulta [Working with parameter versions](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-versions.html) nella *Guida per l’utente di AWS Systems Manager *.  
Opzionale.

## Esempio
<a name="dynamic-references-ssm-secure-example"></a>

L’esempio seguente utilizza un riferimento dinamico `ssm-secure` per impostare la password per un utente IAM su una stringa sicura archiviata in Parameter Store. Come specificato, CloudFormation utilizzerà la versione *`10`* del `IAMUserPassword` parametro per le operazioni sullo stack e sul set di modifiche.

### JSON
<a name="dynamic-references-ssm-secure-example.json"></a>

```
  "MyIAMUser": {
    "Type": "AWS::IAM::User",
    "Properties": {
      "UserName": "MyUserName",
      "LoginProfile": {
        "Password": "{{resolve:ssm-secure:IAMUserPassword:10}}"
      }
    }
  }
```

### YAML
<a name="dynamic-references-ssm-secure-example.yaml"></a>

```
  MyIAMUser:
    Type: AWS::IAM::User
    Properties:
      UserName: 'MyUserName'
      LoginProfile:
        Password: '{{resolve:ssm-secure:IAMUserPassword:10}}'
```

# Ottieni un segreto o un valore segreto da Secrets Manager
<a name="dynamic-references-secretsmanager"></a>

Secrets Manager è un servizio che consente di archiviare e gestire in modo sicuro segreti come credenziali di database, password e chiavi API di terzi. Con Secrets Manager puoi archiviare e controllare centralmente l’accesso a questi segreti, in modo da poter sostituire le credenziali con codifica fissa nel codice (incluse le password), con una chiamata API a Secrets Manager per recuperare il segreto a livello di programmazione. Per ulteriori informazioni, consulta [Cos'è Gestione dei segreti AWS?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) nella *Guida Gestione dei segreti AWS per l'utente*.

Per utilizzare interi segreti o valori segreti archiviati in Secrets Manager all'interno dei CloudFormation modelli, si utilizzano riferimenti `secretsmanager` dinamici.

## Best practice
<a name="dynamic-references-secretsmanager-best-practices"></a>

Segui queste best practice quando utilizzi i riferimenti dinamici di Secrets Manager nei tuoi CloudFormation modelli:
+ **Usa riferimenti senza versione per i tuoi CloudFormation modelli**: archivia le credenziali in Secrets Manager e usa riferimenti dinamici senza specificare `version-id` parametri per supportare flussi di `version-stage` lavoro di rotazione segreti adeguati.
+ **Sfrutta la rotazione automatica**: utilizza la funzionalità di rotazione automatica di Secrets Manager con riferimenti dinamici senza versione per la gestione delle credenziali. Ciò garantisce che le credenziali vengano aggiornate regolarmente senza richiedere modifiche al modello. Per ulteriori informazioni, consulta [Rotazione dei segreti Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/rotating-secrets.html).
+ **Usa i riferimenti che presentano versioni con parsimonia**: specifica solo i parametri `version-stage` o `version-id` espliciti per scenari specifici come situazioni di test o rollback.

## Considerazioni
<a name="dynamic-references-secretsmanager-considerations"></a>

Quando si utilizzano riferimenti dinamici `secretsmanager`, è necessario tenere a mente alcune considerazioni importanti:
+ CloudFormation non tiene traccia della versione di un segreto utilizzata nelle distribuzioni precedenti. Pianifica attentamente la tua strategia di gestione del segreto prima di implementare i riferimenti dinamici. Se possibile, utilizza riferimenti senza versione per sfruttare la rotazione automatica del segreto. Monitora e convalida gli aggiornamenti delle risorse quando apporti modifiche alle configurazioni dei riferimenti dinamici, ad esempio durante la transizione da riferimenti dinamici senza versioni a quelli con versioni e viceversa.
+ L'aggiornamento del solo valore segreto in Secrets Manager non comporta automaticamente CloudFormation il recupero del nuovo valore. CloudFormation recupera il valore segreto solo durante la creazione di risorse o gli aggiornamenti che modificano la risorsa contenente il riferimento dinamico. 

  Ad esempio, supponiamo che il modello includa una risorsa [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html) in cui la proprietà `MasterPassword` è impostata su un riferimento dinamico di Secrets Manager. Dopo aver creato uno stack da questo modello, aggiorna il valore del segreto in Secrets Manager. Tuttavia, la proprietà `MasterPassword` mantiene il vecchio valore della password. 

  Per applicare il nuovo valore segreto, è necessario modificare la `AWS::RDS::DBInstance` risorsa nel CloudFormation modello ed eseguire un aggiornamento dello stack. 

  Per evitare questo processo manuale in futuro, ti consigliamo di utilizzare Secrets Manager per ruotare in automatico il segreto. 
+ I riferimenti dinamici per valori sicuri, ad esempio`secretsmanager`, non sono attualmente supportati nelle risorse personalizzate.
+ Il riferimento dinamico `secretsmanager` può essere utilizzato in tutte le proprietà di risorsa. L'utilizzo del riferimento `secretsmanager` dinamico indica che né Secrets Manager né CloudFormation i log devono rendere persistente alcun valore segreto risolto. Tuttavia, il valore di segreto può essere visualizzato nel servizio proprietario della risorsa in cui è utilizzato. Rivedi l’utilizzo per evitare perdite di dati segreti.

## Permissions
<a name="dynamic-references-secretsmanager-permissions"></a>

Per specificare un segreto archiviato in Secrets Manager, devi disporre dell’autorizzazione alla chiamata per il segreto [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html).

## Schema di riferimento
<a name="dynamic-references-secretsmanager-pattern"></a>

Per fare riferimento ai segreti di Secrets Manager nel tuo CloudFormation modello, usa il seguente schema `secretsmanager` di riferimento.

```
{{resolve:secretsmanager:secret-id:secret-string:json-key:version-stage:version-id}}
```

`secret-id`  
Il nome o l’ARN del segreto.  
Per accedere a un segreto nel tuo Account AWS, devi solo specificare il nome del segreto. Per accedere a un segreto in un altro Account AWS, specifica l'ARN completo del segreto.  
Obbligatorio.

`secret-string`  
L’unico valore supportato è `SecretString`. Il valore predefinito è `SecretString`.

`json-key`  
Il nome della chiave della coppia chiave-valore di cui intendi recuperare il valore. Se non specifichi a`json-key`, CloudFormation recupera l'intero testo segreto.  
Questo segmento può non includere il carattere di due punti (`:`).

`version-stage`  
L’etichetta temporanea della versione del segreto da utilizzare. Secrets Manager utilizza le etichette temporanee per tenere traccia delle differenti versioni durante il processo di rotazione. Se utilizzi `version-stage`, non specificare `version-id`. Se non specifichi né `version-stage` né `version-id`, la versione di default sarà la `AWSCURRENT`.  
Questo segmento può non includere il carattere di due punti (`:`).

`version-id`  
L’identificatore univoco della versione del segreto da utilizzare. Se specifichi `version-id`, non è necessario specificare anche `version-stage`. Se non specifichi né `version-stage` né `version-id`, la versione di default sarà la `AWSCURRENT`.  
Questo segmento può non includere il carattere di due punti (`:`).

## Esempi
<a name="dynamic-references-secretsmanager-examples"></a>

**Topics**
+ [Recupero dei valori nome utente e password da un segreto](#dynamic-references-secretsmanager-examples-user-name-and-password)
+ [Recupero dell’intero SecretString](#dynamic-references-secretsmanager-examples-entire-secretstring)
+ [Recupero di un valore da una versione specifica di un segreto](#dynamic-references-secretsmanager-examples-specific-version)
+ [Recuperare segreti da un altro Account AWS](#dynamic-references-secretsmanager-examples-secrets-from-another-account)

### Recupero dei valori nome utente e password da un segreto
<a name="dynamic-references-secretsmanager-examples-user-name-and-password"></a>

L’esempio [https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html) seguente recupera i valori nome utente e password archiviati nel segreto `MySecret`. Questo esempio mostra lo schema consigliato per i riferimenti dinamici senza versione, che utilizza automaticamente la versione `AWSCURRENT` e supporta i flussi di lavoro di rotazione di Secrets Manager senza richiedere modifiche al modello.

#### JSON
<a name="dynamic-references-secretsmanager-examples-user-name-and-password.json"></a>

```
{
    "MyRDSInstance": {
        "Type": "AWS::RDS::DBInstance",
        "Properties": {
            "DBName": "MyRDSInstance",
            "AllocatedStorage": "20",
            "DBInstanceClass": "db.t2.micro",
            "Engine": "mysql",
            "MasterUsername": "{{resolve:secretsmanager:MySecret:SecretString:username}}",
            "MasterUserPassword": "{{resolve:secretsmanager:MySecret:SecretString:password}}"
        }
    }
}
```

#### YAML
<a name="dynamic-references-secretsmanager-examples-user-name-and-password.yaml"></a>

```
  MyRDSInstance:
    Type: AWS::RDS::DBInstance
    Properties:
      DBName: MyRDSInstance
      AllocatedStorage: '20'
      DBInstanceClass: db.t2.micro
      Engine: mysql
      MasterUsername: '{{resolve:secretsmanager:MySecret:SecretString:username}}'
      MasterUserPassword: '{{resolve:secretsmanager:MySecret:SecretString:password}}'
```

### Recupero dell’intero SecretString
<a name="dynamic-references-secretsmanager-examples-entire-secretstring"></a>

Il riferimento dinamico seguente recupera `SecretString` per `MySecret`.

```
{{resolve:secretsmanager:MySecret}}
```

In alternativa:

```
{{resolve:secretsmanager:MySecret::::}}
```

### Recupero di un valore da una versione specifica di un segreto
<a name="dynamic-references-secretsmanager-examples-specific-version"></a>

Il riferimento dinamico seguente recupera il valore `password` per la versione `AWSPREVIOUS` di `MySecret`.

```
{{resolve:secretsmanager:MySecret:SecretString:password:AWSPREVIOUS}}
```

### Recuperare segreti da un altro Account AWS
<a name="dynamic-references-secretsmanager-examples-secrets-from-another-account"></a>

Il riferimento dinamico seguente recupera `SecretString` per `MySecret` che si trova in un altro Account AWS. È necessario specificare l'ARN segreto completo per accedere ai segreti in un altro. Account AWS

```
{{resolve:secretsmanager:arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret}}
```

Il riferimento dinamico seguente recupera il valore `password` per `MySecret` che si trova in un altro Account AWS. È necessario specificare l'ARN segreto completo per accedere ai segreti in un altro. Account AWS

```
{{resolve:secretsmanager:arn:aws:secretsmanager:us-west-2:123456789012:secret:MySecret:SecretString:password}}
```