Utilizzo delle gerarchie di parametri - AWS Systems Manager

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

Utilizzo delle gerarchie di parametri

La gestione di un numero elevatissimo di parametri come un elenco semplice è un'attività dispendiosa in termini di tempo ed è soggetta a errori. Può anche risultare difficile identificare il parametro corretto per un'attività specifica. Ciò significa che è possibile usare inavvertitamente il parametro errato oppure creare più parametri che utilizzano gli stessi dati di configurazione.

Puoi pertanto utilizzare le gerarchie di parametri per semplificare l'organizzazione e la gestione dei parametri di . Una gerarchia è un nome di parametro che include un percorso definito mediante l'utilizzo di barre (/).

Esempi di gerarchia dei parametri

L'esempio seguente utilizza tre livelli di gerarchia nel nome per identificare gli elementi seguenti:

/Environment/Type of computer/Application/Data

/Dev/DBServer/MySQL/db-string13

Puoi creare una gerarchia con un massimo di 15 livelli. Ti consigliamo di creare gerarchie in base a una struttura gerarchica esistente nell'ambiente in uso, come illustrato negli esempi seguenti:

Le gerarchie di parametri standardizzano la modalità di creazione dei parametri e semplificano la gestione dei parametri nel corso del tempo. Una gerarchia di parametri può anche semplificare l'identificazione del parametro più idoneo per un'attività di configurazione. Ciò ti consente di evitare la creazione di più parametri con gli stessi dati di configurazione.

Puoi creare una gerarchia che consenta la condivisione dei parametri tra ambienti diversi, come illustrato negli esempi seguenti che utilizzano le password negli ambienti di sviluppo e di gestione temporanea.

/DevTest/MyApp/database/my-password

Potrai quindi creare una password unica per l'ambiente di produzione, come illustrato nell'esempio seguente:

/prod/MyApp/database/my-password

Non è necessario specificare una gerarchia di parametri. Puoi creare i parametri al primo livello. Questo tipo di parametri è definito parametri root. Per garantire la compatibilità con le versioni precedenti, tutti i parametri creati in Parameter Store prima del rilascio della funzionalità delle gerarchie sono parametri root. I sistemi gestiscono entrambi i seguenti parametri come parametri root.

/parameter-name

parameter-name

Esecuzioni di query sui parametri in una gerarchia

Un altro vantaggio dell'utilizzo delle gerarchie è la possibilità di eseguire query su tutti i parametri all'interno di una gerarchia mediante l'operazione API GetParametersByPath. Ad esempio, se esegui questo comando da AWS Command Line Interface (AWS CLI), il sistema restituisce tutti i parametri nel livello IIS.

aws ssm get-parameters-by-path --path /Dev/Web/IIS

Per visualizzare i parametri SecureString decrittati in una gerarchia, devi specificare il percorso e il parametro --with-decryption, come illustrato nel seguente esempio.

aws ssm get-parameters-by-path --path /Prod/ERP/SAP --with-decryption

Limitazione dell'accesso alle operazioni API Parameter Store

Utilizzando le policy AWS Identity and Access Management (IAM), è possibile fornire o limitare l'accesso degli utenti alle operazioni e ai contenuti API Parameter Store.

