Trabajo con jerarquías de parámetros en Parameter Store - AWS Systems Manager

Trabajo con jerarquías de parámetros en Parameter Store

Administrar docenas o centenares de parámetros como una lista sin formato requiere mucho tiempo y es una labor propensa a errores. También puede ser difícil identificar el parámetro correcto para una tarea. Esto significa que puede utilizar accidentalmente el parámetro equivocado o puede crear varios parámetros que utilizan los mismos datos de configuración.

Puede utilizar las jerarquías de parámetros como ayuda para organizar y administrar los parámetros de . Una jerarquía es un nombre de parámetro que incluye una ruta definida mediante barras inclinadas (/).

Conozca la jerarquía de los parámetros a través de ejemplos

El ejemplo siguiente utiliza tres niveles de jerarquía en el nombre para identificar lo siguiente:

/Environment/Type of computer/Application/Data

/Dev/DBServer/MySQL/db-string13

Puede crear una jerarquía con un máximo de 15 niveles. Le recomendamos crear jerarquías que reflejen una estructura jerárquica existente en su entorno, tal y como se muestra en los siguientes ejemplos:

  • El entorno de integración continua (CI) y entrega continua (CD) (flujos de trabajo de CI/CD)

    /Dev/DBServer/MySQL/db-string

    /Staging/DBServer/MySQL/db-string

    /Prod/DBServer/MySQL/db-string

  • Las aplicaciones que utilizan contenedores

    /MyApp/.NET/Libraries/my-password
  • La organización empresarial

    /Finance/Accountants/UserList

    /Finance/Analysts/UserList

    /HR/Employees/EU/UserList

Las jerarquías de parámetros normalizan la forma de crear parámetros y hacen que sea más sencillo administrar los parámetros a lo largo del tiempo. Una jerarquía de parámetros también puede ayudarle a identificar el parámetro correcto para una tarea de configuración. Esto le ayuda a evitar la creación de varios parámetros con los mismos datos de configuración.

Puede crear una jerarquía que le permita compartir parámetros en diferentes entornos, tal y como se muestra en los siguientes ejemplos, que utilizan contraseñas en el entorno de desarrollo y pruebas.

/DevTest/MyApp/database/my-password

A continuación, puede crear una contraseña única para el entorno de producción, tal y como se muestra en el ejemplo siguiente:

/prod/MyApp/database/my-password

No es necesario especificar una jerarquía de parámetros. Puede crear parámetros en el nivel uno. Estos se denominan parámetros raíz. En lo que se refiere a la compatibilidad con versiones anteriores, todos los parámetros creados en Parameter Store antes de publicarse las jerarquías son parámetros raíz. El sistema trata los dos parámetros siguientes como parámetros raíz.

/parameter-name

parameter-name

Realización de consultas de parámetros en una jerarquía

Otro beneficio del uso de jerarquías es la capacidad de consultar todos los parámetros dentro de una jerarquía con la operación GetParametersByPath de la API. Por ejemplo, si ejecuta el siguiente comando en la AWS Command Line Interface (AWS CLI), el sistema devuelve todos los parámetros del nivel de IIS.

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

Para ver los parámetros SecureString descifrados en una jerarquía, debe especificar la ruta y el parámetro --with-decryption, tal y como se muestra en el siguiente ejemplo.

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

Utilizar la AWS CLI para administrar las jerarquías de los parámetros

Este procedimiento le muestra cómo trabajar con parámetros y jerarquías de parámetros con la AWS CLI.

Para administrar parámetros mediante jerarquías
  1. Si aún no lo ha hecho, instale y configure la AWS Command Line Interface (AWS CLI).

    Para obtener más información, consulte Instalación o actualización de la última versión de la AWS CLI.

  2. Ejecute el siguiente comando para crear un parámetro que use el parámetro allowedPattern y el tipo de parámetro String. El patrón permitido en este ejemplo significa que el valor del parámetro debe tener entre 1 y 4 dígitos.

    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

    El comando devuelve el número de la versión del parámetro.

  3. Ejecute el siguiente comando para intentar sobrescribir el parámetro que acaba de crear con un nuevo valor.

    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

    El sistema devuelve el siguiente error porque el valor nuevo no cumple los requisitos del patrón permitido que especificó en el paso anterior.

    An error occurred (ParameterPatternMismatchException) when calling the PutParameter operation: Parameter value, cannot be validated against allowedPattern: \d{1,4}
  4. Ejecute uno de los siguientes comandos para crear un parámetro SecureString que utilice una Clave administrada de AWS. El patrón permitido en este ejemplo significa que el usuario puede especificar cualquier carácter y que el valor debe tener entre 8 y 20 caracteres.

    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. Ejecute los siguientes comandos para crear más parámetros que utilicen la estructura jerárquica del paso anterior.

    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. Ejecute el siguiente comando para obtener el valor de dos parámetros.

    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. Ejecute el siguiente comando para realizar consultas de todos los parámetros en un mismo nivel.

    Linux & macOS
    aws ssm get-parameters-by-path \ --path "/MyService/Test"
    Windows
    aws ssm get-parameters-by-path ^ --path "/MyService/Test"
  8. Ejecute el siguiente comando para eliminar dos parámetros.

    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"