

• La AWS Systems Manager CloudWatch dashboard non sarà più disponibile dopo il 30 aprile 2026. I clienti possono continuare a utilizzare la CloudWatch console Amazon per visualizzare, creare e gestire le proprie CloudWatch dashboard Amazon, proprio come fanno oggi. Per ulteriori informazioni, consulta la [documentazione di Amazon CloudWatch Dashboard](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Dashboards.html). 

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

# Integrazioni di prodotti e servizi con Systems Manager
<a name="integrations"></a>

Per impostazione predefinita, AWS Systems Manager si integra con gli Servizi AWS, nonché con altri prodotti e servizi. Le informazioni seguenti possono essere utili per configurare Systems Manager per l'integrazione con i prodotti e i servizi utilizzati. 
+ [Integrazione con Servizi AWS](integrations-aws.md)
+  [Integrazione con altri prodotti e servizi](integrations-partners.md)

# Integrazione con Servizi AWS
<a name="integrations-aws"></a>

Tramite l'uso di documenti Systems Manager Command (documenti SSM) e runbook di automazione, è possibile utilizzare AWS Systems Manager per l'integrazione con. Servizi AWS Per ulteriori informazioni su queste risorse, vedere [Documenti di AWS Systems Manager](documents.md).

Systems Manager è integrato con quanto segue Servizi AWS.

## Calcolo
<a name="integrations-aws-compute"></a>