Nella policy di esempio seguente, agli utenti viene innanzitutto concesso l'accesso per eseguire l'operazione API PutParameter su tutti i parametri in Account AWS 123456789012 nella regione Stati Uniti orientali (Ohio) (us-east-2). Ma gli utenti non possono modificare i valori dei parametri esistenti perché l'opzione Overwrite è esplicitamente negata per l'operazione PutParameter. In altre parole, gli utenti a cui è stata assegnata questa policy possono creare parametri, ma non apportare modifiche ai parametri esistenti.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/*" }, { "Effect": "Deny", "Action": [ "ssm:PutParameter" ], "Condition": { "StringEquals": { "ssm:Overwrite": [ "true" ] } }, "Resource": "arn:aws:ssm:us-east-2:123456789012:parameter/*" } ] }

Gestione dei parametri mediante gerarchie (AWS CLI)

Questa procedura illustra come utilizzare i parametri e le gerarchie di parametri con AWS CLI.

Per gestire i parametri mediante le gerarchie
  1. Se non lo hai ancora fatto, installa e configura AWS Command Line Interface (AWS CLI).

    Per informazioni, consulta la pagina Installazione o aggiornamento della versione più recente di AWS CLI.

  2. Eseguire questo comando per creare un parametro che utilizza il parametro allowedPattern e il tipo di parametro String. Il modello consentito in questo esempio indica che il valore del parametro deve avere una lunghezza compresa tra 1 e 4 cifre.

    Linux & macOS
    aws ssm put-parameter \ --name "/MyService/Test/MaxConnections" \ --value 100 --allowed-pattern "\d{1,4}" \ --type String
    Windows
    aws ssm put-parameter ^ --name "/MyService/Test/MaxConnections" ^ --value 100 --allowed-pattern "\d{1,4}" ^ --type String

    Il comando restituisce il numero di versione del parametro.

  3. Eseguire questo comando per tentare di sovrascrivere il parametro appena creato con un nuovo valore.

    Linux & macOS
    aws ssm put-parameter \ --name "/MyService/Test/MaxConnections" \ --value 10,000 \ --type String \ --overwrite
    Windows
    aws ssm put-parameter ^ --name "/MyService/Test/MaxConnections" ^ --value 10,000 ^ --type String ^ --overwrite

    Il sistema restituisce il seguente errore perché il nuovo valore non è conforme ai requisiti del modello consentito specificato nella fase precedente.

    An error occurred (ParameterPatternMismatchException) when calling the PutParameter operation: Parameter value, cannot be validated against allowedPattern: \d{1,4}
  4. Esegui il seguente comando per creare un parametro SecureString che utilizza un Chiave gestita da AWS. Il modello consentito in questo esempio indica che l'utente può specificare un carattere qualsiasi e il valore deve essere contenere tra 8 e 20 caratteri.

    Linux & macOS
    aws ssm put-parameter \ --name "/MyService/Test/my-password" \ --value "p#sW*rd33" \ --allowed-pattern ".{8,20}" \ --type SecureString
    Windows
    aws ssm put-parameter ^ --name "/MyService/Test/my-password" ^ --value "p#sW*rd33" ^ --allowed-pattern ".{8,20}" ^ --type SecureString
  5. Eseguire questi comandi per creare altri parametri che utilizzano la struttura gerarchica definita nella fase precedente.

    Linux & macOS
    aws ssm put-parameter \ --name "/MyService/Test/DBname" \ --value "SQLDevDb" \ --type String
    aws ssm put-parameter \ --name "/MyService/Test/user" \ --value "SA" \ --type String
    aws ssm put-parameter \ --name "/MyService/Test/userType" \ --value "SQLuser" \ --type String
    Windows
    aws ssm put-parameter ^ --name "/MyService/Test/DBname" ^ --value "SQLDevDb" ^ --type String
    aws ssm put-parameter ^ --name "/MyService/Test/user" ^ --value "SA" ^ --type String
    aws ssm put-parameter ^ --name "/MyService/Test/userType" ^ --value "SQLuser" ^ --type String
  6. Eseguire questo comando per recuperare il valore dei due parametri.

    Linux & macOS
    aws ssm get-parameters \ --names "/MyService/Test/user" "/MyService/Test/userType"
    Windows
    aws ssm get-parameters ^ --names "/MyService/Test/user" "/MyService/Test/userType"
  7. Eseguire questo comando per eseguire query su tutti i parametri all'interno di un singolo livello.

    Linux & macOS
    aws ssm get-parameters-by-path \ --path "/MyService/Test"
    Windows
    aws ssm get-parameters-by-path ^ --path "/MyService/Test"
  8. Eseguire questo comando per eliminare due parametri.

    Linux & macOS
    aws ssm delete-parameters \ --names "/IADRegion/Dev/user" "/IADRegion/Dev/userType"
    Windows
    aws ssm delete-parameters ^ --names "/IADRegion/Dev/user" "/IADRegion/Dev/userType"