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 ajudar você a organizar e gerenciar parâmetros. Uma hierarquia é um nome de parâmetro que inclui um caminho definido usando barras (/).
Tópicos
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:
-
Seu ambiente de integração contínua
e entrega contínua (fluxos de trabalho de CI/CD) /Dev/DBServer/MySQL/db-string
/Staging/DBServer/MySQL/db-string
/Prod/DBServer/MySQL/db-string
-
Seus aplicativos que utilizam contêineres
/MyApp/.NET/Libraries/
my-password
-
Sua organização empresarial
/Finance/Accountants/UserList
/Finance/Analysts/UserList
/HR/Employees/EU/UserList
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 ajudar você 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. Estes são chamados de parâmetros raiz. 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 dentro de uma hierarquia usando a operação de API GetParametersByPath. Por exemplo, se você executar o seguinte comando na AWS Command Line Interface (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), você pode fornecer ou restringir o acesso do usuário a operações e conteúdos da API do Parameter Store.
No exemplo de política a seguir, os usuários recebem primeiro acesso para executar a operação da API PutParameter
em todos os parâmetros na Conta da AWS 123456789012 na região Leste dos EUA (Ohio) (us-east-2). Porém, os usuários são impedidos de alterar valores de parâmetros existentes porque a opção Overwrite
é explicitamente negada para a operação PutParameter
. 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)
Esta demonstração explica como trabalhar com parâmetros e hierarquias de parâmetros usando a AWS CLI.
Para gerenciar parâmetros usando hierarquias
Instale e configure a AWS Command Line Interface (AWS CLI), caso ainda não o tenha feito.
Para obter informações, consulte Instalar ou atualizar a versão mais recente da AWS CLI.
-
Execute o seguinte comando para criar um parâmetro que usa o parâmetro
allowedPattern
e o tipo de parâmetroString
. O padrão permitido neste exemplo significa que o valor para o parâmetro deve ter entre 1 e 4 dígitos.O comando retornará o número da versão do parâmetro.
-
Execute o seguinte comando para tentar substituir o parâmetro que você acabou de criar por um novo valor.
O sistema lança o seguinte erro porque o novo valor não atende aos requisitos do padrão permitido que você especificou na etapa anterior.
An error occurred (ParameterPatternMismatchException) when calling the PutParameter operation: Parameter value, cannot be validated against allowedPattern: \d{1,4}
-
Execute o comando a seguir para criar um parâmetro
SecureString
que usa uma Chave 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. -
Execute os seguintes comandos para criar mais parâmetros que usam a estrutura hierárquica da etapa anterior.
-
Execute o seguinte comando para obter o valor de dois parâmetros.
-
Execute o seguinte comando para consultar todos os parâmetros em um único nível.
-
Execute o seguinte comando para excluir dois parâmetros