|  |  | 
| --- |--- |
| Amazon Elastic Compute Cloud (Amazon EC2) |  [Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/) fornisce capacità di elaborazione scalabili in Cloud AWS. L'utilizzo Amazon EC2 elimina la necessità di investimenti anticipati in hardware e ti permette di sviluppare e distribuire più rapidamente le applicazioni. Puoi utilizzare Amazon EC2 per avviare il numero di server virtuali necessari, configurare la sicurezza e i servizi di rete, nonché gestire l'archiviazione. Systems Manager consente di eseguire diverse attività su istanze EC2. Ad esempio, è possibile avviare, configurare, gestire, eseguire il mantenimento, risolvere i problemi e connettersi in modo sicuro alle istanze EC2. È inoltre possibile utilizzare Systems Manager per distribuire software, determinare lo stato di conformità e raccogliere l'inventario dalle istanze EC2. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 
| Amazon EC2 Auto Scaling |  Il [dimensionamento automatico](https://docs.aws.amazon.com/autoscaling/ec2/userguide/) assicura che l'utente disponga del numero corretto di istanze EC2 disponibili per gestire il carico dell'applicazione. È possibile creare raccolte di istanze EC2, denominate gruppi con dimensionamento automatico. Systems Manager consente di automatizzare le procedure comuni, come l'applicazione di patch Amazon Machine Image (AMI) utilizzato nel modello con dimensionamento automatico per il gruppo Auto Scaling.  Ulteriori informazioni [Aggiornamento delle AMIs per i gruppi Auto Scaling](automation-tutorial-update-patch-windows-ami-autoscaling.md)   | 
| Amazon Elastic Container Service (Amazon ECS) |  [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/) è un servizio rapido e altamente scalabile di gestione dei container che consente di eseguire, arrestare e gestire container Docker in un cluster. Systems Manager ti consente di gestire le istanze del container in remoto e di inserire dati sensibili nei container archiviando tali dati nei parametri in Parameter Store, uno strumento di Systems Manager, quindi facendovi riferimento nella definizione del container. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 
| AWS Lambda |  [Lambda](https://docs.aws.amazon.com/lambda/latest/dg/) è un servizio di calcolo che consente di eseguire il codice senza provisioning o gestione di server. Lambda esegue il codice solo quando è necessario e si dimensiona automaticamente, da poche richieste al giorno a migliaia al secondo. Systems Manager consente di utilizzare le funzioni Lambda all'interno del contenuto del runbook di automazione utilizzando l'operazione `aws:invokeLambdaFunction`. Per utilizzare i parametri AWS Lambda delle funzioni, puoi utilizzare l'estensione Lambda AWS Parameters and Secrets per recuperare i valori dei parametri e memorizzarli nella cache per usi futuri. Parameter Store  Ulteriori informazioni [Aggiorna un golden AMI usando Automation AWS Lambda, e Parameter Store](automation-tutorial-update-patch-golden-ami.md)  [Utilizzo Parameter Store dei parametri nelle AWS Lambda funzioni](ps-integration-lambda-extensions.md)  | 

## Internet of Things (IoT)
<a name="integrations-aws-IoT"></a>


|  |  | 
| --- |--- |
| AWS IoT Greengrass dispositivi principali |  [AWS IoT Greengrass](https://docs.aws.amazon.com/greengrass/v2/developerguide/) è un servizio di runtime edge IoT open source e cloud che ti aiuta a creare, distribuire e gestire applicazioni IoT sui tuoi dispositivi. Systems Manager offre supporto nativo per i dispositivi AWS IoT Greengrass principali.   Ulteriori informazioni [Gestione dei dispositivi edge con Systems Manager](systems-manager-setting-up-edge-devices.md)   | 
| AWS IoT dispositivi principali |  [AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/)fornisce i servizi cloud che collegano i dispositivi IoT ad altri dispositivi e servizi AWS cloud. AWS IoT fornisce software per dispositivi che possono aiutarti a integrare i tuoi dispositivi IoT in soluzioni AWS IoT basate. Se i tuoi dispositivi sono in grado di connettersi a AWS IoT, AWS IoT puoi connetterli ai servizi cloud che AWS fornisce. Systems Manager supporta i dispositivi AWS IoT principali purché tali dispositivi siano configurati come *nodi gestiti* in un ambiente [ibrido e multicloud](operating-systems-and-machine-types.md#supported-machine-types).   Ulteriori informazioni [Gestione dei nodi in ambienti ibridi e multicloud con Systems Manager](systems-manager-hybrid-multicloud.md)   | 

## Archiviazione
<a name="integrations-aws-productgroup"></a>


|  |  | 
| --- |--- |
| Amazon Simple Storage Service (Amazon S3) |  [Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/) è un servizio di storage su Internet. È concepito per rendere più accessibili agli sviluppatori risorse informatiche su grande scala per il Web. Amazon S3 dispone di una semplice interfaccia web service che consente di archiviare e recuperare qualsiasi quantità di dati, in qualunque momento e ovunque sul Web. Systems Manager consente di eseguire script remoti e documenti SSM archiviati in Amazon S3. Distributor, uno strumento in AWS Systems Manager, utilizza Amazon S3 per archiviare i pacchetti. Puoi anche inviare output ad Amazon S3 per Run Command e Session Manager, strumenti di AWS Systems Manager. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 

## Strumenti per developer
<a name="integrations-aws-developer-tools"></a>


|  |  | 
| --- |--- |
| AWS CodeBuild |  [CodeBuild](https://docs.aws.amazon.com/codebuild/latest/userguide/)è un servizio di compilazione completamente gestito nel cloud. CodeBuild compila il codice sorgente, esegue test unitari e produce artefatti pronti per l'implementazione. CodeBuild elimina la necessità di fornire, gestire e scalare i propri server di build. Parameter Store consente di memorizzare informazioni sensibili per le specifiche di compilazione e i progetti. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 
| AWS CDK |   AWS Cloud Development Kit (AWS CDK) È un framework per definire l'infrastruttura cloud come codice, con linguaggi di programmazione e distribuirla tramite AWS CloudFormation. Application Manager consente di visualizzare i costrutti CDK raggruppati come applicazioni, visualizzare la struttura dell'applicazione, comprese le risorse sottostanti, visualizzare avvisi, analizzare e correggere i problemi operativi e tenere traccia dei costi nella console di Application Manager. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 

## Sicurezza, identità e conformità
<a name="integrations-aws-security-identify-compliance"></a>


|  |  | 
| --- |--- |
| AWS Identity and Access Management (IAM) |  [IAM](https://docs.aws.amazon.com/IAM/latest/UserGuide/) è un servizio web che ti aiuta a controllare in modo sicuro l'accesso alle AWS risorse. Utilizza IAM per controllare chi è autenticato (accesso effettuato) e autorizzato (dispone di autorizzazioni) per l’utilizzo di risorse. Systems Manager consente di controllare l'accesso ai servizi utilizzando IAM. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 
|  Gestione dei segreti AWS  |  [Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) fornisce una gestione più facile dei segreti. I segreti possono essere le credenziali dei database, le password, le chiavi API di terza parte e anche le parti di testo arbitrario. Parameter Store consente di recuperare i segreti di Secrets Manager durante l'utilizzo di altri Servizi AWS che già supportano i riferimenti ai parametri Parameter Store.  Ulteriori informazioni [Riferimento ai Gestione dei segreti AWS segreti dei parametri Parameter Store](integration-ps-secretsmanager.md)   | 
| AWS Security Hub CSPM |  [Security Hub CSPM](https://docs.aws.amazon.com//securityhub/latest/userguide/what-is-securityhub.html) ti offre una visione completa degli avvisi di sicurezza ad alta priorità e dello stato di conformità in tutto il mondo. Account AWS Security Hub CSPM aggrega, organizza e dà priorità agli avvisi di sicurezza, o ai risultati, provenienti da più fonti. Servizi AWS Quando attivi l'integrazione tra Security Hub CSPM ePatch Manager, uno strumento in, Security Hub AWS Systems Manager, CSPM monitora lo stato di applicazione delle patch delle tue flotte dal punto di vista della sicurezza. I dettagli sulla conformità delle patch vengono esportati automaticamente in Security Hub CSPM. In questo modo è possibile utilizzare una singola vista per monitorare centralmente lo stato di conformità delle patch e tenere traccia di altri risultati relativi alla sicurezza. Puoi ricevere avvisi quando i nodi della tua flotta non rispettano la conformità delle patch e rivedere i risultati di conformità delle patch nella console CSPM di Security Hub.  Puoi anche integrare Security Hub CSPM con Explorer eOpsCenter, strumenti in. AWS Systems Manager L'integrazione con Security Hub CSPM consente di ricevere i risultati da Security Hub CSPM in e. Explorer OpsCenter I risultati di Security Hub CSPM forniscono informazioni di sicurezza che puoi utilizzare Explorer e OpsCenter aggregare e intervenire sui tuoi problemi di sicurezza, prestazioni e operativi. AWS Systems Manager L'utilizzo del Security Hub CSPM è a pagamento. Per ulteriori informazioni, consulta i prezzi [CSPM di Security Hub](https://aws.amazon.com/security-hub/pricing/). [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 

## Crittografia e PKI
<a name="integrations-aws-cryptography-pki"></a>


|  |  | 
| --- |--- |
| AWS Key Management Service (AWS KMS) |  [AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/) è un servizio gestito che consente la creazione e il controllo di chiavi gestite dal cliente, chiavi di crittografia per la codifica dei dati. Systems Manager consente di creare `SecureString` parametri e crittografare i dati Session Manager della sessione. AWS KMS  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 

## Gestione e governance
<a name="integrations-aws-management-governance"></a>


|  |  | 
| --- |--- |
| AWS CloudFormation |  [CloudFormation](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/) è un servizio che aiuta a modellare e configurare le risorse di Amazon Web Services, in modo da dedicare meno tempo alla gestione di tali risorse e concentrarsi invece sulle applicazioni eseguite in AWS. Parameter Store è una fonte per riferimenti dinamici. I riferimenti dinamici offrono un modo compatto e potente per specificare valori esterni che vengono archiviati e gestiti in altri servizi inclusi nei modelli di CloudFormation stack.  Ulteriori informazioni [Utilizzo di riferimenti dinamici per specificare valori di modello](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html)   | 
| AWS CloudTrail |  [CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/)è uno strumento Servizio AWS che vi aiuta ad autorizzare la governance, la conformità e il controllo operativo e dei rischi del vostro. Account AWS Le azioni intraprese da un utente, da un ruolo o da un Servizio AWS vengono registrate come eventi in. CloudTrail Gli eventi includono le azioni intraprese in Console di gestione AWS, AWS Command Line Interface (AWS CLI) e AWS SDKs e APIs. Systems Manager si integra con CloudTrail cui acquisisce la maggior parte delle chiamate API Systems Manager come eventi. Queste includono le chiamate API avviate dalla console Systems Manager e le chiamate effettuate a Systems Manager APIs.  Ulteriori informazioni [Registrazione delle chiamate AWS Systems Manager API con AWS CloudTrail](monitoring-cloudtrail-logs.md)   | 
|  CloudWatch Registri Amazon |  [Amazon CloudWatch Logs](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/) ti consente di centralizzare i log di tutti i tuoi sistemi, applicazioni e quelli Servizi AWS che utilizzi. È quindi possibile visualizzarli, ricercarli per codici di errore o modelli specifici, filtrarli in base a campi specifici o archiviarli in modo sicuro per analisi future. Systems Manager supporta l'invio di registri per SSM AgentRun Command, e Session Manager a CloudWatch Logs. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 
| Amazon EventBridge |  [EventBridge](https://docs.aws.amazon.com/eventbridge/latest/userguide/)fornisce un flusso quasi in tempo reale di eventi di sistema che descrive i cambiamenti nelle risorse di Amazon Web Services. Utilizzando regole semplici che puoi configurare rapidamente, puoi abbinare gli eventi e indirizzarli a una o più funzioni o flussi di destinazione. EventBridge viene a conoscenza dei cambiamenti operativi man mano che si verificano. EventBridge risponde a questi cambiamenti operativi e adotta le misure correttive necessarie. Queste operazioni includono l'invio di messaggi di risposta all'ambiente, l'attivazione di funzioni e l'acquisizione di informazioni sullo stato. Systems Manager supporta più eventi che EventBridge consentono di intraprendere azioni in base al contenuto di tali eventi.  Ulteriori informazioni [Monitoraggio degli eventi di Systems Manager con Amazon EventBridge](monitoring-eventbridge-events.md)  Amazon EventBridge è il modo preferito per gestire i tuoi eventi. CloudWatch Events e EventBridge 2 sono lo stesso servizio e la stessa API di base, ma EventBridge offrono più funzionalità. Le modifiche apportate in una delle due console CloudWatch o EventBridge si riflettono in ciascuna console. Per ulteriori informazioni, consulta la [https://docs.aws.amazon.com/eventbridge/](https://docs.aws.amazon.com/eventbridge/).  | 
| AWS Config |  [AWS Config](https://docs.aws.amazon.com/config/latest/developerguide/)fornisce una visualizzazione dettagliata della configurazione delle AWS risorse del tuo Account AWS. Questo include le relazioni tra le risorse e la maniera in cui sono state configurate. Ciò consente di vedere come cambiano le configurazioni e le relazioni nel tempo. Systems Manager è integrato con AWS Config e fornisce più regole che ti aiutano a ottenere visibilità sulle tue istanze EC2. Queste regole consentono di identificare quali istanze EC2 sono gestite da Systems Manager, configurazioni del sistema operativo, aggiornamenti a livello di sistema, applicazioni installate, configurazioni di rete e altro ancora. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 
| AWS Trusted Advisor |  [Trusted Advisor](https://aws.amazon.com/premiumsupport/technology/trusted-advisor/) è uno strumento online che fornisce indicazioni in tempo reale per poter effettuare il provisioning delle tue risorse seguendo le best practice AWS . Systems Manager ospita Trusted Advisor ed è possibile visualizzare Trusted Advisor i dati inExplorer. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 
| AWS Organizations |  [Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/) è un servizio di gestione degli account che consente di consolidare più account Account AWS in un'organizzazione da creare e gestire centralmente. Organizations include funzionalità di gestione degli account e fatturazione consolidata che consentono di soddisfare al meglio le esigenze di budget, sicurezza e conformità dell'azienda. L'integrazione tra [Change Manager](change-manager.md), uno strumento di AWS Systems Manager, con Organizations consente di utilizzare un account amministratore delegato per gestire richieste di modifica, modelli di modifica e approvazioni per l'intera organizzazione tramite questo singolo account. L'integrazione di Organizations con [Inventory](systems-manager-inventory.md) AWS Systems Manager, uno strumento che [Explorer](Explorer.md)consente di aggregare i dati di inventario e operativi (OpsData) da più Regioni AWS e Account AWS. L'integrazione traQuick Setup, uno strumento in AWS Systems Manager, e Organizations automatizza le attività comuni di configurazione dei servizi e implementa configurazioni di servizio basate sulle migliori pratiche tra le unità organizzative (). OUs  | 

## Reti e distribuzione di contenuti
<a name="integrations-aws-networking-content-delivery"></a>


|  |  | 
| --- |--- |
| AWS PrivateLink |  [AWS PrivateLink](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html)consente di connettere privatamente il cloud privato virtuale (VPC) ai servizi endpoint VPC Servizi AWS e supportati senza richiedere un gateway Internet, un dispositivo NAT, una connessione VPN o una connessione. Direct Connect  Systems Manager supporta nodi gestiti che si connettono a Systems Manager APIs tramite AWS PrivateLink. Ciò migliora il livello di sicurezza dei nodi gestiti perché AWS PrivateLink limita tutto il traffico di rete tra i nodi gestiti, Systems Manager e Amazon EC2 alla rete Amazon. Ciò significa che non è necessario che i nodi gestiti abbiano accesso a Internet.  Ulteriori informazioni [Migliora la sicurezza delle istanze EC2 utilizzando gli endpoint VPC per Systems Manager](setup-create-vpc.md)    | 

## Analisi
<a name="integrations-aws-analytics"></a>


|  |  | 
| --- |--- |
| Amazon Athena |  [Athena](https://docs.aws.amazon.com/athena/latest/ug/) è un servizio interattivo di esecuzione di query che consente l'analisi di dati direttamente in Amazon Simple Storage Service (Amazon S3) con SQL standard. Con poche azioni Console di gestione AWS, puoi indirizzare Athena ai tuoi dati archiviati in Amazon S3 e iniziare a utilizzare SQL standard per eseguire query singole e ottenere risultati in pochi secondi. Systems Manager Inventory si integra con Athena per aiutarti a interrogare i dati di inventario da Regioni AWS più e. Account AWS L'integrazione Athena utilizza la sincronizzazione dei dati delle risorse in modo da poter visualizzare i dati di inventario di tutti i nodi gestiti sulla pagina **Vista dettagliata** nella console Inventario di Systems Manager. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 
| AWS Glue |  [AWS Glue](https://docs.aws.amazon.com/glue/latest/dg/) è un servizio ETL (estrazione, trasformazione e caricamento) completamente gestito che consente di catalogare, pulire e migliorare la qualità dei dati in modo semplice e conveniente, oltre a trasferirli in modo sicuro tra datastore e flussi di dati.  Systems Manager li utilizza AWS Glue per eseguire la scansione dei dati di inventario nel bucket S3.  Ulteriori informazioni [Esecuzione di query sui dati di inventario da più regioni e account](systems-manager-inventory-query.md)   | 
| Amazon Quick |  [Quick](https://docs.aws.amazon.com/quicksuite/latest/userguide/what-is.html) è un servizio di analisi aziendale che puoi utilizzare per creare visualizzazioni, eseguire analisi una tantum e ottenere informazioni aziendali dai tuoi dati. Si può rilevare automaticamente le origini dati AWS e funziona anche con le origini dati. La sincronizzazione dei dati della risorsa di Systems Manager invia i dati di inventario raccolti da tutti i nodi gestiti in un singolo bucket S3. Puoi usare Quick per interrogare e analizzare i dati aggregati. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 

## Integrazione di applicazioni
<a name="integrations-aws-application-integration"></a>


|  |  | 
| --- |--- |
| Amazon Simple Notification Service (Amazon SNS) |  [Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/) è un servizio Web che coordina e gestisce la consegna o l'invio di messaggi a clienti o endpoint iscritti. Systems Manager genera stati per più servizi che possono essere acquisiti dalle notifiche Amazon SNS. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-aws.html)  | 

## Console di gestione AWS
<a name="integrations-aws-management-console"></a>


|  |  | 
| --- |--- |
| AWS Resource Groups |  [Resource Groups](https://docs.aws.amazon.com/ARG/latest/userguide/) organizza AWS le tue risorse. I gruppi di risorse semplificano la gestione, il monitoraggio e l'automatizzazione delle attività per numeri elevati di risorse. Tipi di risorse di Systems Manager come nodi gestiti, documenti SSM, finestre di manutenzione, parametri Parameter Store e patch di base possono essere aggiunte ai gruppi di risorse.  Ulteriori informazioni [Che cosa sono i AWS Resource Groups?](https://docs.aws.amazon.com/ARG/latest/userguide/welcome.html)   | 

**Topics**
+ [Calcolo](#integrations-aws-compute)
+ [Internet of Things (IoT)](#integrations-aws-IoT)
+ [Archiviazione](#integrations-aws-productgroup)
+ [Strumenti per developer](#integrations-aws-developer-tools)
+ [Sicurezza, identità e conformità](#integrations-aws-security-identify-compliance)
+ [Crittografia e PKI](#integrations-aws-cryptography-pki)
+ [Gestione e governance](#integrations-aws-management-governance)
+ [Reti e distribuzione di contenuti](#integrations-aws-networking-content-delivery)
+ [Analisi](#integrations-aws-analytics)
+ [Integrazione di applicazioni](#integrations-aws-application-integration)
+ [Console di gestione AWS](#integrations-aws-management-console)
+ [Esecuzione di script da Amazon S3](integration-s3.md)
+ [Riferimento ai Gestione dei segreti AWS segreti dei parametri Parameter Store](integration-ps-secretsmanager.md)
+ [AWS KMS crittografia per Parameter Store SecureString i parametri](secure-string-parameter-kms-encryption.md)
+ [Utilizzare i segreti Gestione dei segreti AWS in Amazon Elastic Kubernetes Service](integrate_eks.md)
+ [Utilizzo Parameter Store dei parametri nelle AWS Lambda funzioni](ps-integration-lambda-extensions.md)

# Esecuzione di script da Amazon S3
<a name="integration-s3"></a>

Questa sezione illustra come scaricare ed eseguire script da Amazon Simple Storage Service (Amazon S3). Il seguente argomento include informazioni e terminologia relative ad Amazon S3. Per maggiori informazioni su Amazon S3, consulta la pagina [Cos'è Amazon S3](https://docs.aws.amazon.com/AmazonS3/latest/userguide/Welcome.html)? Puoi eseguire diversi tipi di script, tra cui Ansible Playbooks, Python, Ruby, Shell e. PowerShell 

È anche possibile scaricare una directory che includa più script. Quando si esegue lo script principale nella directory, esegue AWS Systems Manager anche tutti gli script di riferimento inclusi nella directory. 

Tieni presenti le informazioni importanti sull'esecuzione di script da Amazon S3 riportate di seguito:
+ Systems Manager non verifica che lo script possa essere eseguito su un nodo. Prima di scaricare ed eseguire lo script, verifica che il software necessario sia installato sul nodo. In alternativa, è possibile creare un documento composito che installa il software utilizzando uno degli strumenti Run Command oState Manager, quindi AWS Systems Manager, scarica ed esegue lo script.
+ Verifica che il tuo utente, ruolo o gruppo disponga delle autorizzazioni AWS Identity and Access Management (IAM) necessarie per leggere dal bucket S3.
+ Assicurati che il profilo dell'istanza sulle istanze Amazon Elastic Compute Cloud (Amazon EC2) abbia autorizzazioni `s3:ListBucket` e `s3:GetObject`. Se il profilo dell'istanza non dispone di queste autorizzazioni, il sistema non riesce a scaricare lo script dal bucket S3. Per ulteriori informazioni, consulta [Utilizzo dei profili dell'istanza](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2_instance-profiles.html) in *Guida per l'utente di IAM*. 

## Esecuzione di uno script Shell da Amazon S3
<a name="integration-s3-shell"></a>

Le seguenti informazioni includono procedure per aiutarti a eseguire script da Amazon Simple Storage Service (Amazon S3) utilizzando la AWS Systems Manager console o (). AWS Command Line Interface AWS CLI Sebbene negli esempi vengano utilizzati script di shell, è possibile sostituirli con altri tipi di script.

### Esecuzione di uno script di shell da Amazon S3 (console)
<a name="integration-s3-ruby-console"></a>

**Esecuzione di uno script di shell da Amazon S3**

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 **Run Command**.

1. Seleziona **Esegui comando**.

1. Nell'elenco **Documento di comando**, scegli **`AWS-RunRemoteScript`**.

1. In **Parametri di comando**, esegui le seguenti operazioni:
   + In **Tipo di origine**, seleziona **S3**. 
   + Nella casella di testo **Source Info (Informazioni origine)**, inserire le informazioni necessarie per accedere all'origine nel formato seguente. Sostituisci ogni *example resource placeholder* con le tue informazioni.
**Nota**  
Sostituisci https://s3. *aws-api-domain*con l'URL del tuo bucket. Puoi copiare l'URL del bucket in Amazon S3 nella scheda **Oggetti**.

     ```
     {"path":"https://s3.aws-api-domain/path to script"}
     ```

     Di seguito è riportato un esempio di :

     ```
     {"path":"https://amzn-s3-demo-bucket.s3.us-east-2.amazonaws.com/scripts/shell/helloWorld.sh"}
     ```
   + Nel campo **Riga di comando**, inserisci i parametri per l'esecuzione di script. Ecco un esempio.

     ```
     helloWorld.sh argument-1 argument-2
     ```
   + (Facoltativo) Nel campo **Directory di lavoro**, inserisci il nome di una directory sul nodo su cui si desidera scaricare ed eseguire lo script.
   + (Facoltativo) In **Timeout di esecuzione**, specifica il numero di secondi che il sistema dovrà attendere prima di interrompere l'esecuzione del comando di script. 

1. Nella sezione **Destinazioni**, scegli i nodi gestiti in cui si desidera eseguire questa operazione specificando i tag, selezionando manualmente le istanze, i dispositivi edge o indicando un gruppo di risorse.
**Suggerimento**  
Se un nodo gestito che ti aspetti di vedere non è presente nell'elenco, consulta [Risoluzione dei problemi relativi alla disponibilità dei nodi gestiti](fleet-manager-troubleshooting-managed-nodes.md) per suggerimenti sulla risoluzione dei problemi.

1. In **Altri parametri**:
   + In **Commento**, digita le informazioni su questo comando.
   + In **Timeout (secondi)**, specifica il numero di secondi che il sistema dovrà attendere prima di generare un errore per l'intera esecuzione del comando. 

1. Per **Controllo velocità**:
   + In **Simultaneità**, specifica un numero o una percentuale di nodi gestiti su cui eseguire contemporaneamente il comando.
**Nota**  
Se hai selezionato le destinazioni specificando i tag applicati ai nodi gestiti o specificando i gruppi di AWS risorse e non sei sicuro del numero di nodi gestiti come target, limita il numero di destinazioni che possono eseguire il documento contemporaneamente specificando una percentuale.
   + Per **Soglia di errore**, specificare quando interrompere l'esecuzione del comando sulle altri nodi gestiti dopo un errore su un numero o una percentuale di nodi. Se, ad esempio, si specificano tre errori, Systems Manager interrompe l'invio del comando quando riceve il quarto errore. Anche i nodi gestiti che stanno ancora elaborando il comando potrebbero inviare errori.

1. (Facoltativo) Nella sezione **Opzioni di output**, per salvare l'output del comando in un file, seleziona la casella **Scrivi l'output del comando in un bucket S3**. Digita i nomi del bucket e del prefisso (cartella) nelle caselle.
**Nota**  
Le autorizzazioni S3 che danno la possibilità di scrivere dati in un bucket S3 sono quelle del profilo dell'istanza (per istanze EC2) o del ruolo di servizio IAM (in macchine attivate da sistemi ibridi) assegnate all'istanza, non quelle dell'utente IAM che esegue questo processo. Per ulteriori informazioni, consulta le pagine [Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager](setup-instance-permissions.md) oppure [Creazione di un ruolo di servizio IAM per un ambiente ibrido](hybrid-multicloud-service-role.md). Inoltre, se il bucket S3 specificato si trova su un Account AWS diverso, assicurarsi che il profilo dell'istanza o il ruolo di servizio IAM associato al nodo gestito disponga delle autorizzazioni necessarie per scrivere su quel bucket.

1. Se vuoi che vengano inviate notifiche sullo stato dell'esecuzione del comando, nella sezione **Notifiche SNS** selezionara la casella di controllo **Abilita notifiche SNS**.

   Per ulteriori informazioni sulla configurazione delle notifiche Amazon SNS per Run Command, consulta [Monitoraggio delle modifiche di stato di Systems Manager utilizzando le notifiche Amazon SNS](monitoring-sns-notifications.md).

1. Scegli **Esegui**.

### Esecuzione di uno script di shell da Amazon S3 (riga di comando)
<a name="integration-s3-shell-cli"></a>

1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

   Per informazioni, consulta la pagina [Installazione o aggiornamento della versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Eseguire il seguente comando seguente. Sostituisci ogni *example resource placeholder* con le tue informazioni.
**Nota**  
Sostituisci https://s3. *aws-api-domain*/*script path*con l'URL del tuo bucket. Puoi copiare l'URL del bucket in Amazon S3 nella scheda **Objects** (Oggetti).

------
#### [ Linux & macOS ]

   ```
   aws ssm send-command \
       --document-name "AWS-RunRemoteScript" \
       --output-s3-bucket-name "amzn-s3-demo-bucket" \
       --output-s3-key-prefix "key-prefix" \
       --targets "Key=InstanceIds,Values=instance-id" \
       --parameters '{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/script path\"}"],"commandLine":["script name and arguments"]}'
   ```

------
#### [ Windows ]

   ```
   aws ssm send-command ^
       --document-name "AWS-RunRemoteScript" ^
       --output-s3-bucket-name "amzn-s3-demo-bucket" ^
       --output-s3-key-prefix "key-prefix" ^
       --targets "Key=InstanceIds,Values=instance-id" ^
       --parameters "sourceType"="S3",sourceInfo='{\"path\":\"https://s3.aws-api-domain/script path\"}',"commandLine"="script name and arguments"
   ```

------
#### [ PowerShell ]

   ```
   Send-SSMCommand `
       -DocumentName "AWS-RunRemoteScript" `
       -OutputS3BucketName "amzn-s3-demo-bucket" `
       -OutputS3KeyPrefix "key-prefix" `
       -Target @{Key="InstanceIds";Values=@("instance-id")} `
       -Parameter @{
           sourceType = "S3"; 
           sourceInfo = '{"path": "s3://bucket-name/path/to/script"}'; 
           commandLine = "script name and arguments"
       }
   ```

------

# Riferimento ai Gestione dei segreti AWS segreti dei parametri Parameter Store
<a name="integration-ps-secretsmanager"></a>

Gestione dei segreti AWS consente di organizzare e gestire importanti dati di configurazione come credenziali, password e chiavi di licenza. Parameter Store, uno strumento in AWS Systems Manager, è integrato con Secrets Manager in modo da poter recuperare i segreti di Secrets Manager quando se ne utilizzano altri Servizi AWS che già supportano i riferimenti ai Parameter Store parametri. Questi servizi includono Amazon Elastic Compute Cloud (Amazon EC2), Amazon Elastic Container Service (Amazon ECS), AWS Lambda CloudFormation, AWS CodeBuild e altri strumenti di Systems Manager. AWS CodeDeploy Avvalendoti di Parameter Store per fare riferimento ai segreti di Secrets Manager, configura un processo coerente e sicuro per la chiamata e l'utilizzo di segreti e dati di riferimento in script di configurazione e codice. 

Per ulteriori informazioni su Secrets Manager, vedi [Cos'è Gestione dei segreti AWS?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) nella *Guida Gestione dei segreti AWS per l'utente*.

## Restrizioni
<a name="integration-ps-secretsmanager-restrictions"></a>

Nell'utilizzo di Parameter Store per fare riferimento ai segreti di Secrets Manager, tieni presenti le seguenti restrizioni:
+ È possibile recuperare i segreti di Secrets Manager solo utilizzando le operazioni [GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html)e [GetParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameters.html)API. Le operazioni di modifica e le operazioni API di interrogazione avanzata, come [DescribeParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_DescribeParameters.html)e [GetParametersByPath](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParametersByPath.html), non sono supportate per Secrets Manager.
+ È possibile utilizzare AWS Command Line Interface (AWS CLI) e the SDKs per recuperare un segreto utilizzando. AWS Tools for Windows PowerShellParameter Store
+ I segreti di Secrets Manager in Parameter Store devono avere il prefisso di `/aws/reference/secretsmanager`. Di seguito vengono mostrati gli esempi:

  `/aws/reference/secretsmanager/CFCreds1`

  `/aws/reference/secretsmanager/myapp/db/password`
+ Parameter Storepolitiche honors AWS Identity and Access Management (IAM) allegate ai segreti di Secrets Manager. Se, ad esempio, non vi ha accesso, l'Utente 1 non può nemmeno recuperare il Segreto A tramite Parameter Store.
+ I parametri che fanno riferimento ai segreti di Secrets Manager non ammettono l'utilizzo del controllo delle versioni Parameter Store o le funzionalità della cronologia.
+ Parameter Store rispetta le fasi delle versioni Secrets Manager. Nel caso di riferimento a una fase di versione, sono ammessi numeri, lettere, un punto (.), un trattino (-) o un trattino basso (\$1). Eventuali altri simboli specificati nella fase della versione comportano l'esito negativo del tentativo di riferimento.

## Come fare riferimento a un segreto di Secrets Manager con Parameter Store
<a name="integration-ps-secretsmanager-create"></a>

La procedura seguente descrive come fare riferimento a un segreto di Secrets Manager utilizzando Parameter Store APIs. La procedura fa riferimento ad altre procedure riportate nella *Guida per l'utente di Gestione dei segreti AWS *.

**Nota**  
Prima di iniziare, verifica di disporre dell'autorizzazione necessaria per fare riferimento a segreti di Secrets Manager nei parametri Parameter Store. Se disponi delle autorizzazioni di amministratore in Secrets Manager e Systems Manager, puoi fare riferimento o recuperare i segreti utilizzando. Parameter Store APIs Se si fa riferimento a un segreto di Secrets Manager in un parametro Parameter Store senza disporre dell'autorizzazione di accesso al segreto, il tentativo di riferimento ha esito negativo. Per ulteriori informazioni, consulta [Autenticazione e controllo degli accessi Gestione dei segreti AWS](https://docs.aws.amazon.com/secretsmanager/latest/userguide/auth-and-access.html) nella *Guida per l'utente di Gestione dei segreti AWS *.

**Importante**  
Parameter Store funge da servizio di trasferimento per i riferimenti a segreti di Secrets Manager. Parameter Store non conserva dati o metadati relativi ai segreti. Il riferimento è stateless.

**Per fare riferimento a un segreto di Secrets Manager con Parameter Store**

1. Creazione di un segreto in Secrets Manager. Per ulteriori informazioni, consulta [Creare e gestire segreti](https://docs.aws.amazon.com/secretsmanager/latest/userguide/managing-secrets.html) con. Gestione dei segreti AWS

1. Fai riferimento a un segreto utilizzando AWS CLI AWS Tools for Windows PowerShell, o l'SDK. Quando si fa riferimento a un segreto di Secrets Manager, il nome del parametro deve iniziare con il seguente percorso riservato: `/aws/reference/secretsmanager/`. Una volta specificato questo percorso, Systems Manager è in condizione di recuperare il segreto da Secrets Manager invece che da Parameter Store. Ecco alcuni esempi di nomi che fanno riferimento correttamente ai segreti di Secrets Manager, `CFCreds1` e `DBPass`, con Parameter Store.
   + `/aws/reference/secretsmanager/CFCreds1`
   + `/aws/reference/secretsmanager/DBPass`

   Ecco un esempio di codice Java che fa riferimento a una chiave di accesso e a una chiave segreta archiviate in Secrets Manager. Questo codice esemplificativo configura un client Amazon DynamoDB. Il codice recupera i dati di configurazione e le credenziali da Parameter Store. I dati di configurazione sono memorizzati come parametro di stringa in Parameter Store, mentre le credenziali risultano archiviate su Secrets Manager. Anche se archiviati in servizi diversi, entrambi i set di dati possono essere fruiti accedendo da Parameter Store, tramite l'API `GetParameter`.

   ```
   /**
   * Initialize Systems Manager client with default credentials
   */
   AWSSimpleSystemsManagement ssm = AWSSimpleSystemsManagementClientBuilder.defaultClient();
    
   ...
    
   /**
   * Example method to launch DynamoDB client with credentials different from default
   * @return DynamoDB client
   */
   AmazonDynamoDB getDynamoDbClient() {
       //Getting AWS credentials from Secrets Manager using GetParameter
       BasicAWSCredentials differentAWSCreds = new BasicAWSCredentials(
               getParameter("/aws/reference/secretsmanager/access-key"),
               getParameter("/aws/reference/secretsmanager/secret-key"));
    
       //Initialize the DynamoDB client with different credentials
       final AmazonDynamoDB client = AmazonDynamoDBClient.builder()
               .withCredentials(new AWSStaticCredentialsProvider(differentAWSCreds))
               .withRegion(getParameter("region")) //Getting configuration from Parameter Store
               .build();
       return client;
   }
    
   /**
   * Helper method to retrieve parameter value
   * @param parameterName identifier of the parameter
   * @return decrypted parameter value
   */
   public GetParameterResult getParameter(String parameterName) {
       GetParameterRequest request = new GetParameterRequest();
       request.setName(parameterName);
       request.setWithDecryption(true);
       return ssm.newGetParameterCall().call(request).getParameter().getValue();
   }
   ```

   Ecco alcuni AWS CLI esempi. Utilizza il comando `aws secretsmanager list-secrets` per trovare i nomi dei tuoi segreti.

   **AWS CLI Esempio 1: fare riferimento utilizzando il nome del segreto**

------
#### [ Linux & macOS ]

   ```
   aws ssm get-parameter \
       --name /aws/reference/secretsmanager/s1-secret \
       --with-decryption
   ```

------
#### [ Windows ]

   ```
   aws ssm get-parameter ^
       --name /aws/reference/secretsmanager/s1-secret ^
       --with-decryption
   ```

------

   Il comando restituisce informazioni simili alle seguenti.

   ```
   {
       "Parameter": {
           "Name": "/aws/reference/secretsmanager/s1-secret",
           "Type": "SecureString",
           "Value": "Fl*MEishm!al875",
           "Version": 0,
           "SourceResult": 
                 "{
                      \"CreatedDate\": 1526334434.743,
                      \"Name\": \"s1-secret\",
                      \"VersionId\": \"aaabbbccc-1111-222-333-123456789\",
                      \"SecretString\": \"Fl*MEishm!al875\",
                      \"VersionStages\": [\"AWSCURRENT\"],
                      \"ARN\": \"arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-E18LRP\"
                  }"
           "LastModifiedDate": 2018-05-14T21:47:14.743Z,
           "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                  E18LRP",
         }
   }
   ```

   **AWS CLI Esempio 2: riferimento che include l'ID della versione**

------
#### [ Linux & macOS ]

   ```
   aws ssm get-parameter \
       --name /aws/reference/secretsmanager/s1-secret:11111-aaa-bbb-ccc-123456789 \
       --with-decryption
   ```

------
#### [ Windows ]

   ```
   aws ssm get-parameter ^
       --name /aws/reference/secretsmanager/s1-secret:11111-aaa-bbb-ccc-123456789 ^
       --with-decryption
   ```

------

   Il comando restituisce informazioni simili alle seguenti.

   ```
   {
       "Parameter": {
           "Name": "/aws/reference/secretsmanager/s1-secret",
           "Type": "SecureString",
           "Value": "Fl*MEishm!al875",
           "Version": 0,
           "SourceResult": 
                 "{
                      \"CreatedDate\": 1526334434.743,
                      \"Name\": \"s1-secret\",
                      \"VersionId\": \"11111-aaa-bbb-ccc-123456789\",
                      \"SecretString\": \"Fl*MEishm!al875\",
                      \"VersionStages\": [\"AWSCURRENT\"],
                      \"ARN\": \"arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-E18LRP\"
                  }"
           "Selector": ":11111-aaa-bbb-ccc-123456789"
         }
           "LastModifiedDate": 2018-05-14T21:47:14.743Z,
           "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                  E18LRP",
   }
   ```

   **AWS CLI Esempio 3: Riferimento che include la fase della versione**

------
#### [ Linux & macOS ]

   ```
   aws ssm get-parameter \
       --name /aws/reference/secretsmanager/s1-secret:AWSCURRENT \
       --with-decryption
   ```

------
#### [ Windows ]

   ```
   aws ssm get-parameter ^
       --name /aws/reference/secretsmanager/s1-secret:AWSCURRENT ^
       --with-decryption
   ```

------

   Il comando restituisce informazioni simili alle seguenti.

   ```
   {
       "Parameter": {
           "Name": "/aws/reference/secretsmanager/s1-secret",
           "Type": "SecureString",
           "Value": "Fl*MEishm!al875",
           "Version": 0,
           "SourceResult": 
                 "{
                      \"CreatedDate\": 1526334434.743,
                      \"Name\": \"s1-secret\",
                      \"VersionId\": \"11111-aaa-bbb-ccc-123456789\",
                      \"SecretString\": \"Fl*MEishm!al875\",
                      \"VersionStages\": [\"AWSCURRENT\"],
                      \"ARN\": \"arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-E18LRP\"
                  }"
           "Selector": ":AWSCURRENT"
         }
         "LastModifiedDate": 2018-05-14T21:47:14.743Z,
         "ARN": "arn:aws:secretsmanager:us-east-2:123456789012:secret:s1-secret-
                   E18LRP",
   }
   ```

# AWS KMS crittografia per AWS Systems ManagerParameter Store SecureString i parametri
<a name="secure-string-parameter-kms-encryption"></a>

Con AWS Systems Manager Parameter Store, è possibile creare [SecureString parametri, ossia parametri](https://docs.aws.amazon.com//systems-manager/latest/userguide/systems-manager-parameter-store.html#what-is-a-parameter) con un nome di parametro in testo semplice e un valore di parametro crittografato. Parameter Storeviene utilizzato AWS KMS per crittografare e decrittografare i valori dei parametri dei parametri. `SecureString`

Con Parameter Store, è possibile creare, archiviare e gestire i dati come parametri con valori. È possibile creare un parametro in Parameter Store e utilizzarlo in più applicazioni e servizi soggetti a policy e autorizzazioni che tu stesso stabilisci. Quando è necessario modificare il valore di un parametro, è possibile modificare un'istanza piuttosto che gestire modifiche soggette a errore in numerose origini. Parameter Store supporta una struttura gerarchica per i nomi dei parametri, in modo da definire un parametro per utilizzi specifici. 

Per gestire i dati sensibili, è possibile creare parametri. `SecureString` Parameter Storeutilizza AWS KMS keys per crittografare i valori dei `SecureString` parametri quando vengono creati o modificati. Utilizza inoltre le chiavi KMS per decrittare i valori dei parametri al momento dell'accesso. È possibile utilizzare la [Chiave gestita da AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) che Parameter Store crea per l'account, oppure specificare la propria [chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk). 

**Importante**  
Parameter Store supporta solo [chiavi KMS simmetriche](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-choose-key-spec.html#symmetric-cmks). Non è possibile utilizzare una [chiave KMS asimmetrica](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html) per crittografare i parametri. Per informazioni su come determinare se una chiave KMS è o meno asimmetrica, consulta [Identifica i diversi tipi di chiavi](https://docs.aws.amazon.com/kms/latest/developerguide/identify-key-types.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

Parameter Store supporta due livelli di parametri `SecureString`: *standard* e *avanzati*. I parametri standard, che non possono superare i 4096 byte, sono crittografati e decrittati direttamente con la chiave KMS specificata. Per crittografare e decrittografare i parametri `SecureString` avanzati, Parameter Store utilizza la crittografia a busta con [AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/). È possibile convertire un parametro `SecureString` standard in un parametro avanzato, ma non è possibile convertire un parametro avanzato in uno standard. Per ulteriori informazioni sulla differenza tra parametri `SecureString` standard e avanzati, consulta [Gestione dei livelli dei parametri](parameter-store-advanced-parameters.md).

**Topics**
+ [Protezione dei parametri standard SecureString](#kms-encryption-securestring-standard)
+ [Protezione dei parametri avanzati SecureString](#kms-encryption-securestring-advanced)
+ [Impostazione delle autorizzazioni per crittografare e decrittografare i valori dei parametri](#parameter-policy-kms-encryption)
+ [Contesto di crittografia Parameter Store](#parameter-store-kms-encryption-context)
+ [Risoluzione dei problemi relativi alla chiave KMS in Parameter Store](#parameter-store-kms-cmk-troubleshooting)

## Protezione dei parametri standard SecureString
<a name="kms-encryption-securestring-standard"></a>

Parameter Store non esegue alcuna operazione di crittografia. Al contrario, si basa su AWS KMS per crittografare e decrittografare i valori dei parametri `SecureString`. Quando create o modificate il valore di un `SecureString` parametro standard, Parameter Store richiama l'operazione AWS KMS [Encrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html). Questa operazione usa una chiave KMS di crittografia simmetrica direttamente per crittografare il valore del parametro anziché utilizzare la chiave KMS per generare una [chiave dei dati](https://docs.aws.amazon.com/kms/latest/developerguide/data-keys.html). 

È possibile selezionare la chiave KMS utilizzata da Parameter Store per crittografare il valore del parametro. Non specificando una chiave KMS, Parameter Store usa la Chiave gestita da AWS generata automaticamente da Systems Manager nell'account. Questa chiave KMS ha l'alias `aws/ssm`.

Per visualizzare la chiave `aws/ssm` KMS predefinita per il tuo account, utilizza l'[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)operazione nell' AWS KMS API. L'esempio seguente utilizza il `describe-key` comando in the AWS Command Line Interface (AWS CLI) con il nome `aws/ssm` alias.

```
aws kms describe-key \
    --key-id alias/aws/ssm
```

Per creare un `SecureString` parametro standard, utilizzare l'[PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html)operazione nell'API Systems Manager. Ometti il parametro `Tier` o specifica un valore `Standard`, che è l'impostazione predefinita. Includi un parametro `Type` con un valore `SecureString`. Per specificare una chiave KMS, utilizza il parametro `KeyId`. L'impostazione predefinita è Chiave gestita da AWS per il tuo account,`aws/ssm`. 

Parameter Storequindi richiama l' AWS KMS `Encrypt`operazione con la chiave KMS e il valore del parametro plaintext. AWS KMS restituisce il valore crittografato del parametro, che viene Parameter Store memorizzato con il nome del parametro.

L'esempio seguente utilizza il comando [put-parameter](https://docs.aws.amazon.com/cli/latest/reference/ssm/put-parameter.html) di Systems Manager e il relativo `--type` parametro in AWS CLI per creare un `SecureString` parametro. Poiché il comando omette i parametri opzionali `--tier` e `--key-id`, Parameter Store crea un parametro `SecureString` standard e lo crittografa con la Chiave gestita da AWS.

```
aws ssm put-parameter \
    --name MyParameter \
    --value "secret_value" \
    --type SecureString
```

Il seguente esempio simile utilizza il parametro `--key-id` per specificare una [chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk). Nell'esempio viene utilizzato un ID chiave KMS per identificare la chiave KMS, ma è possibile utilizzare qualsiasi identificatore di chiave KMS valido. Poiché il comando omette il parametro `Tier` (`--tier`), Parameter Store crea un parametro `SecureString` standard, non uno avanzato.

```
aws ssm put-parameter \
    --name param1 \
    --value "secret" \
    --type SecureString \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
```

Quando si ottiene un parametro `SecureString` da Parameter Store, il valore è crittografato. Per ottenere un parametro, utilizzare l'[GetParameter ](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html)operazione nell'API Systems Manager.

L'esempio seguente utilizza il comando [get-parameter](https://docs.aws.amazon.com/cli/latest/reference/ssm/get-parameter.html) di Systems Manager in AWS CLI per ottenere il `MyParameter` parametro da Parameter Store senza decriptarne il valore.

```
aws ssm get-parameter --name MyParameter
```

```
{
    "Parameter": {
        "Type": "SecureString", 
        "Name": "MyParameter", 
        "Value": "AQECAHgnOkMROh5LaLXkA4j0+vYi6tmM17Lg"
    }
}
```

Per decrittografare il valore del parametro prima di restituirlo, impostare il parametro `WithDecryption` di `GetParameter` su `true`. Quando si utilizza`WithDecryption`, Parameter Store richiama l'operazione Decrypt per conto dell'utente per AWS KMS [decrittografare](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) il valore del parametro. Di conseguenza, la richiesta `GetParameter` restituisce il parametro con un valore di parametro in testo normale, come mostrato nel seguente esempio.

```
aws ssm get-parameter \
    --name MyParameter \
    --with-decryption
```

```
{
    "Parameter": {
        "Type": "SecureString", 
        "Name": "MyParameter", 
        "Value": "secret_value"
    }
}
```

Il seguente flusso di lavoro mostra il modo in cui Parameter Store utilizza una chiave KMS per crittografare e decrittare un parametro `SecureString` standard.

### Crittografare un parametro standard
<a name="kms-encryption-securestring-standard-encrypt"></a>

1. Quando si utilizza `PutParameter` per creare un parametro `SecureString`, Parameter Store invia una richiesta `Encrypt` a AWS KMS. Questa richiesta include il valore del parametro in testo normale, la chiave KMS scelta e il [contesto di crittografia di Parameter Store](#parameter-store-kms-encryption-context). Durante la trasmissione a AWS KMS, il valore in chiaro del `SecureString` parametro è protetto da Transport Layer Security (TLS).

1. AWS KMS crittografa il valore del parametro con la chiave KMS e il contesto di crittografia specificati. Restituisce il testo criptato a Parameter Store, che memorizza il nome e il valore crittografato del parametro.  
![\[Crittografia di un valore di parametro standard SecureString\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/images/service-pstore-standard.png)

### Decrittografia di un parametro standard
<a name="kms-encryption-securestring-standard-decrypt"></a>

1. Quando includi il `WithDecryption` parametro in una `GetParameter` richiesta, Parameter Store invia una `Decrypt` richiesta a AWS KMS con il valore del `SecureString` parametro crittografato e il [contesto di Parameter Store crittografia](#parameter-store-kms-encryption-context).

1. AWS KMS utilizza la stessa chiave KMS e il contesto di crittografia fornito per decrittografare il valore crittografato. Restituisce il valore del parametro in testo normale (decrittografato) a Parameter Store. Durante la trasmissione, i dati in testo normale sono protetti da TLS.

1. Parameter Store restituisce il valore del parametro in testo normale nella risposta `GetParameter`.

## Protezione dei parametri avanzati SecureString
<a name="kms-encryption-securestring-advanced"></a>

Quando si utilizza `PutParameter` per creare un `SecureString` parametro avanzato, Parameter Store utilizza la crittografia a [busta con AWS Encryption SDK e una crittografia](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/how-it-works.html#envelope-encryption) simmetrica AWS KMS key per proteggere il valore del parametro. Ogni valore di parametro avanzato è crittografato con una chiave di dati univoca e la chiave di dati è crittografata con una chiave KMS. È possibile utilizzare la [Chiave gestita da AWS](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk) per l'account (`aws/ssm`) o qualsiasi chiave gestita dal cliente.

[AWS Encryption SDK](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/) è una libreria open source lato client, che consente di crittografare e decrittografare i dati utilizzando gli standard di settore e le best practice. È supportata su più piattaforme e in più linguaggi di programmazione, compresa un'interfaccia a riga di comando. È possibile visualizzare il codice sorgente e contribuire al suo sviluppo in. GitHub 

Per ogni valore del `SecureString` parametro, Parameter Store chiama AWS Encryption SDK per crittografare il valore del parametro utilizzando una chiave dati univoca che AWS KMS genera ([GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)). AWS Encryption SDK Ritorna a Parameter Store un [messaggio crittografato](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/concepts.html#message) che include il valore del parametro crittografato e una copia crittografata della chiave dati univoca. Parameter Storememorizza l'intero messaggio crittografato nel valore del `SecureString` parametro. Quindi, quando si ottiene un valore di `SecureString` parametro avanzato, Parameter Store utilizza il AWS Encryption SDK per decrittografare il valore del parametro. Ciò richiede una chiamata per AWS KMS decrittografare la chiave dati crittografata.

Per creare un `SecureString` parametro avanzato, utilizzare l'[PutParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutParameter.html)operazione nell'API Systems Manager. Imposta il valore del parametro `Tier` su `Advanced`. Includi un parametro `Type` con un valore `SecureString`. Per specificare una chiave KMS, utilizza il parametro `KeyId`. L'impostazione predefinita è Chiave gestita da AWS per il tuo account,`aws/ssm`. 

```
aws ssm put-parameter \
    --name MyParameter \
    --value "secret_value" \
    --type SecureString \
    --tier Advanced
```

Il seguente esempio simile utilizza il parametro `--key-id` per specificare una [chiave gestita dal cliente](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk). Questo esempio utilizza il nome della risorsa Amazon (ARN) della chiave KMS, ma è possibile usare qualunque identificatore di chiave KMS valido. 

```
aws ssm put-parameter \
    --name MyParameter \
    --value "secret_value" \
    --type SecureString \
    --tier Advanced \
    --key-id arn:aws:kms:us-east-2:987654321098:key/1234abcd-12ab-34cd-56ef-1234567890ab
```

Quando si ottiene un `SecureString` parametro daParameter Store, il suo valore è il messaggio crittografato AWS Encryption SDK restituito. Per ottenere un parametro, utilizzare l'[GetParameter](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html)operazione nell'API Systems Manager.

L'esempio seguente utilizza l'operazione `GetParameter` di Systems Manager per ottenere il parametro `MyParameter` da Parameter Store senza decrittarne il valore.

```
aws ssm get-parameter --name MyParameter
```

```
{
    "Parameter": {
        "Type": "SecureString", 
        "Name": "MyParameter", 
        "Value": "AQECAHgnOkMROh5LaLXkA4j0+vYi6tmM17Lg"
    }
}
```

Per decrittografare il valore del parametro prima di restituirlo, impostare il parametro `WithDecryption` di `GetParameter` su `true`. Quando si utilizza`WithDecryption`, Parameter Store richiama l'operazione AWS KMS [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) per conto dell'utente per decrittografare il valore del parametro. Di conseguenza, la richiesta `GetParameter` restituisce il parametro con un valore di parametro in testo normale, come mostrato nel seguente esempio.

```
aws ssm get-parameter \
    --name MyParameter \
    --with-decryption
```

```
{
    "Parameter": {
        "Type": "SecureString", 
        "Name": "MyParameter", 
        "Value": "secret_value"
    }
}
```

Non è possibile convertire un parametro `SecureString` avanzato in uno standard, ma è possibile convertire un parametro `SecureString` standard in uno avanzato. Per convertire un parametro `SecureString` standard in uno `SecureString` avanzato, utilizza l'operazione `PutParameter` con il parametro `Overwrite`. `Type` deve essere `SecureString` e il valore `Tier` deve essere `Advanced`. Il parametro `KeyId` che identifica una chiave gestita dal cliente è facoltativo. Se lo Parameter Store ometti, usa il per l'account. Chiave gestita da AWS È possibile specificare qualsiasi chiave KMS che il principale è autorizzato a utilizzare, anche se è stata utilizzata un'altra chiave KMS per crittografare il parametro standard.

Quando si utilizza il parametro `Overwrite`, Parameter Store utilizza AWS Encryption SDK per crittografare il valore del parametro. Quindi memorizza il nuovo messaggio crittografato in Parameter Store.

```
aws ssm put-parameter \
    --name myStdParameter \
    --value "secret_value"  \
    --type SecureString \
    --tier Advanced \
    --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \
    --overwrite
```

Il seguente flusso di lavoro mostra il modo in cui Parameter Store utilizza una chiave KMS per crittografare e decrittare un parametro `SecureString` avanzato.

### Crittografare un parametro avanzato
<a name="kms-encryption-securestring-advanced-encrypt"></a>

1. Quando si utilizza `PutParameter` per creare un `SecureString` parametro avanzato, Parameter Store utilizza AWS Encryption SDK e AWS KMS per crittografare il valore del parametro. Parameter Storelo chiama AWS Encryption SDK con il valore del parametro, la chiave KMS specificata e il contesto di [Parameter Storecrittografia](#parameter-store-kms-encryption-context).

1.  AWS Encryption SDK invia una [GenerateDataKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_GenerateDataKey.html)richiesta a AWS KMS con l'identificatore della chiave KMS specificata e il Parameter Store contesto di crittografia. AWS KMS restituisce due copie della chiave dati univoca: una in testo semplice e una crittografata con la chiave KMS. Il contesto di crittografia viene utilizzato per crittografare la chiave di dati.

1.  AWS Encryption SDK utilizza la chiave dati in testo semplice per crittografare il valore del parametro. Restituisce un [messaggio crittografato](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/concepts.html#message) che include il valore di parametro crittografato, la chiave di dati crittografata e altri dati, tra cui il contesto di crittografia Parameter Store.

1. Parameter Store memorizza il messaggio crittografato come valore del parametro.  
![\[Crittografia di un valore di parametro avanzato SecureString\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/images/service-pstore-advanced.png)

### Decrittografare un parametro avanzato
<a name="kms-encryption-securestring-advanced-decrypt"></a>

1. È possibile includere il parametro `WithDecryption` in una richiesta `GetParameter` per ottenere un parametro `SecureString` avanzato. In questo caso, Parameter Store passa il [messaggio crittografato](https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/concepts.html#message) dal valore di parametro a un metodo di decrittografia di AWS Encryption SDK.

1.  AWS Encryption SDK Richiama l'operazione AWS KMS [Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html). Trasferisce la chiave di dati crittografata e il contesto di crittografia Parameter Store dal messaggio crittografato.

1. AWS KMS utilizza la chiave KMS e il contesto di Parameter Store crittografia per decrittografare la chiave dati crittografata. Quindi restituisce la chiave di dati in testo normale (decrittografato) a AWS Encryption SDK.

1.  AWS Encryption SDK utilizza la chiave dati in testo semplice per decrittografare il valore del parametro. Restituisce il valore del parametro in testo normale a Parameter Store. 

1. Parameter Store verifica il contesto di crittografia e restituisce il valore del parametro in testo normale nella risposta `GetParameter`.

## Impostazione delle autorizzazioni per crittografare e decrittografare i valori dei parametri
<a name="parameter-policy-kms-encryption"></a>

Per crittografare un valore di parametro `SecureString` standard, l'utente necessita dell'autorizzazione `kms:Encrypt`. Per crittografare un valore di parametro `SecureString` avanzato, l'utente necessita dell'autorizzazione `kms:GenerateDataKey`. Per decrittografare entrambi i tipi di valori di parametri `SecureString`, l'utente necessita dell'autorizzazione `kms:Decrypt`. 

È possibile utilizzare le policy AWS Identity and Access Management (IAM) per consentire o negare l'autorizzazione a un utente di chiamare Systems Manager `PutParameter` e `GetParameter` le operazioni.

Inoltre, quando si utilizzano chiavi gestite dal cliente per crittografare i valori dei parametri `SecureString`, è possibile utilizzare le policy IAM e le policy della chiave per gestire le autorizzazioni di crittografia e decrittazione. Tuttavia, non è possibile definire policy di controllo degli accessi per la chiave KMS `aws/ssm` predefinita. Per informazioni dettagliate sul controllo dell'accesso a chiavi gestite dal cliente, consulta [Autorizzazioni e accesso con chiave KSM](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html) nella *Guida per gli sviluppatori di AWS Key Management Service *.

L'esempio seguente mostra una policy IAM progettata per parametri `SecureString` standard. Questa consente all'utente di chiamare l'operazione `PutParameter` di Systems Manager su tutti i parametri nel percorso `FinancialParameters`. La policy consente inoltre all'utente di richiamare l' AWS KMS `Encrypt`operazione su una chiave gestita dal cliente di esempio.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/FinancialParameters/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Encrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ]
}
```

------

L'esempio seguente mostra una policy IAM progettata per parametri `SecureString` avanzati. Questa consente all'utente di chiamare l'operazione `PutParameter` di Systems Manager su tutti i parametri nel percorso `ReservedParameters`. La policy consente inoltre all'utente di richiamare l' AWS KMS `GenerateDataKey`operazione su una chiave gestita dal cliente di esempio.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:PutParameter"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/ReservedParameters/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:GenerateDataKey"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id"
        }
    ]
}
```

------

L'esempio finale mostra anche una policy IAM che può essere utilizzata per parametri `SecureString` standard o avanzati. Questa consente all'utente di chiamare le operazioni `GetParameter` di Systems Manager (e le operazioni correlate) su tutti i parametri nel percorso `ITParameters`. La policy consente inoltre all'utente di richiamare l' AWS KMS `Decrypt`operazione su una chiave gestita dal cliente di esempio.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter*"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/ITParameters/*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ]
}
```

------

## Contesto di crittografia Parameter Store
<a name="parameter-store-kms-encryption-context"></a>

Un *contesto di crittografia* è un set di coppie chiave-valore che contiene dati arbitrari non segreti. Quando includi un contesto di crittografia in una richiesta di crittografia dei dati, associa AWS KMS crittograficamente il contesto di crittografia ai dati crittografati. lo stesso contesto di crittografia sia necessario per decrittografare i dati. 

È inoltre possibile utilizzare il contesto di crittografia per identificare un'operazione di crittografia nei record e nei log di controllo. Il contesto di crittografia viene visualizzato in testo normale nei log, ad esempio nei log di [AWS CloudTrail](https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-user-guide.html). 

Utilizza AWS Encryption SDK anche un contesto di crittografia, sebbene lo gestisca in modo diverso. Parameter Storefornisce il contesto di crittografia al metodo di crittografia. Associa AWS Encryption SDK crittograficamente il contesto di crittografia ai dati crittografati. Include il contesto di crittografia in testo normale nell'intestazione del messaggio crittografato restituito. Tuttavia AWS KMS, a differenza dei metodi di AWS Encryption SDK decrittografia, non utilizzano un contesto di crittografia come input. Invece, quando decrittografa i dati, AWS Encryption SDK ottiene il contesto di crittografia dal messaggio crittografato. Parameter Storeverifica che il contesto di crittografia includa il valore previsto prima di restituire all'utente il valore del parametro in chiaro. 

Parameter Store usa il seguente contesto di crittografia in tutte le operazioni di crittografia:
+ Chiave: `PARAMETER_ARN`
+ Valore: l'ARN (Amazon Resource Name) del parametro crittografato. 

Il formato del contesto di crittografia è il seguente:

```
"PARAMETER_ARN":"arn:aws:ssm:region-id:account-id:parameter/parameter-name"
```

Ad esempio, Parameter Store include questo contesto di crittografia nelle chiamate per crittografare e decrittografare il parametro in un esempio e in una regione`MyParameter`. Account AWS 

```
"PARAMETER_ARN":"arn:aws:ssm:us-east-2:111122223333:parameter/MyParameter"
```

Se il parametro è in un percorso gerarchico Parameter Store, il nome e il percorso sono inclusi nel contesto di crittografia. Ad esempio, questo contesto di crittografia viene utilizzato per crittografare e decrittografare il `MyParameter` parametro nel `/ReadableParameters` percorso in un esempio e in una regione. Account AWS 

```
"PARAMETER_ARN":"arn:aws:ssm:us-east-2:111122223333:parameter/ReadableParameters/MyParameter"
```

È possibile decrittografare un valore di `SecureString` parametro crittografato chiamando l' AWS KMS `Decrypt`operazione con il contesto di crittografia corretto e il valore del parametro crittografato restituito dall'`GetParameter`operazione Systems Manager. Tuttavia, consigliamo di decrittografare i valori dei parametri Parameter Store usando l'operazione `GetParameter` con il parametro `WithDecryption`. 

È possibile anche includere il contesto di crittografia nella policy IAM. Ad esempio, è possibile consentire a un utente di decrittografare solo un determinato valore di parametro o un set di valori di parametri.

La seguente istruzione di esempio della policy IAM consente all'utente di ottenere il valore del parametro `MyParameter` e di decrittarne il valore utilizzando la chiave KMS specificata. Tuttavia le autorizzazioni si applicano solo quando il contesto di crittografia corrisponde alla stringa specificata. Queste autorizzazioni non si applicano a qualsiasi altro parametro o chiave KMS e la chiamata a `GetParameter` ha esito negativo se il contesto di crittografia non corrisponde alla stringa.

Prima di utilizzare una dichiarazione politica come questa, sostituiscila *example ARNs* con valori validi.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:GetParameter*"
            ],
            "Resource": "arn:aws:ssm:us-east-1:111122223333:parameter/MyParameter"
        },
        {
            "Effect": "Allow",
            "Action": [
                "kms:Decrypt"
            ],
            "Resource": "arn:aws:kms:us-east-1:111122223333:key/key-id",
            "Condition": {
                "StringEquals": {
                    "kms:EncryptionContext:PARAMETER_ARN":"arn:aws:ssm:us-east-1:111122223333:parameter/MyParameter"
                }
            }
        }
    ]
}
```

------

## Risoluzione dei problemi relativi alla chiave KMS in Parameter Store
<a name="parameter-store-kms-cmk-troubleshooting"></a>

Per eseguire qualsiasi operazione su un `SecureString` parametro, è Parameter Store necessario essere in grado di utilizzare la chiave AWS KMS KMS specificata per l'operazione prevista. La maggior parte degli errori di Parameter Store relativi alle chiavi KMS sono causati da uno dei seguenti motivi:
+ Le credenziali utilizzate da un'applicazione non hanno l'autorizzazione per eseguire l'operazione specificata sulla chiave KMS. 

  Per risolvere questo errore, eseguire l'applicazione con credenziali differenti o modificare l'IAM o la policy della chiave che impedisce l'operazione. *Per assistenza su AWS KMS IAM e sulle politiche chiave, consulta [l'accesso e le autorizzazioni delle chiavi KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html) nella Guida per gli AWS Key Management Service sviluppatori.*
+ La chiave KMS non è stata trovata. 

  In genere questo accade quando si utilizza un identificatore errato per la chiave KMS. [Trova gli identificatori corretti](https://docs.aws.amazon.com/kms/latest/developerguide/find-cmk-id-arn.html) per la chiave KMS e riprova il comando. 
+ La chiave KMS non è abilitata. Quando ciò si verifica, Parameter Store restituisce un'InvalidKeyIdeccezione con un messaggio di errore dettagliato da. AWS KMS Se lo stato della chiave KMS è `Disabled`, [abilitalo](https://docs.aws.amazon.com/kms/latest/developerguide/enabling-keys.html). Se è `Pending Import`, completa la [procedura di importazione](https://docs.aws.amazon.com/kms/latest/developerguide/importing-keys.html). Se lo stato di chiave è `Pending Deletion`, [annulla l'eliminazione della chiave](https://docs.aws.amazon.com/kms/latest/developerguide/deleting-keys-scheduling-key-deletion.html) o utilizza un'altra chiave KMS.

  Per trovare lo [stato della chiave](https://docs.aws.amazon.com/kms/latest/developerguide/key-state.html) di una chiave KMS, usa l'[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)operazione. 

# Utilizza i parametri Parameter Store in Amazon Elastic Kubernetes Service
<a name="integrate_eks"></a>

Per mostrare i parametri da Parameter Store, uno strumento di AWS Systems Manager, come file montati in pod Amazon EKS, è possibile utilizzare l'AWS Secrets and Configuration Provider per il driver CSI di Kubernetes Secrets Store. ASCP funziona con la versione 1.17 o quella successiva del servizio Amazon Elastic Kubernetes che esegue un gruppo di nodi Amazon EC2. I gruppi di nodi AWS Fargate non sono supportati. 

Con ASCP, è possibile archiviare e gestire il parametro in Parameter Store e recuperarlo tramite i carichi di lavoro in esecuzione su Amazon EKS. Se il tuo parametro contiene molteplici coppie chiave-valore in formato JSON, puoi scegliere quali montare in Amazon EKS. L'ASCP utilizza la sintassi JMESPath per interrogare le coppie chiave-valore nel tuo segreto. L'ASCP funziona anche con i segreti Gestione dei segreti AWS.

L'ASCP offre due metodi di autenticazione con Amazon EKS. Il primo approccio utilizza i ruoli IAM per gli account di servizio (IRSA). Il secondo approccio utilizza Pod Identity. Ogni approccio ha i suoi vantaggi e casi d'uso.

## ASCP con ruoli IAM per gli account di servizio (IRSA)
<a name="csi_driver_overview"></a>

L'ASCP con i ruoli IAM per gli account di servizio (IRSA) ti consente di montare parametri da Parameter Store come file nei tuoi pod Amazon EKS. Questo approccio è adatto quando:
+ È necessario montare i parametri come file nei Pod.
+ Stai usando la versione 1.17 o quella successiva di Amazon EKS con i gruppi di nodi di Amazon EC2.
+ Vuoi recuperare coppie chiave-valore specifiche da parametri in formato JSON.

Per ulteriori informazioni, consulta [Usa AWS Secrets and Configuration Provider CSI con IAM Roles for Service Accounts (IRSA)](integrating_ascp_irsa.md).

## ASCP con Pod Identity
<a name="pod_identity_overview"></a>

L'ASCP con il metodo Pod Identity migliora la sicurezza e semplifica la configurazione per l'accesso ai parametri in Parameter Store. Questo approccio è utile quando:
+ È necessaria una gestione delle autorizzazioni più granulare a livello di pod.
+ Stai utilizzando la versione 1.24 o quella successiva di Amazon EKS.
+ Desideri prestazioni e scalabilità migliorate.

Per ulteriori informazioni, consulta [Usa AWS Secrets e Configuration Provider CSI con Pod Identity per Amazon EKS](ascp-pod-identity-integration.md).

## Scelta dell'approccio giusto
<a name="comparison"></a>

Considera i seguenti fattori al momento di decidere tra ASCP con IRSA e ASCP con Pod Identity:
+ Versione di Amazon EKS: Pod Identity richiede la versione 1.24 o quella successiva di Amazon EKS, mentre il driver CSI funziona con la versione 1.17 o quella successiva di Amazon EKS.
+ Requisiti di sicurezza: Pod Identity offre un controllo più granulare a livello di pod.
+ Prestazioni: Pod Identity generalmente offre prestazioni migliori in ambienti su larga scala.
+ Complessità: Pod Identity semplifica la configurazione eliminando la necessità di account di servizio separati.

Scegli il metodo più adatto ai tuoi requisiti specifici e all'ambiente Amazon EKS.

# Installa ASCP per Amazon EKS
<a name="ascp-eks-installation"></a>

Questa sezione spiega come installare AWS Secrets and Configuration Provider per Amazon EKS. Con ASCP, puoi montare parametri Parameter Store e segreti da Gestione dei segreti AWS file in Amazon EKS Pods.

## Prerequisiti
<a name="prerequisites"></a>
+ Cluster Amazon EKS
  + Versione 1.24 o successiva per Pod Identity
  + Versione 1.17 o successiva per IRSA
+  AWS CLI Installato e configurato
+ kubectl installato e configurato per il cluster Amazon EKS
+ Helm (versione 3.0 o successiva)

## Istalla e configura l'ASCP
<a name="integrating_csi_driver_install"></a>

L'ASCP è disponibile GitHub nel repository [secrets-store-csi-provider-aws](https://github.com/aws/secrets-store-csi-driver-provider-aws). Il repository contiene anche file YAML di esempio per la creazione e il montaggio di un segreto tramite la modifica del valore `objectType` da `secretsmanager` a `ssmparameter`. 

Durante l'installazione, puoi configurare l'ASCP per utilizzare un endpoint FIPS. Per un elenco degli endpoint di Systems Manager, consulta gli [endpoint del servizio di Systems Manager](https://docs.aws.amazon.com/general/latest/gr/ssm.html#ssm_region) nella *Riferimenti generali di Amazon Web Services*.

**Installazione dell'ASCP con l'utilizzo di Helm**

1. Per assicurarti che il repository punti al grafico più recente, utilizza `helm repo update.`

1. Aggiungi il grafico dei driver CSI di Secrets Store. 

   ```
   helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts
   ```

1. Installare il grafico. Per configurare la limitazione (della larghezza di banda della rete), aggiungi il seguente flag: `--set-json 'k8sThrottlingParams={"qps": "number of queries per second", "burst": "number of queries per second"}'`

   ```
   helm install -n kube-system csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver
   ```

1. Aggiungi il grafico ASCP.

   ```
   helm repo add aws-secrets-manager https://aws.github.io/secrets-store-csi-driver-provider-aws
   ```

1. Installare il grafico. Per utilizzare un endpoint FIPS, aggiungi il seguente flag: `--set useFipsEndpoint=true`

   ```
   helm install -n kube-system secrets-provider-aws aws-secrets-manager/secrets-store-csi-driver-provider-aws
   ```

**Installazione utilizzando lo YAML nel repository**
+ Utilizza i seguenti comandi:

  ```
  helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts
  helm install -n kube-system csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver
  kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/deployment/aws-provider-installer.yaml
  ```

## Verifica le installazioni
<a name="verify-ascp-installations"></a>

Per verificare le installazioni del cluster EKS, del driver CSI di Secrets Store e del plug-in ASCP, procedi nel seguente modo:

1. Verifica il cluster EKS:

   ```
   eksctl get cluster --name clusterName
   ```

   Questo comando deve restituire informazioni sul cluster.

1. Verifica l'installazione del driver CSI di Secrets Store:

   ```
   kubectl get pods -n kube-system -l app=secrets-store-csi-driver
   ```

   Dovresti vedere dei pod in esecuzione con nomi come `csi-secrets-store-secrets-store-csi-driver-xxx`.

1. Verifica l'installazione del plugin ASCP: 

------
#### [ YAML installation ]

   ```
   $ kubectl get pods -n kube-system -l app=csi-secrets-store-provider-aws
   ```

   Output di esempio:

   ```
   NAME                                     READY   STATUS    RESTARTS   AGE
   csi-secrets-store-provider-aws-12345      1/1     Running   0          2m
   ```

------
#### [ Helm installation ]

   ```
   $  kubectl get pods -n kube-system -l app=secrets-store-csi-driver-provider-aws
   ```

   Output di esempio:

   ```
   NAME                                              READY   STATUS    RESTARTS   AGE
   secrets-provider-aws-secrets-store-csi-driver-provider-67890       1/1     Running   0          2m
   ```

------

   Dovresti vedere dei pod nello stato `Running`.

Dopo aver eseguito questi comandi, se tutto è impostato correttamente, dovresti vedere tutti i componenti in esecuzione senza errori. In caso di problemi, potrebbe essere necessario risolverli controllando i log dei pod specifici che presentano problemi.

## Risoluzione dei problemi
<a name="troubleshooting"></a>

1. Per controllare i log del provider ASCP, esegui:

   ```
   kubectl logs -n kube-system -l app=csi-secrets-store-provider-aws
   ```

1. Controlla lo stato di tutti i pod nel namespace `kube-system`.

   Sostituiscilo *default placeholder text* con il tuo ID pod:

   ```
   kubectl -n kube-system get pods
   ```

   ```
   kubectl -n kube-system logs pod/pod-id
   ```

   Tutti i pod relativi al driver CSI e all'ASCP devono essere nello stato "In esecuzione".

1. Controlla la versione del driver CSI:

   ```
   kubectl get csidriver secrets-store.csi.k8s.io -o yaml
   ```

   Questo comando deve restituire informazioni sul driver CSI installato.

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

Per ulteriori informazioni su come utilizzare ASCP con Amazon EKS, consulta le seguenti risorse:
+ [Utilizzo di Pod Identity con Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [AWS Il driver CSI di Secrets Store è attivo GitHub](https://github.com/aws/secrets-store-csi-driver-provider-aws)

# Usa AWS Secrets e Configuration Provider CSI con Pod Identity per Amazon EKS
<a name="ascp-pod-identity-integration"></a>

L'integrazione di AWS Secrets and Configuration Provider con Pod Identity Agent per Amazon Elastic Kubernetes Service offre maggiore sicurezza, configurazione semplificata e prestazioni migliorate per le applicazioni in esecuzione su Amazon EKS. Pod Identity semplifica l'autenticazione AWS Identity and Access Management (IAM) per Amazon EKS durante il recupero di parametri AWS Systems Manager Parameter Store o segreti da Secrets Manager.

Amazon EKS Pod Identity semplifica il processo di configurazione delle autorizzazioni IAM per le applicazioni Kubernetes consentendo quest'azione direttamente tramite le interfacce Amazon EKS, riducendo il numero di passaggi ed eliminando la necessità di passare da Amazon EKS ai servizi IAM. [Pod Identity consente l'uso di un singolo ruolo IAM su più cluster senza aggiornare le policy di attendibilità e supporta i tag delle sessioni di ruolo](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-abac.html#pod-id-abac-tags) per un controllo degli accessi più granulare. Questo approccio non solo semplifica la gestione delle policy consentendo il riutilizzo delle politiche di autorizzazione tra i ruoli, ma migliora anche la sicurezza abilitando l'accesso alle risorse in base ai AWS tag corrispondenti.

## Come funziona
<a name="how-it-works"></a>

1. Pod Identity assegna un ruolo IAM al pod.

1. ASCP utilizza questo ruolo per l'autenticazione con. Servizi AWS

1. Se autorizzato, ASCP recupera i parametri richiesti e li rende disponibili al pod.

Per ulteriori informazioni, consulta [Scopri come funziona Amazon EKS Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-how-it-works.html) nella *Guida per l'utente di Amazon EKS*.

## Prerequisiti
<a name="prerequisites"></a>

**Importante**  
Pod Identity è supportato solo per Amazon EKS nel cloud. Non è supportato per [Amazon EKS Anywhere](https://aws.amazon.com/eks/eks-anywhere/) o per i cluster [Servizio Red Hat OpenShift su AWS](https://aws.amazon.com/rosa/)Kubernetes autogestiti sulle istanze Amazon EC2.
+ Cluster Amazon EKS (versione 1.24 o successiva)
+ Accesso AWS CLI e cluster Amazon EKS tramite `kubectl`
+ (Facoltativo) Accesso a due account Account AWS per l'accesso su più account

## Installazione dell'agente Amazon EKS Pod Identity
<a name="install-pod-identity-agent"></a>

Per utilizzare Pod Identity con il tuo cluster, devi installare il componente aggiuntivo dell'agente Amazon EKS Pod Identity.

**Installare l'agente Pod Identity**
+ Installa il componente aggiuntivo agente Pod Identity sul tuo cluster.

  *default placeholder text *Sostituiscili con i tuoi valori:

  ```
  eksctl create addon \
    --name eks-pod-identity-agent \
    --cluster clusterName \
    --region region
  ```

## Configura ASCP con Pod Identity
<a name="pod-identity-setup"></a>

1. Crea una policy di autorizzazioni che conceda l'autorizzazione `ssm:GetParameters` e `ssm:DescribeParameters` ai parametri a cui il pod deve accedere. 

1. Crea un ruolo IAM che può essere assunto dal servizio principale Amazon EKS per Pod Identity:

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

****  

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

------

   Allega la policy IAM al ruolo.

   *default placeholder text *Sostituiscili con i tuoi valori:

   ```
   aws iam attach-role-policy \
     --role-name MY_ROLE \
     --policy-arn POLICY_ARN
   ```

1. Crea un'associazione Pod Identity. Per un esempio, consulta [Crea un'associazione Pod Identity](https://docs.aws.amazon.com/eks/latest/userguide/pod-id-association.html#pod-id-association-create) nella *Guida per l'utente Amazon EKS*

1. Crea il `SecretProviderClass` che specifica quali parametri o segreti montare nel pod:

   ```
   kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleSecretProviderClass-PodIdentity.yaml
   ```

   La differenza fondamentale in `SecretProviderClass` tra IRSA e Pod Identity è il parametro `usePodIdentity` facoltativo. Si tratta di un campo facoltativo che determina l'approccio di autenticazione. Quando non è specificato, per impostazione predefinita utilizzare i ruoli IAM per gli account di servizio (IRSA).
   + Per utilizzare EKS Pod Identity, utilizza uno qualsiasi di questi valori: `"true", "True", "TRUE", "t", "T"`.
   + Per utilizzare in modo esplicito IRSA, imposta uno qualsiasi di questi valori: `"false", "False", "FALSE", "f", or "F"`.

1. Distribuisci il pod che monta i parametri o i segreti in `/mnt/secrets-store`:

   ```
   kubectl apply -f kubectl apply -f https://raw.githubusercontent.com/aws/secrets-store-csi-driver-provider-aws/main/examples/ExampleDeployment-PodIdentity.yaml
   ```

1. Se utilizzi un cluster Amazon EKS privato, assicurati che il VPC in cui si trova il cluster abbia un AWS STS endpoint. Per informazioni sulla creazione di un endpoint, consulta [Endpoint VPC di interfaccia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_interface_vpc_endpoints.html) nella * Guida per l'utente AWS Identity and Access Management *.

### Verifica il montaggio del segreto
<a name="verify-secret-mount"></a>

Per verificare che il parametro o il segreto siano montati correttamente, eseguire il comando riportato di seguito.

Sostituiscili *default placeholder text * con i tuoi valori:

```
kubectl exec -it $(kubectl get pods | awk '/pod-identity-deployment/{print $1}' | head -1) -- cat /mnt/secrets-store/MyParameter
```

**Per configurare Amazon EKS Pod Identity per l'accesso ai parametri in Parameter Store**

1. Crea una policy di autorizzazioni che conceda l'autorizzazione `ssm:GetParameters` e `ssm:DescribeParameters` ai parametri a cui il pod deve accedere. 

1. Crea un parametro inParameter Store, se non ne hai già uno. Per informazioni, consulta [Creazione di parametri Parameter Store in Systems Manager](sysman-paramstore-su-create.md).

## Risoluzione dei problemi
<a name="integrating_aspc_pod_trouble"></a>

È possibile visualizzare la maggior parte degli errori descrivendo l'implementazione del pod.

**Per visualizzare i messaggi di errore per il container**

1. È possibile ottenere un elenco di nomi di pod con il comando seguente. Se non si sta utilizzando il namespace predefinito, utilizzare `-n namespace`.

   ```
   kubectl get pods
   ```

1. Per descrivere il Pod, nel comando seguente, *pod-id* usa l'ID Pod dei Pod che hai trovato nel passaggio precedente. Se non si sta utilizzando lo spazio dei nomi predefinito, utilizzare `-n NAMESPACE`.

   ```
   kubectl describe pod/pod-id
   ```

**Come visualizzare gli errori per l'ASCP**
+ Per trovare maggiori informazioni nei log del provider, nel comando seguente, *PODID* usa l'ID del Pod *csi-secrets-store-provider-aws*.

  ```
  kubectl -n kube-system get pods
  kubectl -n kube-system logs pod/pod-id
  ```

# Usa AWS Secrets and Configuration Provider CSI con IAM Roles for Service Accounts (IRSA)
<a name="integrating_ascp_irsa"></a>

**Topics**
+ [Prerequisiti](#prerequisites)
+ [Configurazione del controllo degli accessi](#integrating_ascp_irsa_access)
+ [Identifica i parametri da montare](#integrating_ascp_irsa_mount)
+ [Risoluzione dei problemi](#integrating_ascp_irsa_trouble)

## Prerequisiti
<a name="prerequisites"></a>
+ Cluster Amazon EKS (versione 1.17 o successiva)
+ Accesso AWS CLI e cluster Amazon EKS tramite `kubectl`

## Configurazione del controllo degli accessi
<a name="integrating_ascp_irsa_access"></a>

L'ASCP recupera il Pod Identity di Amazon EKS e lo scambia con il ruolo IAM. Le autorizzazioni vengono impostate in una policy IAM per quel ruolo IAM. Quando l'ASCP assume il ruolo IAM, ottiene l'accesso ai parametri autorizzati. Altri container non possono accedere ai parametri a meno che non vengano associati anche al ruolo IAM. 

**Concedere al pod Amazon EKS l'accesso ai parametri in Parameter Store**

1. Crea una policy di autorizzazioni che conceda l'autorizzazione `ssm:GetParameters` e `ssm:DescribeParameters` ai parametri a cui il pod deve accedere. 

1. Crea un provider OpenID Connect (OIDC) IAM per il cluster se non ne è già presente uno. Per ulteriori informazioni, consulta [Crea un provider IAM OIDC per il tuo cluster](https://docs.aws.amazon.com/eks/latest/userguide/enable-iam-roles-for-service-accounts.html) nella *Guida per l'utente di Amazon EKS*.

1. Crea un [Ruolo IAM per l'account del servizio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) e collega la policy ad esso. Per ulteriori informazioni, consulta [Crea un ruolo IAM per un account del servizio](https://docs.aws.amazon.com/eks/latest/userguide/iam-roles-for-service-accounts.html) nella *Guida per l'utente di Amazon EKS*.

1. Se utilizzi un cluster Amazon EKS privato, assicurati che il VPC in cui si trova il cluster abbia un AWS STS endpoint. Per informazioni sulla creazione di un endpoint, consulta [Endpoint VPC di interfaccia](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_interface_vpc_endpoints.html) nella *Guida per l'utente AWS Identity and Access Management *.

## Identifica i parametri da montare
<a name="integrating_ascp_irsa_mount"></a>

Per determinare quali parametri monta l'ASCP in Amazon EKS come file sul file system, è necessario creare un file [SecretProviderClass](ascp-examples.md#ascp-examples-secretproviderclass) YAML. Il `SecretProviderClass` elenca i parametri da montare e il nome del file con cui montarli. Il `SecretProviderClass` deve trovarsi nello stesso namespace del pod Amazon EKS a cui fa riferimento.

### Monta i parametri come file
<a name="mount-secrets"></a>

[https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleSecretProviderClass-IRSA.yaml](https://github.com/aws/secrets-store-csi-driver-provider-aws/blob/main/examples/ExampleSecretProviderClass-IRSA.yaml)

**Per montare i parametri in Amazon EKS**

1. Applica il `SecretProviderClass` al pod:

   ```
   kubectl apply -f ExampleSecretProviderClass.yaml
   ```

1. Distribuisci il pod:

   ```
   kubectl apply -f ExampleDeployment.yaml
   ```

1. L'ASCP monta i file.

## Risoluzione dei problemi
<a name="integrating_ascp_irsa_trouble"></a>

È possibile visualizzare la maggior parte degli errori descrivendo l'implementazione del pod. 

**Per visualizzare i messaggi di errore per il container**

1. È possibile ottenere un elenco di nomi di pod con il comando seguente. Se non si sta utilizzando il namespace predefinito, utilizzare `-n name-space`.

   ```
   kubectl get pods
   ```

1. Per descrivere il Pod, nel comando seguente, *pod-id* usa l'ID Pod dei Pod che hai trovato nel passaggio precedente. Se non si sta utilizzando lo spazio dei nomi predefinito, utilizzare `-n nameSpace`.

   ```
   kubectl describe pod/pod-id
   ```

**Come visualizzare gli errori per l'ASCP**
+ Per trovare maggiori informazioni nei log del provider, nel comando seguente, *pod-id* usa l'ID del Pod *csi-secrets-store-provider-aws*.

  ```
  kubectl -n kube-system get pods
  kubectl -n kube-system logs Pod/pod-id
  ```
+ 

**Verifica che il `SecretProviderClass` sia installato:**

  ```
  kubectl get crd secretproviderclasses.secrets-store.csi.x-k8s.io
  ```

  Questo comando deve restituire informazioni sulla definizione delle risorse personalizzate `SecretProviderClass`.
+ 

**Verifica che l' SecretProviderClass oggetto sia stato creato.**

  ```
  kubectl get secretproviderclass SecretProviderClassName -o yaml
  ```

# AWS Segreti ed esempi di codice del Configuration Provider
<a name="ascp-examples"></a>

## Esempi di autenticazione e controllo degli accessi ASCP
<a name="ascp-auth-access-examples"></a>

### Esempio: policy IAM che consente al servizio Amazon EKS Pod Identity (pods.eks.amazonaws.com) di assumere il ruolo e contrassegnare la sessione:
<a name="ascp-auth-access-example-1"></a>

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

****  

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

------

## SecretProviderClass
<a name="ascp-examples-secretproviderclass"></a>

Puoi utilizzare YAML per descrivere quali parametri montare in Amazon EKS utilizzando l'ASCP. Per alcuni esempi, consulta [SecretProviderClass utilizzo](#ascp-scenarios-secretproviderclass).

### SecretProviderClass Struttura YAML
<a name="ascp-examples-secretproviderclass-1"></a>

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
   name: name
spec:
  provider: aws
  parameters:
    region:
    failoverRegion:
    pathTranslation:
    usePodIdentity:
    preferredAddressType:
    objects:
```

Il campo parametri contiene i dettagli della richiesta di montaggio:

**region**  
(Facoltativo) Il Regione AWS parametro. Se non utilizzi questo campo, l'ASCP cerca la Regione dall'annotazione sul nodo. Questa ricerca aggiunge un sovraccarico alle richieste di montaggio, quindi consigliamo di fornire la Regione per i cluster che utilizzano un numero elevato di pod.  
Se specifichi anche il `failoverRegion`, l'ASCP tenta di recuperare il parametrp da entrambe le Regioni. Se una delle Regioni restituisce un errore `4xx`, ad esempio per un problema di autenticazione, l'ASCP non monta nessuno dei due parametri. Se il parametro viene recuperato correttamente da `region```, l'ASCP monta quel valore del parametro. Se il parametro non viene recuperato correttamente da `region`, ma viene correttamente recuperato da `failoverRegion`, l'ASCP monta quel valore del parametro.

**`failoverRegion`**  
(Facoltativo) Se si include questo campo, l'ASCP tenta di recuperare il parametro dalle Regioni definite in `region` e in questo campo. Se una delle Regioni restituisce un errore `4xx`, ad esempio per un problema di autenticazione, l'ASCP non monta nessuno dei due parametri. Se il parametro viene recuperato correttamente da `region`, l'ASCP monta quel valore del parametro. Se il parametro non viene recuperato correttamente da `region`, ma viene correttamente recuperato da `failoverRegion`, l'ASCP monta quel valore del parametro. Per un esempio su come utilizzare questo campo, consulta la sezione [Failover multiregionale dei parametri](#multi-region-failover).

**pathTranslation**  
(Facoltativo) Un singolo carattere di sostituzione da utilizzare se il nome del file in Amazon EKS conterrà il carattere separatore di percorso, come barra (/) su Linux. L'ASCP non è in grado di creare un file montato che contiene un carattere separatore di percorso. Invece, l'ASCP sostituisce il carattere separatore di percorso con un carattere diverso. Se non utilizzi questo campo, il carattere sostitutivo è il carattere di sottolineatura (\$1), quindi ad esempio, `My/Path/Parameter` monta come `My_Path_Parameter`.   
Per impedire la sostituzione dei caratteri, immettere la stringa `False`.

***usePodIdentity***  
(Facoltativo) Determina l'approccio di autenticazione. Se non specificato, il valore predefinito è ruoli IAM per gli account di servizio (IRSA).  
+ Per utilizzare EKS Pod Identity, utilizza uno qualsiasi di questi valori: `"true"`", `"True"`, `"TRUE"`, `"t"` o `"T"`.
+ Per utilizzare in modo esplicito IRSA, imposta uno qualsiasi dei seguenti valori: `"false"`, `"False"`, `"FALSE"`, `"f"`, or `"F"`"=.

***preferredAddressType***  
(Facoltativo) Specifica il tipo di indirizzo IP preferito per la comunicazione con gli endpoint dell'agente Pod Identity. Il campo è applicabile solo quando si utilizza la funzionalità EKS Pod Identity e verrà ignorato, quando si utilizzano i ruoli IAM per gli account di servizio. I valori non fanno distinzione tra maiuscole e minuscole. I valori validi sono:  
+ `"ipv4"`, `"IPv4"` «, oppure `"IPV4"` — Forza l'uso dell' IPv4 endpoint Pod Identity Agent
+ `"ipv6"`,`"IPv6"`, o `"IPV6"` — Forza l'uso dell'endpoint Pod Identity Agent IPv6 
+ non specificato: utilizza la selezione automatica degli endpoint, provando prima l' IPv4 endpoint e ritornando all' IPv6endpoint se fallisce IPv4 

**objects**  
Una stringa contenente una dichiarazione YAML dei segreti da montare. Si consiglia di utilizzare una stringa multiriga YAML o un carattere pipe (\$1).    
**objectName**  
Obbligatorio. Specifica il nome del parametro o del segreto da recuperare. PerParameter Store, questo è il [https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_GetParameter.html#API_GetParameter_RequestParameters) del parametro e può essere sia il nome che l'ARN completo del parametro. Per Secrets Manager questo è il parametro [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_GetSecretValue.html#API_GetSecretValue_RequestParameters) e può essere sia il nome descrittivo sia l'ARN completo del segreto.   
**objectType**  
Obbligatorio se non si utilizza un ARN di Secrets Manager per `objectName`. Per Parameter Store, utilizza `ssmparameter`. Per Secrets Manager, utilizza `secretsmanager`.   
**objectAlias**  
(Facoltativo) Il nome file del segreto nel pod Amazon EKS. Se non indichi questo campo, `objectName` viene visualizzato come nome del file.  
**objectVersion**  
(Facoltativo) Il numero ID del parametro. Non è consigliato, perché è necessario aggiornare l'ID di versione ogni volta che si aggiorna il parametro. Per impostazione predefinita viene utilizzata la versione più recente. Se includi un `failoverRegion`, questo campo rappresenta l'`objectVersion` primario.  
**objectVersionLabel**  
(Facoltativo) L'alias per la versione. Il valore predefinito è la versione più recente `AWSCURRENT`. Se includi un `failoverRegion`, questo campo rappresenta l'`objectVersionLabel` primario.  
**jmesPath**  
(Facoltativo) Una mappa delle chiavi nel parametro per i file da montare in Amazon EKS. Per utilizzare questo campo, il valore del parametro deve essere in formato JSON.   
L'esempio seguente mostra l'aspetto di un parametro codificato JSON.  

```
{
    "username" : "myusername",
    "password" : "mypassword"
}
```
Le chiavi sono `username` e `password`. Il valore associato a `username` è `myusername` e il valore associato a `password` è `mypassword`.  
Se si utilizza questo campo, è necessario includere i sottocampi `path` e `objectAlias`.    
**path**  
Una chiave di una coppia chiave-valore nel JSON del valore del parametro. Se il campo contiene un trattino, usa le virgolette singole per evitarlo, ad esempio: `path: '"hyphenated-path"'`  
**objectAlias**  
Il nome del file da montare nel pod Amazon EKS. Se il campo contiene un trattino, usa le virgolette singole per evitarlo, ad esempio: `objectAlias: '"hyphenated-alias"'`  
**`failoverObject`**  
(Facoltativo) Se specifichi questo campo, l'ASCP tenta di recuperare sia il parametro specificato nel campo `objectName` primario che quello specificato nel sottocampo `failoverObject` `objectName`. Se uno dei due restituisce un errore `4xx`, ad esempio per un problema di autenticazione, l'ASCP non monta nessuno dei due parametri. Se si riesce a recuperare il parametro dal `objectName` primario, l'ASCP monta quel valore del parametro. Se il parametro non viene recuperato correttamente dal `objectName` primario, ma viene recuperato correttamente dal `objectName` di failover, l'ASCP monta quel valore del parametro. Se si include questo campo, è necessario includere il campo `objectAlias`. Per un esempio su come utilizzare questo campo, consulta la sezione [Failover su un parametro diverso](#failover-parameter).  
In genere, si utilizza questo campo quando il parametro di failover non è una replica. Per un esempio su come specificare una replica, consulta la sezione [Failover multiregionale dei parametri](#multi-region-failover).    
**objectName**  
Il nome o l'ARN completi del parametro di failover. Se utilizzi un ARN, la Regione nell'ARN deve corrispondere al campo `failoverRegion`.  
**objectVersion**  
(Facoltativo) Il numero ID del parametro. Deve corrispondere all'`objectVersion` primaria. Non è consigliato, perché è necessario aggiornare l'ID di versione ogni volta che si aggiorna il parametro. Per impostazione predefinita viene utilizzata la versione più recente.   
**objectVersionLabel**  
(Facoltativo) L'alias per la versione. Il valore predefinito è la versione più recente `AWSCURRENT`.

### Crea una SecretProviderClass configurazione di base per montare i parametri nei tuoi Amazon EKS Pods.
<a name="create-SecretProviderClass-config"></a>

------
#### [ Pod Identity ]

SecretProviderClass per utilizzare un parametro nello stesso cluster Amazon EKS:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameter-store
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "MyParameter"
        objectType: "ssmparameter"
    usePodIdentity: "true"
```

------
#### [ IRSA ]

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: deployment-aws-parameter
spec:
  provider: aws
  parameters:
    objects: |
        - objectName: "MyParameter"
          objectType: "ssmparameter"
```

------

### SecretProviderClass utilizzo
<a name="ascp-scenarios-secretproviderclass"></a>

Usa questi esempi per creare configurazioni `SecretProviderClass` per diversi scenari.

#### Esempio: montaggio di parametri per nome o ARN
<a name="mount-by-name-arn"></a>

Questo esempio mostra come montare tre diversi tipi di parametri:
+ Un parametro specificato dall'ARN completo
+ Un parametro specificato dal nome
+ Una versione parametrica di un segreto

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter2-d4e5f6"
      - objectName: "MyParameter3"
        objectType: "ssmparameter"
      - objectName: "MyParameter4"
        objectType: "ssmparameter"
        objectVersionLabel: "AWSCURRENT"
```

#### Esempio: montaggio di coppie chiave-valore da un parametro
<a name="mount-key-value-pairs"></a>

Questo esempio mostra come montare coppie chiave-valore specifiche da un parametro in formato JSON:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    objects: |
      - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyParameter-a1b2c3"
        jmesPath: 
            - path: username
              objectAlias: dbusername
            - path: password
              objectAlias: dbpassword
```

#### Esempio: esempi di configurazione di failover
<a name="failover-examples"></a>

Questi esempi mostrano come configurare il failover per i parametri.

##### Failover multiregionale dei parametri
<a name="multi-region-failover"></a>

Questo esempio mostra come configurare il failover automatico per un parametro replicato su più regioni:

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "MyParameter"
```

##### Failover su un parametro diverso
<a name="failover-parameter"></a>

Questo esempio mostra come configurare il failover su un parametro diverso (non una replica):

```
apiVersion: secrets-store.csi.x-k8s.io/v1
kind: SecretProviderClass
metadata:
  name: aws-parameters
spec:
  provider: aws
  parameters:
    region: us-east-1
    failoverRegion: us-east-2
    objects: |
      - objectName: "arn:aws:ssm:us-east-1:777788889999:parameter:MyParameter-a1b2c3"
        objectAlias: "MyMountedParameter"
        failoverObject: 
          - objectName: "arn:aws:ssm:us-east-2:777788889999:parameter:MyFailoverParameter-d4e5f6"
```

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

Per ulteriori informazioni su come utilizzare ASCP con Amazon EKS, consulta le seguenti risorse:
+ [Utilizzo di Pod Identity con Amazon EKS](https://docs.aws.amazon.com/eks/latest/userguide/pod-identities.html)
+ [AWS Driver CSI Secrets Store attivo GitHub](https://github.com/aws/secrets-store-csi-driver-provider-aws)

# Utilizzo Parameter Store dei parametri nelle AWS Lambda funzioni
<a name="ps-integration-lambda-extensions"></a>

Parameter Store, uno strumento che fornisce uno storage gerarchico sicuro per la gestione dei dati di configurazione e la gestione dei segreti. AWS Systems ManagerÈ possibile memorizzare dati come password, stringhe di database, Amazon Machine Image (AMI) IDs e codici di licenza come valori dei parametri. 

Per utilizzare i parametri AWS Lambda delle funzioni senza utilizzare un SDK, puoi utilizzare l'estensione Lambda AWS Parameters and Secrets. Parameter Store Questa estensione recupera i valori dei parametri e li memorizza nella cache per usarli in futuro. L'utilizzo dell'estensione Lambda può ridurre i costi riducendo il numero di chiamate API a Parameter Store. Può inoltre migliorare la latenza perché il recupero di un parametro memorizzato nella cache è più rapido rispetto al recupero da Parameter Store. 

Un'estensione Lambda è un processo complementare che si aggiunge alle funzionalità di una normale funzione Lambda. Un'estensione è come un client che viene eseguito in parallelo a una chiamata Lambda. Questo client parallelo può interfacciarsi con la funzione in qualsiasi momento del suo ciclo di vita. Per ulteriori informazioni sulle estensioni Lambda, consulta [API delle estensioni Lambda](https://docs.aws.amazon.com/lambda/latest/dg/runtimes-extensions-api.html) nella *Guida per gli sviluppatori di AWS Lambda *.

L'estensione Lambda AWS Parameters and Secrets funziona sia Parameter Store per. Gestione dei segreti AWS Per informazioni su come utilizzare l'estensione Lambda con i segreti di Secrets Manager, consulta [Usare Gestione dei segreti AWS i segreti nelle AWS Lambda funzioni nella Guida](https://docs.aws.amazon.com/secretsmanager/latest/userguide/retrieving-secrets_lambda.html) per l'*Gestione dei segreti AWS utente*. 

**Informazioni correlate**

[Utilizzo dell'estensione Lambda AWS Parameter and Secrets per memorizzare nella cache parametri e segreti](https://aws.amazon.com/blogs/compute/using-the-aws-parameter-and-secrets-lambda-extension-to-cache-parameters-and-secrets/) (AWS Compute Blog)

## Come funziona l'estensione
<a name="ps-integration-lambda-extensions-how-it-works"></a>

Per utilizzare i parametri in una funzione Lambda *senza* l'estensione Lambda, devi configurare la funzione Lambda in modo da ricevere gli aggiornamenti di configurazione mediante l'integrazione con l'operazione API `GetParameter` per Parameter Store.

Quando si utilizza l'estensione Lambda AWS Parameters and Secrets, l'estensione recupera il valore del parametro Parameter Store e lo archivia nella cache locale. Quindi, il valore memorizzato nella cache viene utilizzato per ulteriori invocazioni fino alla scadenza. I valori memorizzati nella cache scadono dopo il loro time-to-live passaggio (TTL). È possibile configurare il valore TTL utilizzando la [variabile d'ambiente](#ps-integration-lambda-extensions-config) `SSM_PARAMETER_STORE_TTL`, come spiegato più avanti in questo argomento.

Se il TTL della cache configurata non è scaduto, sarà utilizzato il valore del parametro memorizzato nella cache. Se il tempo è scaduto, il valore memorizzato nella cache viene invalidato e il valore del parametro sarà recuperato da Parameter Store.

Inoltre, il sistema rileva i valori dei parametri utilizzati di frequente e li mantiene nella cache mentre cancella quelli scaduti o non utilizzati.

**Importante**  
L'estensione viene richiamata solo nella fase `INVOKE` dell'operazione Lambda e non durante la fase `INIT`.

### Dettagli di implementazione
<a name="lambda-extension-details"></a>

Usa i seguenti dettagli per aiutarti a configurare l'estensione Lambda AWS Parameters and Secrets.

Autenticazione  
Per autorizzare e autenticare le richieste Parameter Store, l'estensione utilizza le stesse credenziali utilizzate per eseguire la funzione Lambda stessa. Pertanto, il ruolo AWS Identity and Access Management (IAM) utilizzato per eseguire la funzione deve disporre delle seguenti autorizzazioni per interagire con: Parameter Store  
+ `ssm:GetParameter`: obbligatorio per recuperare i parametri da Parameter Store
+ `kms:Decrypt`: obbligatorio se stai recuperando i parametri `SecureString` da Parameter Store
Per ulteriori informazioni, consulta [Ruolo di esecuzione di AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html) nella *Guida per gli sviluppatori di AWS Lambda *.

Istanziazione  
Lambda crea istanze separate corrispondenti al livello di simultaneità richiesto dalla funzione. Ogni istanza è isolata e mantiene la propria cache locale dei dati di configurazione. Per ulteriori informazioni sulle istanze Lambda e sulla simultaneità, consulta [Configurazione della simultaneità riservata](https://docs.aws.amazon.com/lambda/latest/dg/configuration-concurrency.html) nella *Guida per gli sviluppatori di AWS Lambda *.

Nessuna dipendenza dall'SDK  
L'estensione Lambda AWS Parameters and Secrets funziona indipendentemente da qualsiasi libreria di linguaggi AWS SDK. Non è necessario un AWS SDK per effettuare richieste GET a. Parameter Store

Porta Localhost  
Utilizza `localhost` nelle tue richieste GET. L'estensione effettua le richieste alla porta 2773 di localhost. Per utilizzare l'estensione, non è necessario specificare un endpoint esterno o interno. È possibile configurare la porta impostando la [variabile di ambiente](#ps-integration-lambda-extensions-config) `PARAMETERS_SECRETS_EXTENSION_HTTP_PORT`.   
Ad esempio, in Python, il tuo URL GET potrebbe avere un aspetto simile al seguente esempio.  

```
parameter_url = ('http://localhost:' + port + '/systemsmanager/parameters/get/?name=' + ssm_parameter_path)
```

Modifiche al valore di un parametro prima della scadenza del TTL  
L'estensione non rileva le modifiche al valore del parametro e non esegue un aggiornamento automatico prima della scadenza del TTL. Se modifichi il valore di un parametro, le operazioni che utilizzano il valore del parametro memorizzato nella cache potrebbero avere esito negativo fino al successivo aggiornamento della cache. Se prevedi modifiche frequenti al valore di un parametro, ti consigliamo di impostare un valore TTL più breve.

Richiesta dell'intestazione  
Per recuperare i parametri dalla cache delle estensioni, l'intestazione della richiesta GET deve includere un riferimento `X-Aws-Parameters-Secrets-Token`. Imposta il token su `AWS_SESSION_TOKEN`, fornito da Lambda per tutte le funzioni in esecuzione. L'utilizzo di questa intestazione indica che chi effettua la chiamata si trova all'interno dell'ambiente Lambda.

Esempio  
L'esempio seguente in Python mostra una richiesta di base per recuperare il valore di un parametro memorizzato nella cache.  

```
import urllib.request
import os
import json

aws_session_token = os.environ.get('AWS_SESSION_TOKEN')

def lambda_handler(event, context):
    # Retrieve /my/parameter from Parameter Store using extension cache
    req = urllib.request.Request('http://localhost:2773/systemsmanager/parameters/get?name=%2Fmy%2Fparameter')
    req.add_header('X-Aws-Parameters-Secrets-Token', aws_session_token)
    config = urllib.request.urlopen(req).read()

    return json.loads(config)
```

Supporto ARM  
L'estensione supporta l'architettura ARM nella maggior parte delle Regioni AWS in cui sono supportate le architetture x86\$164 e x86. Quando si vuole utilizzare l'architettura ARM, suggeriamo di verificare che la propria architettura sia supportata. Per gli elenchi completi delle estensioni ARNs, consulta[AWS Parametri e segreti - Estensione Lambda ARNs](#ps-integration-lambda-extensions-add).

Registrazione dei log  
Lambda registra le informazioni di esecuzione sull'estensione insieme alla funzione utilizzando Amazon Logs. CloudWatch Per impostazione predefinita, l'estensione registra una quantità minima di informazioni su. CloudWatch Per registrare ulteriori dettagli, imposta la [variabile di ambiente](#ps-integration-lambda-extensions-config) `PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL` su `DEBUG`.

### Aggiunta dell'estensione a una funzione Lambda
<a name="add-extension"></a>

Per utilizzare l'estensione Lambda AWS Parameters and Secrets, aggiungi l'estensione alla tua funzione Lambda come livello.

Per aggiungere l'estensione alla funzione,utilizza uno dei metodi descritti di seguito.

Console di gestione AWS (Opzione Aggiungi livello)  

1. Apri la AWS Lambda console all'indirizzo [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Scegliere la funzione. Nell'area **Livelli**, scegli **Aggiungi un livello**.

1. Nell'area **Scegli un livello**, scegli l'opzione **livelli AWS **.

1. Per **livelli AWS **, scegli **AWS-Parameters-and-Secrets-Lambda-Extension**, seleziona una versione e infine scegli **Aggiungi**.

Console di gestione AWS (Specificare l'opzione ARN)  

1. Apri la AWS Lambda console all'indirizzo [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/).

1. Scegliere la funzione. Nell'area **Livelli**, scegli **Aggiungi un livello**.

1. Nell'area **Scegli un livello**, scegli l'opzione **Specifica un ARN**.

1. **Per **Specificare un ARN**, inserisci l'[estensione ARN per l'architettura Regione AWS e](#ps-integration-lambda-extensions-add) quindi scegli Aggiungi.**

AWS Command Line Interface  
Esegui il comando seguente nell' AWS CLI. Sostituisci ogni *example resource placeholder* con le tue informazioni.  

```
aws lambda update-function-configuration \
    --function-name function-name \
    --layers layer-ARN
```

**Informazioni correlate**

[Uso dei livelli con la funzione Lambda](https://docs.aws.amazon.com/lambda/latest/dg/invocation-layers.html)

[Configurazione delle estensioni (archivio di file .zip)](https://docs.aws.amazon.com/lambda/latest/dg/using-extensions.html#using-extensions-config)

## AWS Parametri e segreti: variabili di ambiente Lambda Extension
<a name="ps-integration-lambda-extensions-config"></a>

È possibile configurare l'estensione modificando le seguenti variabili di ambiente. Per visualizzare le impostazioni correnti, imposta `PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL` su `DEBUG`. Per ulteriori informazioni, consulta [Uso delle variabili di AWS Lambda ambiente](https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html) nella *Guida per gli AWS Lambda sviluppatori*. 

**Nota**  
AWS Lambda registra i dettagli operativi sull'estensione Lambda e sulla funzione Lambda in Amazon Logs. CloudWatch 


****  

| Variabile di ambiente | Informazioni | Richiesto | Valori validi | Valore predefinito | 
| --- | --- | --- | --- | --- | 
|  `SSM_PARAMETER_STORE_TIMEOUT_MILLIS`  |  Il timeout, in millisecondi, per le richieste a Parameter Store.   Il valore 0 (zero) indica l'assenza di timeout.  | No | Tutti i numeri interi | 0 (zero) | 
|  `SECRETS_MANAGER_TIMEOUT_MILLIS`  |  Il timeout, in millisecondi, per le richieste a Gestione dei segreti.   Il valore 0 (zero) indica l'assenza di timeout.  | No | Tutti i numeri interi |  0 (zero)  | 
|  `SSM_PARAMETER_STORE_TTL`  |  La durata massima valida, in secondi, di un parametro nella cache prima che venga invalidato. Un valore pari a 0 (zero) indica che la cache deve essere bypassata. Questa variabile viene ignorata se il valore per `PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE` è 0 (zero).  | No | Da 0 (zero) a 300 s (cinque minuti) | 300 s (cinque minuti) | 
|  `SECRETS_MANAGER_TTL`  |  La durata massima valida, in secondi, di un parametro nella cache prima che venga invalidato. Un valore pari a 0 (zero) indica che la cache è bypassata. Questa variabile viene ignorata se il valore per `PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE` è 0 (zero).   | No | Da 0 (zero) a 300 s (cinque minuti) | 300 s (5 minuti) | 
| `PARAMETERS_SECRETS_EXTENSION_CACHE_ENABLED` |  Determina se la cache per l'estensione è abilitata. Valori del valore: `TRUE \| FALSE`  | No | TRUE \$1 FALSE | TRUE | 
| `PARAMETERS_SECRETS_EXTENSION_CACHE_SIZE` |  La dimensione massima della cache in termini di numero di elementi. Un valore pari a 0 (zero) indica che la cache è bypassata. Questa variabile viene ignorata se entrambi i valori TTL della cache sono 0 (zero).  | No | Da 0 (zero) a 1000 |  1000  | 
| `PARAMETERS_SECRETS_EXTENSION_HTTP_PORT` | La porta per il server HTTP locale. | No | 1 - 65535 |  2773  | 
| `PARAMETERS_SECRETS_EXTENSION_MAX_CONNECTIONS` |  Numero massimo di connessioni per i client HTTP utilizzati dall'estensione per effettuare richieste a Parameter Store o a Gestione dei segreti. Si tratta di una configurazione per client per il numero di connessioni che sia il client di Secrets Manager che il client Parameter Store effettuano ai servizi di backend.  | No | Minimo 1; nessun limite massimo. |  3  | 
| `PARAMETERS_SECRETS_EXTENSION_LOG_LEVEL` |  Il livello di dettaglio riportato nei log per l'estensione. Consigliamo di utilizzare `DEBUG` per maggiori dettagli sulla configurazione della cache durante la configurazione e il test dell'estensione.  I log per le operazioni Lambda vengono automaticamente inviati a un gruppo di log Logs CloudWatch associato.  | No |  `DEBUG \| WARN \| ERROR \| NONE \| INFO`  | `INFO` | 

## Comandi di esempio per l'utilizzo dell'estensione and AWS Systems ManagerParameter Store Gestione dei segreti AWS
<a name="ps-integration-lambda-extensions-sample-commands"></a>

Gli esempi in questa sezione mostrano le azioni API da utilizzare con l' Gestione dei segreti AWS estensione AWS Systems Manager Parameter Store and.

### Comandi di esempio per Parameter Store
<a name="sample-commands-ps"></a>

L'estensione Lambda utilizza l'accesso in sola lettura all'azione API. **GetParameter**

Per chiamare questa operazione, effettua una chiamata HTTP GET simile alla seguente. Questo formato di comando consente l'accesso ai parametri del livello di parametri standard.

```
GET http://localhost:port/systemsmanager/parameters/get?name=parameter-name&version=version&label=label&withDecryption={true|false}
```

In questo esempio, *parameter-name* rappresenta il nome completo del parametro`MyParameter`, ad esempio per un parametro non presente in una gerarchia o `%2FDev%2FProduction%2FEast%2FProject-ABC%2FMyParameter` per un parametro denominato `/Dev/Production/East/Project-ABC/MyParameter` che fa parte di una gerarchia. 

**Nota**  
Quando utilizzi le chiamate GET, i valori dei parametri devono essere codificati in modo che HTTP conservi caratteri speciali. Ad esempio, invece di formattare un percorso gerarchico come `/a/b/c`, codifica caratteri che potrebbero essere interpretati come parte dell'URL, come `%2Fa%2Fb%2Fc`.

*version*e *label* sono i selettori disponibili per l'uso con l'azione. `GetParameter` 

```
GET http://localhost:port/systemsmanager/parameters/get/?name=MyParameter&version=5
```

Per chiamare un parametro in una gerarchia, effettuate una chiamata HTTP GET simile alla seguente.

```
GET http://localhost:port/systemsmanager/parameters/get?name=%2Fa%2Fb%2F&label=release
```

Per chiamare un parametro pubblico (globale), effettuate una chiamata HTTP GET simile alla seguente.

```
GET http://localhost:port/systemsmanager/parameters/get/?name=%2Faws%2Fservice%20list%2F…
```

Per effettuare una chiamata HTTP GET a un segreto di Gestione dei segreti utilizzando i riferimenti Parameter Store, effettua una chiamata HTTP GET simile alla seguente.

```
GET http://localhost:port/systemsmanager/parameters/get?name=%2Faws%2Freference%2Fsecretsmanager%2F…
```

Per effettuare una chiamata utilizzando il nome della risorsa Amazon (ARN) per un parametro, effettua una chiamata HTTP GET simile alla seguente.

```
GET http://localhost:port/systemsmanager/parameters/get?name=arn:aws:ssm:us-east-1:123456789012:parameter/MyParameter
```

Per effettuare una chiamata che accede a un parametro `SecureString` con decrittografia, effettua una chiamata HTTP GET simile alla seguente.

```
GET http://localhost:port/systemsmanager/parameters/get?name=MyParameter&withDecryption=true
```

È possibile specificare che i parametri non vengano decrittografati omettendo `withDecryption` o impostandolo esplicitamente su `false`. È possibile anche specificare una versione o un'etichetta, ma non entrambe. In questo caso, sarà utilizzato solo la prima di queste inserita dopo il punto interrogativo (`?`) nell'URL.

## AWS Parametri e segreti - Estensione Lambda ARNs
<a name="ps-integration-lambda-extensions-add"></a>

L'ultima versione di Amazon Resource Name (ARN) per l'estensione Lambda viene pubblicata come parametro pubblico in Systems Manager Parameter Store per ogni architettura supportata. È possibile recuperare l'ARN più recente a livello di programmazione utilizzando CloudFormation o per garantire che AWS CLI l'applicazione faccia sempre riferimento alla versione di estensione più recente senza aggiornamenti manuali. Questa sezione spiega come recuperare l'ARN a livello di codice e fornisce tabelle che elencano i valori ARN correnti per ogni architettura come riferimento manuale.

### Recupero dell'ultima versione ARN dell'estensione Lambda
<a name="ps-integration-lambda-extensions-programmatically-retrieve"></a>

Le ultime versioni ARN dell'estensione Lambda sono archiviate come parametri pubblici nelle seguenti posizioni. Puoi fare riferimento a questi parametri pubblici nel codice per recuperarli:
+ **x86\$164**:/aws/service/aws-parameters-and-secrets-lambda-extension/x86/latest
+ **arm64:/**aws/service/aws-parameters-and-secrets-lambda-extension/arm64/latest

**AWS CLI**  
Per recuperare le versioni ARN più recenti utilizzando AWS CLI il, esegui i seguenti comandi.

**x86\$164**

```
aws ssm get-parameter --name "/aws/service/aws-parameters-and-secrets-lambda-extension/x86/latest" --query "Parameter.Value" --output text
```

**arm64**

```
aws ssm get-parameter --name "/aws/service/aws-parameters-and-secrets-lambda-extension/arm64/latest" --query "Parameter.Value" --output text
```

**AWS CloudFormation**  
Quando si distribuiscono le funzioni Lambda CloudFormation utilizzando, è possibile risolvere i parametri direttamente durante la creazione e gli aggiornamenti dello stack, come mostrato nei modelli YAML di esempio seguenti. Questo metodo garantisce che la funzione utilizzi sempre l'ultima versione dell'estensione senza richiedere aggiornamenti manuali.

**x86\$164**

```
Resources:
  MyFunction:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: my-function
      Runtime: python3.11
      Handler: index.handler
      Code:
        ZipFile: |
          def handler(event, context):
              return {'statusCode': 200}
      Layers:
        - !Sub '{{resolve:ssm:/aws/service/aws-parameters-and-secrets-lambda-extension/x86/latest}}'
      Role: !GetAtt MyFunctionRole.Arn
```

**arm64**

```
Layers:
  - !Sub '{{resolve:ssm:/aws/service/aws-parameters-and-secrets-lambda-extension/arm64/latest}}'
```

**Nota**  
La `{{resolve:ssm:parameter-name}}` sintassi recupera automaticamente il valore del parametro durante le operazioni di stack. Ciò garantisce la distribuzione sempre con l'ARN corrente.

### Estensione più recente ARNs
<a name="ps-integration-lambda-extensions-manually-retrieve"></a>

Le tabelle seguenti forniscono l'estensione ARNs per le architetture e le regioni supportate.

**Topics**
+ [Estensione ARNs per le architetture e x86\$164 x86](#intel)
+ [Estensione ARNs per ARM64 e architetture Mac with Apple silicon](#arm64)

#### Estensione ARNs per le architetture e x86\$164 x86
<a name="intel"></a>

Ultimo aggiornamento: 17 febbraio 2026


****  

| Region | ARN | 
| --- | --- | 
| Stati Uniti orientali (Ohio) | `arn:aws:lambda:us-east-2:590474943231:layer:AWS-Parameters-and-Secrets-Lambda-Extension:67` | 
| Stati Uniti orientali (Virginia settentrionale) | `arn:aws:lambda:us-east-1:177933569100:layer:AWS-Parameters-and-Secrets-Lambda-Extension:61` | 
| Stati Uniti occidentali (California settentrionale) | `arn:aws:lambda:us-west-1:997803712105:layer:AWS-Parameters-and-Secrets-Lambda-Extension:59` | 
| Stati Uniti occidentali (Oregon) | `arn:aws:lambda:us-west-2:345057560386:layer:AWS-Parameters-and-Secrets-Lambda-Extension:61` | 
| Africa (Città del Capo) | `arn:aws:lambda:af-south-1:317013901791:layer:AWS-Parameters-and-Secrets-Lambda-Extension:60` | 
| Asia Pacifico (Hong Kong) | `arn:aws:lambda:ap-east-1:768336418462:layer:AWS-Parameters-and-Secrets-Lambda-Extension:60` | 
| Asia Pacifico (Taipei) | `arn:aws:lambda:ap-east-2:890742577149:layer:AWS-Parameters-and-Secrets-Lambda-Extension:33` | 
| Regione Asia Pacifico (Hyderabad) | `arn:aws:lambda:ap-south-2:070087711984:layer:AWS-Parameters-and-Secrets-Lambda-Extension:55` | 
| Asia Pacifico (Giacarta) | `arn:aws:lambda:ap-southeast-3:490737872127:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 
| Asia Pacifico (Melbourne) | `arn:aws:lambda:ap-southeast-4:090732460067:layer:AWS-Parameters-and-Secrets-Lambda-Extension:48` | 
| Asia Pacifico (Malesia) | `arn:aws:lambda:ap-southeast-5:381492012281:layer:AWS-Parameters-and-Secrets-Lambda-Extension:47` | 
| Asia Pacifico (Nuova Zelanda) | `arn:aws:lambda:ap-southeast-6:995508174458:layer:AWS-Parameters-and-Secrets-Lambda-Extension:42` | 
| Asia Pacifico (Mumbai) | `arn:aws:lambda:ap-south-1:176022468876:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 
| Asia Pacifico (Osaka) | `arn:aws:lambda:ap-northeast-3:576959938190:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 
| Asia Pacifico (Seoul) | `arn:aws:lambda:ap-northeast-2:738900069198:layer:AWS-Parameters-and-Secrets-Lambda-Extension:59` | 
| Asia Pacifico (Singapore) | `arn:aws:lambda:ap-southeast-1:044395824272:layer:AWS-Parameters-and-Secrets-Lambda-Extension:61` | 
| Asia Pacifico (Sydney) | `arn:aws:lambda:ap-southeast-2:665172237481:layer:AWS-Parameters-and-Secrets-Lambda-Extension:63` | 
| Asia Pacifico (Thailandia) | `arn:aws:lambda:ap-southeast-7:941377119484:layer:AWS-Parameters-and-Secrets-Lambda-Extension:48` | 
| Asia Pacifico (Tokyo) | `arn:aws:lambda:ap-northeast-1:133490724326:layer:AWS-Parameters-and-Secrets-Lambda-Extension:60` | 
| Canada (Centrale) | `arn:aws:lambda:ca-central-1:200266452380:layer:AWS-Parameters-and-Secrets-Lambda-Extension:65` | 
| Canada occidentale (Calgary) | `arn:aws:lambda:ca-west-1:243964427225:layer:AWS-Parameters-and-Secrets-Lambda-Extension:35` | 
| Cina (Pechino) | `arn:aws-cn:lambda:cn-north-1:287114880934:layer:AWS-Parameters-and-Secrets-Lambda-Extension:64` | 
| Cina (Ningxia) | `arn:aws-cn:lambda:cn-northwest-1:287310001119:layer:AWS-Parameters-and-Secrets-Lambda-Extension:61` | 
| Europa (Francoforte) | `arn:aws:lambda:eu-central-1:187925254637:layer:AWS-Parameters-and-Secrets-Lambda-Extension:61` | 
| Europa (Irlanda) | `arn:aws:lambda:eu-west-1:015030872274:layer:AWS-Parameters-and-Secrets-Lambda-Extension:63` | 
| Europa (Londra) | `arn:aws:lambda:eu-west-2:133256977650:layer:AWS-Parameters-and-Secrets-Lambda-Extension:59` | 
| Europa (Milano) | `arn:aws:lambda:eu-south-1:325218067255:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 
| Europa (Parigi) | `arn:aws:lambda:eu-west-3:780235371811:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 
| Regione Europa (Spagna) | `arn:aws:lambda:eu-south-2:524103009944:layer:AWS-Parameters-and-Secrets-Lambda-Extension:54` | 
| AWS European Sovereign Cloud (Germania) | `arn:aws-eusc:lambda:eusc-de-east-1:041683371183:layer:AWS-Parameters-and-Secrets-Lambda-Extension:5` | 
| Europa (Stoccolma) | `arn:aws:lambda:eu-north-1:427196147048:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 
| Israele (Tel Aviv) | `arn:aws:lambda:il-central-1:148806536434:layer:AWS-Parameters-and-Secrets-Lambda-Extension:35` | 
| Regione Europa (Zurigo) | `arn:aws:lambda:eu-central-2:772501565639:layer:AWS-Parameters-and-Secrets-Lambda-Extension:42` | 
| Regione Messico (centrale) | `arn:aws:lambda:mx-central-1:241533131596:layer:AWS-Parameters-and-Secrets-Lambda-Extension:32` | 
| Medio Oriente (Bahrein) | `arn:aws:lambda:me-south-1:832021897121:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 
| Medio Oriente (Emirati Arabi Uniti) | `arn:aws:lambda:me-central-1:858974508948:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 
| Sud America (San Paolo) | `arn:aws:lambda:sa-east-1:933737806257:layer:AWS-Parameters-and-Secrets-Lambda-Extension:61` | 
| AWS GovCloud (Stati Uniti orientali) | `arn:aws-us-gov:lambda:us-gov-east-1:129776340158:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 
| AWS GovCloud (Stati Uniti occidentali) | `arn:aws-us-gov:lambda:us-gov-west-1:127562683043:layer:AWS-Parameters-and-Secrets-Lambda-Extension:58` | 

#### Estensione ARNs per ARM64 e architetture Mac with Apple silicon
<a name="arm64"></a>

Ultimo aggiornamento: 17 febbraio 2026


****  

| Region | ARN | 
| --- | --- | 
| Stati Uniti orientali (Ohio) | `arn:aws:lambda:us-east-2:590474943231:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:67` | 
| Stati Uniti orientali (Virginia settentrionale) | `arn:aws:lambda:us-east-1:177933569100:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:61` | 
| Regione Stati Uniti occidentali (California settentrionale) | `arn:aws:lambda:us-west-1:997803712105:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:56` | 
| Stati Uniti occidentali (Oregon) | `arn:aws:lambda:us-west-2:345057560386:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:61` | 
| Regione Africa (Città del Capo) | `arn:aws:lambda:af-south-1:317013901791:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:57` | 
| Regione Asia Pacifico (Hong Kong) | `arn:aws:lambda:ap-east-1:768336418462:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:57` | 
| Asia Pacifico (Taipei) | `arn:aws:lambda:ap-east-2:890742577149:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:29` | 
| Regione Asia Pacifico (Hyderabad) | `arn:aws:lambda:ap-south-2:070087711984:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:47` | 
| Regione Asia Pacifico (Giacarta) | `arn:aws:lambda:ap-southeast-3:490737872127:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:55` | 
| Asia Pacifico (Melbourne) | `arn:aws:lambda:ap-southeast-4:090732460067:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:47` | 
| Asia Pacifico (Malesia) | `arn:aws:lambda:ap-southeast-5:381492012281:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:47` | 
| Asia Pacifico (Nuova Zelanda) | `arn:aws:lambda:ap-southeast-6:995508174458:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:40` | 
| Asia Pacifico (Mumbai) | `arn:aws:lambda:ap-south-1:176022468876:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:58` | 
| Asia Pacifico (Osaka) | `arn:aws:lambda:ap-northeast-3:576959938190:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:55` | 
| Regione Asia Pacifico (Seoul) | `arn:aws:lambda:ap-northeast-2:738900069198:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:56` | 
| Asia Pacifico (Singapore) | `arn:aws:lambda:ap-southeast-1:044395824272:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:61` | 
| Asia Pacifico (Sydney) | `arn:aws:lambda:ap-southeast-2:665172237481:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:63` | 
| Asia Pacifico (Thailandia) | `arn:aws:lambda:ap-southeast-7:941377119484:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:47` | 
| Asia Pacifico (Tokyo) | `arn:aws:lambda:ap-northeast-1:133490724326:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:60` | 
| Regione Canada (Centrale) | `arn:aws:lambda:ca-central-1:200266452380:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:62` | 
| Canada occidentale (Calgary) | `arn:aws:lambda:ca-west-1:243964427225:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:34` | 
| Cina (Pechino) | `arn:aws-cn:lambda:cn-north-1:287114880934:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:53` | 
| Cina (Ningxia) | `arn:aws-cn:lambda:cn-northwest-1:287310001119:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:50` | 
| Europa (Francoforte) | `arn:aws:lambda:eu-central-1:187925254637:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:61` | 
| Europa (Irlanda) | `arn:aws:lambda:eu-west-1:015030872274:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:63` | 
| Europa (Londra) | `arn:aws:lambda:eu-west-2:133256977650:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:59` | 
| Regione Europa (Milano) | `arn:aws:lambda:eu-south-1:325218067255:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:55` | 
| Regione Europa (Parigi) | `arn:aws:lambda:eu-west-3:780235371811:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:55` | 
| Regione Europa (Spagna) | `arn:aws:lambda:eu-south-2:524103009944:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:46` | 
| Regione Europa (Stoccolma) | `arn:aws:lambda:eu-north-1:427196147048:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:55` | 
| Israele (Tel Aviv) | `arn:aws:lambda:il-central-1:148806536434:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:34` | 
| Regione Europa (Zurigo) | `arn:aws:lambda:eu-central-2:772501565639:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:34` | 
| Regione Messico (centrale) | `arn:aws:lambda:mx-central-1:241533131596:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:31` | 
| Regione Medio Oriente (Bahrein) | `arn:aws:lambda:me-south-1:832021897121:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:55` | 
| Medio Oriente (Emirati Arabi Uniti) | `arn:aws:lambda:me-central-1:858974508948:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:47` | 
| Regione Sud America (San Paolo) | `arn:aws:lambda:sa-east-1:933737806257:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:58` | 
| AWS GovCloud (Stati Uniti orientali) | `arn:aws-us-gov:lambda:us-gov-east-1:129776340158:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:47` | 
| AWS GovCloud (Stati Uniti occidentali) | `arn:aws-us-gov:lambda:us-gov-west-1:127562683043:layer:AWS-Parameters-and-Secrets-Lambda-Extension-Arm64:47` | 

# Integrazione con altri prodotti e servizi
<a name="integrations-partners"></a>

AWS Systems Manager dispone di un'integrazione integrata per i prodotti e i servizi illustrati nella tabella seguente.


|  |  | 
| --- |--- |
|  Ansible  |  [https://www.ansible.com/](https://www.ansible.com/) è una piattaforma di automazione IT che semplifica l'implementazione di applicazioni e sistemi. Systems Manager fornisce il documento Systems Manager (documento SSM) `AWS-ApplyAnsiblePlaybooks` che permette di creare associazioni State Manager che eseguono playbook Ansible.  Ulteriori informazioni [Creazione di associazioni che eseguono playbook Ansible](systems-manager-state-manager-ansible.md)   | 
|  Chef  |  [https://www.chef.io/](https://www.chef.io/) è uno strumento di automazione IT che semplifica l'implementazione di applicazioni e sistemi. Systems Manager fornisce il documento SSM `AWS-ApplyChefRecipes`, che ti consente di creare associazioni in State Manager, uno strumento di AWS Systems Manager, che esegue ricette di Chef.  Ulteriori informazioni [Creazione di associazioni che eseguono ricette di Chef](systems-manager-state-manager-chef.md)  Systems Manager si integra anche con i profili [https://www.chef.io/products/chef-inspec/](https://www.chef.io/products/chef-inspec/), che consentono di eseguire analisi della conformità e di visualizzare nodi conformi e non conformi.  Ulteriori informazioni [Utilizzo di profili Chef InSpec con la conformità Systems Manager](integration-chef-inspec.md)   | 
|  GitHub  |  [https://github.com/](https://github.com/) fornisce hosting per il controllo delle versioni di sviluppo software e la collaborazione. Systems Manager fornisce il documento SSM `AWS-RunDocument`, che consente di eseguire altri documenti SSM archiviati in GitHub e il documento SSM `AWS-RunRemoteScript`, che consente di eseguire script archiviati in GitHub. [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-partners.html)  | 
|  Jenkins  |  [https://www.jenkins.io/](https://www.jenkins.io/) è un server di automazione open source che consente agli sviluppatori di creare, testare e distribuire in modo affidabile il proprio software. Automazione, uno strumento di Systems Manager, è utilizzabile come passaggio posteriore alla creazione per preinstallare le versioni dell'applicazione in Amazon Machine Images (AMIs).  Ulteriori informazioni [Aggiornamento delle AMIs tramite automazione e Jenkins](automation-tutorial-update-patch-ami-jenkins-integration.md)   | 
|  ServiceNow  |  [https://www.servicenow.com/](https://www.servicenow.com/) è un sistema di gestione dei servizi aziendali che consente di gestire i servizi e le operazioni IT. Automazione, Change Manager, Incident Manager e OpsCenter, tutti strumenti di Systems Manager, si integrano con ServiceNow utilizzando AWS Service Management Connector. Con questa integrazione, puoi visualizzare, creare, aggiornare, aggiungere corrispondenza e risolvere Supporto AWS casi daServiceNow.  Ulteriori informazioni [Integrazione con ServiceNow](integrations-partners-servicenow.md)    | 
| Terraform |  HashiCorp [Terraform](https://registry.terraform.io/) è uno strumento software open source di *infrastructure as code* (IaC) che fornisce un flusso di lavoro con interfaccia a riga di comando (CLI) per gestire vari servizi cloud. Per Systems Manager, sarà possibile utilizzare Terraform per gestire o eseguire il provisioning di quanto segue: **Risorse** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-partners.html) **Origine dati** [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/systems-manager/latest/userguide/integrations-partners.html)  | 

**Topics**
+ [Esecuzione di script da GitHub](integration-remote-scripts.md)
+ [Utilizzo di profili Chef InSpec con la conformità Systems Manager](integration-chef-inspec.md)
+ [Integrazione con ServiceNow](integrations-partners-servicenow.md)

# Esecuzione di script da GitHub
<a name="integration-remote-scripts"></a>

Questo argomento descrive come utilizzare il documento Systems Manager predefinito (documento SSM) da cui `AWS-RunRemoteScript` scaricare scriptGitHub, inclusi Ansible Playbook, Python, Ruby e script. PowerShell Utilizzando questo documento SSM, non è più necessario trasferire manualmente gli script in Amazon Elastic Compute Cloud (Amazon EC2) Elastic Compute EC2) o inserirli in documenti SSM. AWS Systems Manager l'integrazione con GitHub promuove l'*infrastruttura come codice*, riducendo il tempo necessario per gestire i nodi e standardizzando al contempo le configurazioni in tutta la flotta. 

È anche possibile creare documenti SSM personalizzati che consentano di scaricare ed eseguire script o altri documenti SSM da sedi remote. Per ulteriori informazioni, consulta [Creazione di documenti compositi](documents-creating-content.md#documents-creating-composite).

È anche possibile scaricare una directory che includa più script. Quando si esegue lo script principale nella directory, Systems Manager esegue anche eventuali script di riferimento (finché sono inclusi nella directory). 

Tieni presenti le informazioni importanti sull'esecuzione di script da GitHub, riportate di seguito.
+ Systems Manager non verifica che lo script possa essere eseguito su un nodo. Prima di scaricare ed eseguire lo script, verifica che il software necessario sia installato sul nodo. In alternativa, è possibile creare un documento composito che installa il software utilizzando uno degli strumenti Run Command oState Manager, quindi AWS Systems Manager, scaricare ed eseguire lo script.
+ Dovrai personalmente accertarti del soddisfacimento di tutti i requisiti di GitHub. tra cui, se necessario, l'aggiornamento del token di accesso. Controlla che non venga superato il numero consentito di richieste autenticate o non autenticate. Per ulteriori informazioni, consulta la documentazione GitHub.
+ I repository di GitHub Enterprise non sono supportati.

**Topics**
+ [Esegui playbook Ansible da GitHub](integration-github-ansible.md)
+ [Esegui script Python da GitHub](integration-github-python.md)

# Esegui playbook Ansible da GitHub
<a name="integration-github-ansible"></a>

Questa sezione illustra le procedure che consentono di eseguire playbook Ansible da GitHub con la console o la AWS Command Line Interface (AWS CLI).

**Prima di iniziare**  
Se intendi eseguire uno script archiviato in un GitHub repository privato, crea un AWS Systems Manager `SecureString` parametro per il token GitHub di accesso di sicurezza. Non è possibile accedere a uno script in un archivio privato di GitHub trasferendo manualmente il token su SSH. Il token di accesso deve essere trasferito come parametro `SecureString` di Systems Manager. Per ulteriori informazioni sulla creazione di un parametro `SecureString`, consulta [Creazione di parametri Parameter Store in Systems Manager](sysman-paramstore-su-create.md).

## Esegui un playbook Ansible da GitHub (console)
<a name="integration-github-ansible-console"></a>

**Esegui un playbook Ansible da GitHub**

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 **Run Command**.

1. Seleziona **Esegui comando**.

1. Nell'elenco **Documento di comando**, scegli **`AWS-RunRemoteScript`**.

1. In **Parametri di comando**, esegui le seguenti operazioni:
   + In **Tipo di origine**, seleziona **GitHub**. 
   + Nella casella **Informazioni sull'origine**, inserisci le informazioni necessarie per accedere all'origine nel formato seguente.

     ```
     {
       "owner": "owner_name",
       "repository": "repository_name", 
       "getOptions": "branch:branch_name",
       "path": "path_to_scripts_or_directory",
       "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}" 
     }
     ```

     Questo esempio scarica un file denominato `webserver.yml`. 

     ```
     {
         "owner": "TestUser1",
         "repository": "GitHubPrivateTest",
         "getOptions": "branch:myBranch",
         "path": "scripts/webserver.yml",
         "tokenInfo": "{{ssm-secure:mySecureStringParameter}}"
     }
     ```
**Nota**  
`"branch"` è necessario solo se il documento SSM è memorizzato in un ramo diverso da `master`.  
Per utilizzare la versione degli script che si trovano in un particolare *commit* nel repository, usa `commitID` con `getOptions` invece di `branch`. Ad esempio:  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + Nel campo **Riga di comando**, inserisci i parametri per l'esecuzione di script. Ecco un esempio.

     **ansible-playbook -i “localhost,” --check -c local webserver.yml**
   + (Facoltativo) Nel campo **Directory di lavoro**, inserisci il nome di una directory sul nodo su cui si desidera scaricare ed eseguire lo script.
   + (Facoltativo) In **Timeout di esecuzione**, specifica il numero di secondi che il sistema dovrà attendere prima di interrompere l'esecuzione del comando di script. 

1. Nella sezione **Destinazioni**, scegli i nodi gestiti in cui si desidera eseguire questa operazione specificando i tag, selezionando manualmente le istanze, i dispositivi edge o indicando un gruppo di risorse.
**Suggerimento**  
Se un nodo gestito che ti aspetti di vedere non è presente nell'elenco, consulta [Risoluzione dei problemi relativi alla disponibilità dei nodi gestiti](fleet-manager-troubleshooting-managed-nodes.md) per suggerimenti sulla risoluzione dei problemi.

1. In **Altri parametri**:
   + In **Commento**, digita le informazioni su questo comando.
   + In **Timeout (secondi)**, specifica il numero di secondi che il sistema dovrà attendere prima di generare un errore per l'intera esecuzione del comando. 

1. Per **Controllo velocità**:
   + In **Simultaneità**, specifica un numero o una percentuale di nodi gestiti su cui eseguire contemporaneamente il comando.
**Nota**  
Se hai selezionato le destinazioni specificando i tag applicati ai nodi gestiti o specificando i gruppi di AWS risorse e non sei sicuro del numero di nodi gestiti come target, limita il numero di destinazioni che possono eseguire il documento contemporaneamente specificando una percentuale.
   + Per **Soglia di errore**, specificare quando interrompere l'esecuzione del comando sulle altri nodi gestiti dopo un errore su un numero o una percentuale di nodi. Se, ad esempio, si specificano tre errori, Systems Manager interrompe l'invio del comando quando riceve il quarto errore. Anche i nodi gestiti che stanno ancora elaborando il comando potrebbero inviare errori.

1. (Facoltativo) Nella sezione **Opzioni di output**, per salvare l'output del comando in un file, seleziona la casella **Scrivi l'output del comando in un bucket S3**. Digita i nomi del bucket e del prefisso (cartella) nelle caselle.
**Nota**  
Le autorizzazioni S3 che danno la possibilità di scrivere dati in un bucket S3 sono quelle del profilo dell'istanza (per istanze EC2) o del ruolo di servizio IAM (in macchine attivate da sistemi ibridi) assegnate all'istanza, non quelle dell'utente IAM che esegue questo processo. Per ulteriori informazioni, consulta le pagine [Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager](setup-instance-permissions.md) oppure [Creazione di un ruolo di servizio IAM per un ambiente ibrido](hybrid-multicloud-service-role.md). Inoltre, se il bucket S3 specificato si trova su un Account AWS diverso, assicurarsi che il profilo dell'istanza o il ruolo di servizio IAM associato al nodo gestito disponga delle autorizzazioni necessarie per scrivere su quel bucket.

1. Se vuoi che vengano inviate notifiche sullo stato dell'esecuzione del comando, nella sezione **Notifiche SNS** selezionara la casella di controllo **Abilita notifiche SNS**.

   Per ulteriori informazioni sulla configurazione delle notifiche Amazon SNS per Run Command, consulta [Monitoraggio delle modifiche di stato di Systems Manager utilizzando le notifiche Amazon SNS](monitoring-sns-notifications.md).

1. Scegli **Esegui**.

## Esegui un Ansible playbook utilizzando il GitHub AWS CLI
<a name="integration-github-ansible-cli"></a>

1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

   Per informazioni, consulta la pagina [Installazione o aggiornamento della versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Il comando seguente consente di scaricare ed eseguire uno script da GitHub.

   ```
   aws ssm send-command \
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "instance-IDs"\
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\": \"repository_name\", \"path\": \"path_to_file_or_directory\", \"tokenInfo\":\"{{ssm-secure:name_of_your_SecureString_parameter}}\" }"],"commandLine":["commands_to_run"]}'
   ```

   Ecco un comando di esempio da eseguire su una macchina Linux locale.

   ```
   aws ssm send-command \    
       --document-name "AWS-RunRemoteScript" \
       --instance-ids "i-02573cafcfEXAMPLE" \
       --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\": \"GitHubPrivateTest\", \"path\": \"scripts/webserver.yml\", \"tokenInfo\":\"{{ssm-secure:mySecureStringParameter}}\" }"],"commandLine":["ansible-playbook -i “localhost,” --check -c local webserver.yml"]}'
   ```

# Esegui script Python da GitHub
<a name="integration-github-python"></a>

Questa sezione include procedure per aiutarti a eseguire script Python GitHub utilizzando la AWS Systems Manager console o (). AWS Command Line Interface AWS CLI

## Esecuzione di uno script Python da GitHub (console)
<a name="integration-github-python-console"></a>

**Esecuzione di uno script Python da GitHub**

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 **Run Command**.

1. Seleziona **Esegui comando**.

1. Nell'elenco **Documento sui comandi**, scegli **`AWS-RunRemoteScript`**.

1. In **Parametri di comando**, esegui le seguenti operazioni:
   + In **Source Type** (Tipo di origine), selezionare **GitHub**. 
   + Nella casella **Informazione sull'origine**, inserisci le informazioni necessarie per accedere all'origine nel formato seguente:

     ```
     {
         "owner": "owner_name",
         "repository": "repository_name",
         "getOptions": "branch:branch_name",
         "path": "path_to_document",
         "tokenInfo": "{{ssm-secure:SecureString_parameter_name}}"
     }
     ```

     L'esempio seguente esegue il download in una directory di script denominata *complex-script*.

     ```
     {
         "owner": "TestUser1",
         "repository": "SSMTestDocsRepo",
         "getOptions": "branch:myBranch",
         "path": "scripts/python/complex-script",
         "tokenInfo": "{{ssm-secure:myAccessTokenParam}}"
     }
     ```
**Nota**  
`"branch"` è richiesto solo se gli script sono memorizzati in un ramo diverso da `master`.  
Per utilizzare la versione degli script che si trovano in un particolare *commit* nel repository, usa `commitID` con `getOptions` invece di `branch`. Ad esempio:  
`"getOptions": "commitID:bbc1ddb94...b76d3bEXAMPLE",`
   + In **Riga di comando**, inserisci i parametri per l'esecuzione di script. Ecco un esempio.

     ```
     mainFile.py argument-1 argument-2
     ```

     Questo esempio esegue `mainFile.py`, che può a sua volta eseguire altri script nella directory `complex-script`.
   + (Facoltativo) In **Directory di lavoro**, inserisci il nome di una directory dell'istanza su cui si desidera scaricare ed eseguire lo script.
   + (Facoltativo) In **Timeout di esecuzione**, specifica il numero di secondi che il sistema dovrà attendere prima di interrompere l'esecuzione del comando di script. 

1. Nella sezione **Destinazioni**, identifica i nodi in cui si desidera eseguire questa operazione specificando i tag, selezionando manualmente le istanze, i dispositivi edge o indicando un gruppo di risorse.
**Suggerimento**  
Se un nodo gestito che ti aspetti di vedere non è presente nell'elenco, consulta [Risoluzione dei problemi relativi alla disponibilità dei nodi gestiti](fleet-manager-troubleshooting-managed-nodes.md) per suggerimenti sulla risoluzione dei problemi.

1. In **Altri parametri**:
   + In **Commento**, digita le informazioni su questo comando.
   + In **Timeout (secondi)**, specifica il numero di secondi che il sistema dovrà attendere prima di generare un errore per l'intera esecuzione del comando. 

1. Per **Controllo velocità**:
   + In **Simultaneità**, specifica un numero o una percentuale di nodi gestiti su cui eseguire contemporaneamente il comando.
**Nota**  
Se hai selezionato le destinazioni specificando i tag applicati ai nodi gestiti o specificando i gruppi di AWS risorse e non sei sicuro del numero di nodi gestiti come target, limita il numero di destinazioni che possono eseguire il documento contemporaneamente specificando una percentuale.
   + Per **Soglia di errore**, specificare quando interrompere l'esecuzione del comando sulle altri nodi gestiti dopo un errore su un numero o una percentuale di nodi. Se, ad esempio, si specificano tre errori, Systems Manager interrompe l'invio del comando quando riceve il quarto errore. Anche i nodi gestiti che stanno ancora elaborando il comando potrebbero inviare errori.

1. (Facoltativo) Nella sezione **Opzioni di output**, per salvare l'output del comando in un file, seleziona la casella **Scrivi l'output del comando in un bucket S3**. Digita i nomi del bucket e del prefisso (cartella) nelle caselle.
**Nota**  
Le autorizzazioni S3 che danno la possibilità di scrivere dati in un bucket S3 sono quelle del profilo dell'istanza (per istanze EC2) o del ruolo di servizio IAM (in macchine attivate da sistemi ibridi) assegnate all'istanza, non quelle dell'utente IAM che esegue questo processo. Per ulteriori informazioni, consulta le pagine [Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager](setup-instance-permissions.md) oppure [Creazione di un ruolo di servizio IAM per un ambiente ibrido](hybrid-multicloud-service-role.md). Inoltre, se il bucket S3 specificato si trova su un Account AWS diverso, assicurarsi che il profilo dell'istanza o il ruolo di servizio IAM associato al nodo gestito disponga delle autorizzazioni necessarie per scrivere su quel bucket.

1. Se vuoi che vengano inviate notifiche sullo stato dell'esecuzione del comando, nella sezione **Notifiche SNS** selezionara la casella di controllo **Abilita notifiche SNS**.

   Per ulteriori informazioni sulla configurazione delle notifiche Amazon SNS per Run Command, consulta [Monitoraggio delle modifiche di stato di Systems Manager utilizzando le notifiche Amazon SNS](monitoring-sns-notifications.md).

1. Scegli **Esegui**.

## Esegui uno script Python usando GitHub il AWS CLI
<a name="integration-github-python-cli"></a>

1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

   Per informazioni, consulta la pagina [Installazione o aggiornamento della versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Il comando seguente consente di scaricare ed eseguire uno script da GitHub.

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "instance-IDs" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"path_to_script_or_directory"}"],"commandLine":["commands_to_run"]}'
   ```

   Ecco un esempio.

   ```
   aws ssm send-command --document-name "AWS-RunRemoteScript" --instance-ids "i-02573cafcfEXAMPLE" --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"TestUser1\", \"repository\":\"GitHubTestPublic\", \"path\": \"scripts/python/complex-script\"}"],"commandLine":["mainFile.py argument-1 argument-2 "]}'
   ```

   Questo esempio prevede il download di una directory di script denominata `complex-script`. La voce `commandLine` esegue `mainFile.py`, che può a sua volta eseguire altri script nella directory `complex-script`.

# Utilizzo di profili Chef InSpec con la conformità Systems Manager
<a name="integration-chef-inspec"></a>

AWS Systems Manager si integra con [https://www.chef.io/products/chef-inspec](https://www.chef.io/products/chef-inspec). Chef InSpecè un framework di test open source che consente di creare profili leggibili dall'uomo da archiviare in Amazon Simple Storage Service (GitHubAmazon S3). È quindi possibile utilizzare Systems Manager per eseguire analisi della conformità e visualizzare nodi conformi e non conformi. Un *profilo* è un requisito di sicurezza, conformità o policy dell'ambiente di elaborazione. Ad esempio, è possibile creare profili che eseguano i seguenti controlli, quando si esegue la scansione dei nodi con Conformità, uno strumento di AWS Systems Manager:
+ Controllo dell'apertura o della chiusura di porte specifiche.
+ Controllo dell'esecuzione di determinate applicazioni.
+ Controllo dell'avvenuta installazione di specifici pacchetti.
+ Controllo delle chiavi del Registro di sistema Windows per proprietà specifiche.

Puoi creare InSpec profili *solo* per le istanze Amazon Elastic Compute Cloud (Amazon EC2) gestite con Systems Manager. I server locali o le macchine virtuali (VMs) non sono supportati. Il seguente profilo Chef InSpec di esempio controlla se la porta 22 sia aperta.

```
control 'Scan Port' do
impact 10.0
title 'Server: Configure the service port'
desc 'Always specify which port the SSH server should listen to.
Prevent unexpected settings.'
describe sshd_config do
its('Port') { should eq('22') }
end
end
```

InSpec include una raccolta di risorse che consentono di scrivere rapidamente controlli e controlli di controllo. InSpec utilizza il [InSpecDomain-specific Language (DSL)](https://docs.chef.io/inspec/7.0/reference/glossary/#dsl) per scrivere questi controlli in Ruby. È inoltre possibile utilizzare profili creati da una vasta comunità di utenti. InSpec Ad esempio, il [DevSec chef-os-hardening](https://github.com/dev-sec/chef-os-hardening)progetto GitHub include dozzine di profili per aiutarti a proteggere i tuoi nodi. È possibile creare e memorizzare i profili in GitHub o Amazon S3. 

## Come funziona
<a name="integration-chef-inspec-how"></a>

Ecco come funziona il processo di utilizzo dei InSpec profili con Compliance:

1. Identifica InSpec i profili predefiniti che desideri utilizzare o creane uno personalizzato. Per iniziare, ci si può avvalere dei [profili predefiniti](https://github.com/search?p=1&q=topic%3Ainspec+org%3Adev-sec&type=Repositories) disponibili su GitHub. Per informazioni su come creare i tuoi InSpec profili, consulta [Chef Chef InSpec Profiles](https://www.inspec.io/docs/reference/profiles/).

1. I profili possono essere memorizzati in un archivio GitHub pubblico o privato oppure in un bucket S3.

1. Esegui la conformità con InSpec i tuoi profili utilizzando il documento Systems Manager (documento SSM)`AWS-RunInspecChecks`. È possibile iniziare una scansione di conformità utilizzandoRun Command, uno strumento in AWS Systems Manager, per le scansioni su richiesta, oppure è possibile pianificare scansioni di conformità regolari utilizzando State Manager uno strumento in. AWS Systems Manager

1. Per identificare i nodi non conformi ci si può avvalere dell'API di conformità o della console di conformità .

**Nota**  
Osservare le seguenti informazioni.  
Chef utilizza un client sui nodi per elaborare il profilo. Non è necessario installare il client. Quando Systems Manager esegue il documento SSM `AWS-RunInspecChecks`, il sistema verifica che il client sia installato. Se non lo fosse, Systems Manager installa il client Chef durante la scansione, poi, al termine della stessa, lo disinstalla.
L’esecuzione del documento SSM `AWS-RunInspecChecks`, come descritto in questo argomento, assegna una voce di conformità di tipo `Custom:Inspec` a ogni nodo di destinazione. Per assegnare questo tipo di conformità, il documento richiama l'operazione API. [PutComplianceItems](https://docs.aws.amazon.com/systems-manager/latest/APIReference/API_PutComplianceItems.html)

## Esecuzione di una scansione di InSpec conformità
<a name="integration-chef-inspec-running"></a>

Questa sezione include informazioni su come eseguire una scansione di InSpec conformità utilizzando la console Systems Manager e AWS Command Line Interface (AWS CLI). La procedura della console illustra come configurare State Manager per eseguire la scansione. La AWS CLI procedura mostra come Run Command configurare l'esecuzione della scansione.

### Esecuzione di una scansione di InSpec conformità con State Manager (console)
<a name="integration-chef-inspec-running-console"></a>

**Per eseguire una scansione di InSpec conformità State Manager utilizzando la AWS Systems Manager console**

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 **State Manager**.

1. Selezionare **Create association (Crea associazione)**.

1. Immettere un nome nella sezione **Provide association details (Fornisci dettagli associazione)**.

1. Nell'elenco **Command document (Documento comando)** scegliere **`AWS-RunInspecChecks`**.

1. Nell'elenco **Document version (Versione del documento)**, scegliere **Latest at runtime (Ultima versione al tempo di esecuzione)**.

1. Nella sezione **Parametri**, dall'elenco **Tipo di origine**, scegli **GitHub** o **S3**.

   Se lo desideri **GitHub**, inserisci il percorso di un InSpec profilo in un GitHub archivio pubblico o privato nel campo **Informazioni sulla fonte**. Ecco un esempio di percorso a un profilo pubblico fornito dal team di Systems Manager dalla seguente posizione: [https://github.com/awslabs/amazon- ssm/tree/master/Compliance/InSpec/PortCheck](https://github.com/awslabs/amazon-ssm/tree/master/Compliance/InSpec/PortCheck).

   ```
   {"owner":"awslabs","repository":"amazon-ssm","path":"Compliance/InSpec/PortCheck","getOptions":"branch:master"}
   ```

   Se scegli **S3**, inserisci un URL valido per un InSpec profilo in un bucket S3 nel campo Informazioni sulla **fonte**. 

   Per ulteriori informazioni sull'integrazione di Systems Manager con GitHub e Amazon S3, consulta [Esecuzione di script da GitHub](integration-remote-scripts.md). 

1. Nella sezione **Destinazioni**, identifica i nodi in cui si desidera eseguire questa operazione specificando i tag, selezionando manualmente le istanze, i dispositivi edge o indicando un gruppo di risorse.
**Suggerimento**  
Se un nodo gestito che ti aspetti di vedere non è presente nell'elenco, consulta [Risoluzione dei problemi relativi alla disponibilità dei nodi gestiti](fleet-manager-troubleshooting-managed-nodes.md) per suggerimenti sulla risoluzione dei problemi.

1. Nella sezione **Specify schedule (Specifica pianificazione)**, è possibile programmare su base periodica l'esecuzione della scansione di conformità avvalendosi delle opzioni specifiche del generatore di pianificazione.

1. In **Controllo velocità**:
   + In **Simultaneità**, specifica un numero o una percentuale di nodi gestiti su cui eseguire contemporaneamente il comando.
**Nota**  
Se hai selezionato le destinazioni specificando i tag applicati ai nodi gestiti o specificando i gruppi di AWS risorse e non sei sicuro del numero di nodi gestiti utilizzati come target, limita il numero di destinazioni che possono eseguire il documento contemporaneamente specificando una percentuale.
   + Per **Soglia di errore**, specificare quando interrompere l'esecuzione del comando sulle altri nodi gestiti dopo un errore su un numero o una percentuale di nodi. Se, ad esempio, si specificano tre errori, Systems Manager interrompe l'invio del comando quando riceve il quarto errore. Anche i nodi gestiti che stanno ancora elaborando il comando potrebbero inviare errori.

1. (Facoltativo) Nella sezione **Opzioni di output**, per salvare l'output del comando in un file, seleziona la casella **Scrivi l'output del comando in un bucket S3**. Digita i nomi del bucket e del prefisso (cartella) nelle caselle.
**Nota**  
Le autorizzazioni S3 che danno la possibilità di scrivere dati in un bucket S3 sono quelle del profilo dell'istanza (per istanze EC2) o del ruolo di servizio IAM (in macchine attivate da sistemi ibridi) assegnate all'istanza, non quelle dell'utente IAM che esegue questo processo. Per ulteriori informazioni, consulta le pagine [Configurazione delle autorizzazioni dell'istanza richieste per Systems Manager](setup-instance-permissions.md) oppure [Creazione di un ruolo di servizio IAM per un ambiente ibrido](hybrid-multicloud-service-role.md). Inoltre, se il bucket S3 specificato si trova su un Account AWS diverso, assicurarsi che il profilo dell'istanza o il ruolo di servizio IAM associato al nodo gestito disponga delle autorizzazioni necessarie per scrivere su quel bucket.

1. Scegli **Crea associazione**. Il sistema crea l'associazione ed esegue automaticamente la scansione di conformità.

1. Attendere per alcuni minuti il completamento della scansione, poi selezionare **Compliance (Conformità)** nel riquadro di navigazione.

1. In **Corresponding managed instances (Istanze gestite corrispondenti)**, individuare i nodi in cui la colonna **Compliance Type (Tipo di conformità)** è **Custom:Inspec (Personalizzata:Inspec)**.

1. Scegliere un ID nodo per visualizzare i dettagli degli stati non conformi.

### Esecuzione di una scansione di InSpec conformità con () Run CommandAWS CLI
<a name="integration-chef-inspec-running-cli"></a>

1. Installa e configura AWS Command Line Interface (AWS CLI), se non l'hai già fatto.

   Per informazioni, consulta la pagina [Installazione o aggiornamento della versione più recente di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html).

1. Esegui uno dei seguenti comandi per eseguire un InSpec profilo da uno GitHub o da Amazon S3.

   Il comando accetta i parametri seguenti:
   + **sourceType**: GitHub o Amazon S3
   + **SourceInfo**: URL della cartella InSpec del profilo GitHub in o in un bucket S3. La cartella deve contenere il InSpec file di base (\$1.yml) e tutti i controlli correlati (\$1.rb).

   **GitHub**

   ```
   aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters '{"sourceType":["GitHub"],"sourceInfo":["{\"owner\":\"owner_name\", \"repository\":\"repository_name\", \"path\": \"Inspec.yml_file"}"]}'
   ```

   Ecco un esempio.

   ```
   aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters '{"sourceType":["GitHub"],"getOptions":"branch:master","sourceInfo":["{\"owner\":\"awslabs\", \"repository\":\"amazon-ssm\", \"path\": \"Compliance/InSpec/PortCheck\"}"]}'
   ```

   **Amazon S3**

   ```
   aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:tag_name","Values":["tag_value"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/Inspec.yml_file\"}"]}'
   ```

   Ecco un esempio.

   ```
   aws ssm send-command --document-name "AWS-RunInspecChecks" --targets '[{"Key":"tag:testEnvironment","Values":["webServers"]}]' --parameters'{"sourceType":["S3"],"sourceInfo":["{\"path\":\"https://s3.aws-api-domain/amzn-s3-demo-bucket/InSpec/PortCheck.yml\"}"]}' 
   ```

1. Con il comando seguente è possibile visualizzare un riepilogo della scansione di conformità.

   ```
   aws ssm list-resource-compliance-summaries --filters Key=ComplianceType,Values=Custom:Inspec
   ```

1. Eseguire il seguente comando per visualizzare i dettagli di un nodo non conforme.

   ```
   aws ssm list-compliance-items --resource-ids node_ID --resource-type ManagedInstance --filters Key=DocumentName,Values=AWS-RunInspecChecks
   ```

# Integrazione con ServiceNow
<a name="integrations-partners-servicenow"></a>

ServiceNow fornisce un sistema di gestione dei servizi basato sul cloud per creare e gestire flussi di lavoro a livello di organizzazione, ad esempio per servizi IT, sistemi di ticketing e supporto. Il AWS Service Management Connector si integra ServiceNow con Systems Manager per fornire, gestire e gestire AWS le risorse daServiceNow. È possibile utilizzare AWS Service Management Connector per l'integrazione ServiceNow con AutomationChange Manager, Incident Manager e OpsCenter tutti gli strumenti inclusi. AWS Systems Manager

Utilizzando ServiceNow, è possibile eseguire le seguenti attività: 
+ Esegui i playbook di automazione da Systems Manager. 
+ Visualizza, aggiorna e risolvi gli incidenti da Systems Manager OpsItems. 
+ Visualizza e gestisci gli elementi operativi, come gli incidenti, tramite Systems Manager OpsCenter. 
+ Visualizza ed esegui le richieste di modifica di Systems Manager da un elenco selezionato di modelli di modifica pre-approvati. 
+ Gestisci e risolvi gli incidenti che coinvolgono applicazioni AWS ospitate mediante l'integrazione con Incident Manager. 

**Nota**  
Per informazioni su come eseguire l'integrazione conServiceNow, vedere [Configurazione delle integrazioni dei AWS servizi](https://docs.aws.amazon.com/smc/latest/ag/sn-config-integ.html) nella Guida per l'amministratore di *AWS Service Management* Connector.