Trabalhar com hierarquias de parâmetros - AWS Systems Manager

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Trabalhar com hierarquias de parâmetros

Gerenciar dezenas ou centenas de parâmetros como uma lista simples é um processo demorado e propenso a erros. Também pode ser difícil identificar o parâmetro correto para uma tarefa. Isso significa que você pode usar acidentalmente o parâmetro errado ou pode criar vários parâmetros que usam os mesmos dados de configuração.

Você pode usar hierarquias de parâmetros para ajudá-lo a organizar e gerenciar parâmetros do . Uma hierarquia é um nome de parâmetro que inclui um caminho definido usando barras (/).

Exemplos de hierarquia de parâmetros

O exemplo a seguir usa três níveis de hierarquia no nome para identificar o seguinte:

/Environment/Type of computer/Application/Data

/Dev/DBServer/MySQL/db-string13

É possível criar uma hierarquia com um máximo de 15 níveis. Sugerimos que você crie hierarquias que reflitam uma estrutura hierárquica existente no seu ambiente, conforme indicado nos exemplos a seguir:

As hierarquias de parâmetros padronizam a maneira de criar parâmetros e facilitam o gerenciamento de parâmetros ao longo do tempo. Uma hierarquia de parâmetros também pode ajudá-lo a identificar o parâmetro correto para uma tarefa de configuração. Isso ajuda você a evitar a criação de vários parâmetros com os mesmos dados de configuração.

Você pode criar uma hierarquia que permite compartilhar parâmetros em diferentes ambientes, como mostram os exemplos a seguir, que usam senhas em ambientes de desenvolvimento e teste.

/DevTest/MyApp/database/my-password

Você poderia então criar uma senha exclusiva para o seu ambiente de produção, conforme mostrado no exemplo a seguir:

/prod/MyApp/database/my-password

Não é necessário especificar uma hierarquia de parâmetros. Você pode criar parâmetros no nível um. Elas são chamadas raiz Parâmetros . Por motivo de compatibilidade com versões anteriores, todos os parâmetros criados no Parameter Store antes do lançamento de hierarquias são parâmetros raiz. Os sistemas tratam ambos os parâmetros a seguir como parâmetros raiz.

/parameter-name

parameter-name

Consultar parâmetros em uma hierarquia

Outro benefício de usar hierarquias é a capacidade de consultar todos os parâmetros em uma hierarquia usando a ação GetParametersByPath da API . Por exemplo, se você executar o seguinte comando na AWS CLI, o sistema retornará todos os parâmetros no nível do IIS.

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

Para visualizar os parâmetros de SecureString descriptografados em uma hierarquia, você especifica o caminho e o parâmetro --with-decryption, como mostra o exemplo a seguir.

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

Restringir o acesso a ações da API do Parameter Store

Usando políticas do AWS Identity and Access Management (IAM), é possível fornecer ou restringir o acesso do usuário a ações e conteúdo da API do Parameter Store

No exemplo de política a seguir, os usuários recebem primeiro acesso para executar a ação da API PutParameter em todos os parâmetros AWS na conta da 123456789012 no Região do Leste dos EUA (Ohio) (us-east-2). Mas, em seguida, os usuários ficam restritos em relação à alteração de valores de parâmetros existentes, pois a Overwrite opção é explicitamente negada para a PutParameter ação . Em outras palavras, os usuários que recebem essa política podem criar parâmetros, mas não fazer alterações nos parâmetros existentes.

{ "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/*" } ] }

Gerenciar parâmetros usando hierarquias (AWS CLI)

Este procedimento mostra como trabalhar com parâmetros e hierarquias de parâmetros usando a AWS CLI.

Para gerenciar parâmetros usando hierarquias

  1. Instale e configure a AWS CLI, caso ainda não o tenha feito.

    Para informações, consulte Instalar ou atualizar ferramentas de linha de comando da AWS.

  2. Execute o seguinte comando para criar um parâmetro que usa o parâmetro allowedPattern e o tipo de parâmetro String O padrão permitido neste exemplo significa que o valor para o parâmetro deve ter entre 1 e 4 dígitos.

    Linux
    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

    O comando retornará o número da versão do parâmetro.

  3. Execute o comando a seguir para tentar substituir o parâmetro que você acabou de criar por um novo valor.

    Linux
    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

    O sistema retorna o seguinte erro porque o novo valor não atende aos requisitos do padrão permitido especificado na etapa anterior.

    An error occurred (ParameterPatternMismatchException) when calling the PutParameter operation: Parameter value, cannot be validated against allowedPattern: \d{1,4}
  4. Execute o seguinte comando para criar um parâmetro SecureString que usa uma chave mestra de cliente (CMK) gerenciada pela AWS O padrão permitido neste exemplo significa que o usuário pode especificar qualquer caractere, e o valor deve estar entre 8 e 20 caracteres.

    Linux
    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. Execute os seguintes comandos para criar mais parâmetros que usam a estrutura hierárquica da etapa anterior.

    Linux
    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. Execute o seguinte comando para obter o valor de dois parâmetros.

    Linux
    aws ssm get-parameters \ --names "/MyService/Test/user" "/MyService/Test/userType"
    Windows
    aws ssm get-parameters ^ --names "/MyService/Test/user" "/MyService/Test/userType"
  7. Execute o seguinte comando para consultar todos os parâmetros em um único nível.

    Linux
    aws ssm get-parameters-by-path \ --path "/MyService/Test"
    Windows
    aws ssm get-parameters-by-path ^ --path "/MyService/Test"
  8. Execute o comando a seguir para excluir dois parâmetros.

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