Criar um parâmetro do Parameter Store usando a AWS CLI - AWS Systems Manager

Criar um parâmetro do Parameter Store usando a AWS CLI

Você pode usar a AWS Command Line Interface (AWS CLI) para criar tipos de parâmetro String, StringList e SecureString. Depois de excluir um parâmetro, aguarde pelo menos 30 segundos para criar um parâmetro com o mesmo nome.

Os parâmetros não podem ser referenciados ou aninhados nos valores de outros parâmetros. Não é possível incluir {{}} ou {{ssm:parameter-name}} em um valor de parâmetro.

nota

Parâmetros só estão disponíveis na região da Região da AWS em que foram criados.

Criar um parâmetro do String usando a AWS CLI

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

  2. Execute o comando a seguir para criar um parâmetro do tipo String. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "parameter-value" \ --type String \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "parameter-value" ^ --type String ^ --tags "Key=tag-key,Value=tag-value"

    - ou -

    Execute o comando a seguir para criar um parâmetro que contenha um ID da Amazon Machine Image (AMI) como o valor do parâmetro.

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "an-AMI-id" \ --type String \ --data-type "aws:ec2:image" \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "an-AMI-id" ^ --type String ^ --data-type "aws:ec2:image" ^ --tags "Key=tag-key,Value=tag-value"

    A opção --name oferece suporte a hierarquias. Para obter informações sobre hierarquias, consulte Trabalhar com hierarquias de parâmetros no Parameter Store.

    A opção --data-type deverá ser especificada somente se você estiver criando um parâmetro que contenha um ID de AMI. Ele valida se o valor do parâmetro inserido é um ID AMI Amazon Elastic Compute Cloud (Amazon EC2) formatado corretamente. Para todos os outros parâmetros, o tipo de dados padrão é text e é opcional especificar um valor. Para ter mais informações, consulte Como usar o suporte a parâmetros nativos no Parameter Store para IDs de imagem de máquina da Amazon.

    Importante

    Se for bem-sucedido, o comando retornará o número da versão do parâmetro. Exceção: se você tiver especificado aws:ec2:image como o tipo de dados, um novo número de versão na resposta não significa que o valor do parâmetro já tenha sido validado. Para ter mais informações, consulte Como usar o suporte a parâmetros nativos no Parameter Store para IDs de imagem de máquina da Amazon.

    O exemplo a seguir adiciona duas tags de par de chave-valor a um parâmetro.

    Linux & macOS
    aws ssm put-parameter \ --name parameter-name \ --value "parameter-value" \ --type "String" \ --tags '[{"Key":"Region","Value":"East"},{"Key":"Environment", "Value":"Production"}]'
    Windows
    aws ssm put-parameter ^ --name parameter-name ^ --value "parameter-value" ^ --type "String" ^ --tags [{\"Key\":\"Region1\",\"Value\":\"East1\"},{\"Key\":\"Environment1\",\"Value\":\"Production1\"}]

    O exemplo a seguir usa uma hierarquia de parâmetros no nome para criar um texto sem formataçãoStringparâmetro . O comando retornará o número da versão do parâmetro. Para obter mais informações sobre hierarquias de parâmetros, consulte Trabalhar com hierarquias de parâmetros no Parameter Store.

    Linux & macOS

    Parâmetro não em uma hierarquia

    aws ssm put-parameter \ --name "golden-ami" \ --type "String" \ --value "ami-12345abcdeEXAMPLE"

    Parâmetro em uma hierarquia

    aws ssm put-parameter \ --name "/amis/linux/golden-ami" \ --type "String" \ --value "ami-12345abcdeEXAMPLE"
    Windows

    Parâmetro não em uma hierarquia

    aws ssm put-parameter ^ --name "golden-ami" ^ --type "String" ^ --value "ami-12345abcdeEXAMPLE"

    Parâmetro em uma hierarquia

    aws ssm put-parameter ^ --name "/amis/windows/golden-ami" ^ --type "String" ^ --value "ami-12345abcdeEXAMPLE"
  3. Execute o comando a seguir para visualizar o valor do parâmetro mais recente e verificar os detalhes do novo parâmetro.

    aws ssm get-parameters --names "/Test/IAD/helloWorld"

    O sistema retorna informações como estas.

    {
        "InvalidParameters": [],
        "Parameters": [
            {            
                "Name": "/Test/IAD/helloWorld",
                "Type": "String",
                "Value": "My updated parameter value",
                "Version": 2,
                "LastModifiedDate": "2020-02-25T15:55:33.677000-08:00",
                "ARN": "arn:aws:ssm:us-east-2:123456789012:parameter/Test/IAD/helloWorld"            
            }
        ]
    }

Execute o seguinte comando para alterar o valor do parâmetro. O comando retornará o número da versão do parâmetro.

aws ssm put-parameter --name "/Test/IAD/helloWorld" --value "My updated 1st parameter" --type String --overwrite

Execute o seguinte comando para visualizar o histórico de valores de parâmetros.

aws ssm get-parameter-history --name "/Test/IAD/helloWorld"

Execute o seguinte comando para usar esse parâmetro em um comando do

aws ssm send-command --document-name "AWS-RunShellScript" --parameters '{"commands":["echo {{ssm:/Test/IAD/helloWorld}}"]}' --targets "Key=instanceids,Values=instance-ids"

Execute o seguinte comando se você quiser recuperar apenas o parâmetro Value.

aws ssm get-parameter --name testDataTypeParameter --query "Parameter.Value"

Execute o seguinte comando se você quiser somente recuperar o parâmetro Value usandoget-parameters.

aws ssm get-parameters --names "testDataTypeParameter" --query "Parameters[*].Value"

Execute o seguinte comando para visualizar os metadados de parâmetros.

aws ssm describe-parameters --filters "Key=Name,Values=/Test/IAD/helloWorld"
nota

Name deve estar em maiúscula.

O sistema retorna informações como estas.

{
    "Parameters": [
        {
            "Name": "helloworld",
            "Type": "String",
            "LastModifiedUser": "arn:aws:iam::123456789012:user/JohnDoe",
            "LastModifiedDate": 1494529763.156,
            "Version": 1,
            "Tier": "Standard",
            "Policies": []           
        }
    ]
}

Criar um parâmetro do StringList usando a AWS CLI

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

  2. Execute o seguinte comando para criar um parâmetro. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

    Linux & macOS
    aws ssm put-parameter \ --name "parameter-name" \ --value "a-comma-separated-list-of-values" \ --type StringList \ --tags "Key=tag-key,Value=tag-value"
    Windows
    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-comma-separated-list-of-values" ^ --type StringList ^ --tags "Key=tag-key,Value=tag-value"
    nota

    Se for bem-sucedido, o comando retornará o número da versão do parâmetro.

    Este exemplo adiciona duas tags de par de chave-valor a um parâmetro. (Dependendo do tipo de sistema operacional na sua máquina local, execute um dos comandos a seguir. A versão a ser executada em uma máquina local do Windows inclui os caracteres de escape ("\") dos quais o comando deve serr executado na sua ferramenta da linha de comando).

    Veja um StringList de exemplo que usa uma hierarquia de parâmetros.

    Linux & macOS
    aws ssm put-parameter \ --name /IAD/ERP/Oracle/addUsers \ --value "Milana,Mariana,Mark,Miguel" \ --type StringList
    Windows
    aws ssm put-parameter ^ --name /IAD/ERP/Oracle/addUsers ^ --value "Milana,Mariana,Mark,Miguel" ^ --type StringList
    nota

    Os itens em uma StringList devem ser separados por uma vírgula (,). Não é possível usar outros sinais de pontuação ou caracteres especiais para inserir um caractere de escape para os itens da lista. Se você tiver um valor de parâmetro que requer uma vírgula, use o tipo String.

  3. Execute o comando get-parameters para verificar os detalhes do parâmetro. Por exemplo:

    aws ssm get-parameters --name "/IAD/ERP/Oracle/addUsers"

Criar um parâmetro SecureString usando a AWS CLI

Use o procedimento a seguir para criar um parâmetro SecureString. Substitua cada espaço reservado para recurso de exemplo por suas próprias informações.

Importante

Somente o valor de um parâmetro SecureString é criptografado. O nome do parâmetro, a descrição e outras propriedades não são criptografados.

Importante

O Parameter Store só oferece suporte a chaves de criptografia simétricas KMS. Não é possível usar uma chave de criptografia KMS assimétrica para criptografar os parâmetros. Para obter ajuda para determinar se uma KMS é simétrica ou assimétrica, consulte Identificar KMSs simétricas e assimétricas no Manual do desenvolvedor do AWS Key Management Service.

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

  2. Execute um dos seguintes comandos para criar um parâmetro que use o tipo de dados SecureString.

    Linux & macOS

    Criar um parâmetro SecureString usando a Chave gerenciada pela AWS padrão

    aws ssm put-parameter \ --name "parameter-name" \ --value "parameter-value" \ --type "SecureString"

    Crie um parâmetro SecureString que use uma chave gerenciada personalizada

    aws ssm put-parameter \ --name "parameter-name" \ --value "a-parameter-value, for example P@ssW%rd#1" \ --type "SecureString" --tags "Key=tag-key,Value=tag-value"

    Criar um parâmetro SecureString que usa uma chave personalizada do AWS KMS

    aws ssm put-parameter \ --name "parameter-name" \ --value "a-parameter-value, for example P@ssW%rd#1" \ --type "SecureString" \ --key-id "your-account-ID/the-custom-AWS KMS-key" \ --tags "Key=tag-key,Value=tag-value"
    Windows

    Criar um parâmetro SecureString usando a Chave gerenciada pela AWS padrão

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "parameter-value" ^ --type "SecureString"

    Crie um parâmetro SecureString que use uma chave gerenciada personalizada

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-parameter-value, for example P@ssW%rd#1" ^ --type "SecureString" ^ --tags "Key=tag-key,Value=tag-value"

    Criar um parâmetro SecureString que usa uma chave personalizada do AWS KMS

    aws ssm put-parameter ^ --name "parameter-name" ^ --value "a-parameter-value, for example P@ssW%rd#1" ^ --type "SecureString" ^ --key-id " ^ --tags "Key=tag-key,Value=tag-value"account-ID/the-custom-AWS KMS-key"

    Se você criar um parâmetro SecureString usando a chave do Chave gerenciada pela AWS na sua conta e região, não será necessário fornecer um valor para o parâmetro --key-id.

    nota

    Para usar a AWS KMS key atribuída à sua Conta da AWS e Região da AWS, remova o parâmetro key-id do comando. Para obter mais informações sobre AWS KMS keys, consulte Conceitos do AWS Key Management Service no Guia do desenvolvedor do AWS Key Management Service.

    Para usar uma CMK gerenciada pelo cliente, em vez da CMK gerenciada pela Chave gerenciada pela AWS atribuída à sua conta, você deve especificar a chave usando o parâmetro --key-id. O parâmetro oferece suporte aos formatos de parâmetros do KMS a seguir.

    • Exemplo de nome do recurso da Amazon (ARN):

      arn:aws:kms:us-east-2:123456789012:key/key-id

    • Exemplo de ARN alias:

      arn:aws:kms:us-east-2:123456789012:alias/alias-name

    • Exemplo de ID de chave:

      12345678-1234-1234-1234-123456789012

    • Exemplo de nome de alias:

      alias/MyAliasName

    Você pode criar uma chave gerenciada pelo cliente usando o AWS Management Console ou a API do AWS KMS. Os seguintes comandos da AWS CLI criam uma chave gerenciada pelo cliente na Região da AWS atual da sua Conta da AWS.

    aws kms create-key

    Use um comando no seguinte formato para criar um parâmetro SecureString usando a chave que você acabou de criar.

    O exemplo a seguir usa um nome ofuscado (3l3vat3131) para um parâmetro de senha e uma AWS KMS key.

    Linux & macOS
    aws ssm put-parameter \ --name /Finance/Payroll/3l3vat3131 \ --value "P@sSwW)rd" \ --type SecureString \ --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
    Windows
    aws ssm put-parameter ^ --name /Finance/Payroll/3l3vat3131 ^ --value "P@sSwW)rd" ^ --type SecureString ^ --key-id arn:aws:kms:us-east-2:123456789012:key/1a2b3c4d-1a2b-1a2b-1a2b-1a2b3c4d5e
  3. Execute o seguinte comando para verificar os detalhes do parâmetro.

    Se você não especificar o parâmetro with-decryption ou se especificar o parâmetro no-with-decryption, o comando retornará um GUID criptografado.

    Linux & macOS
    aws ssm get-parameters \ --name "the-parameter-name-you-specified" \ --with-decryption
    Windows
    aws ssm get-parameters ^ --name "the-parameter-name-you-specified" ^ --with-decryption
  4. Execute o seguinte comando para visualizar os metadados de parâmetros.

    Linux & macOS
    aws ssm describe-parameters \ --filters "Key=Name,Values=the-name-that-you-specified"
    Windows
    aws ssm describe-parameters ^ --filters "Key=Name,Values=the-name-that-you-specified"
  5. Execute o comando a seguir para alterar o valor do parâmetro se você não estiver usando uma AWS KMS key gerenciada pelo cliente.

    Linux & macOS
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --overwrite
    Windows
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --overwrite

    - ou -

    Execute um dos comandos a seguir para alterar o valor do parâmetro se você estiver usando uma AWS KMS key gerenciada pelo cliente.

    Linux & macOS
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --key-id "the-KMSkey-ID" \ --overwrite
    aws ssm put-parameter \ --name "the-name-that-you-specified" \ --value "a-new-parameter-value" \ --type "SecureString" \ --key-id "account-alias/the-KMSkey-ID" \ --overwrite
    Windows
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --key-id "the-KMSkey-ID" ^ --overwrite
    aws ssm put-parameter ^ --name "the-name-that-you-specified" ^ --value "a-new-parameter-value" ^ --type "SecureString" ^ --key-id "account-alias/the-KMSkey-ID" ^ --overwrite
  6. Execute o seguinte comando para visualizar o valor do parâmetro mais recente.

    Linux & macOS
    aws ssm get-parameters \ --name "the-name-that-you-specified" \ --with-decryption
    Windows
    aws ssm get-parameters ^ --name "the-name-that-you-specified" ^ --with-decryption
  7. Execute o seguinte comando para visualizar o histórico de valores de parâmetros.

    Linux & macOS
    aws ssm get-parameter-history \ --name "the-name-that-you-specified"
    Windows
    aws ssm get-parameter-history ^ --name "the-name-that-you-specified"
nota

Você pode criar manualmente um parâmetro com um valor criptografado. Nesse caso, como o valor já está criptografado, não é necessário escolher o tipo de parâmetro SecureString. Se você escolher SecureString, seu parâmetro será duplamente criptografado.

Por padrão, todos os valores de SecureString são exibidos como texto cifrado. Para descriptografar um valor de SecureString, um usuário deve ter permissão para chamar a operação da API Decrypt do AWS KMS. Para obter informações sobre como configurar o controle de acesso do AWS KMS, consulte Autenticação e controle de acesso para o AWS KMS no Manual de desenvolvedor do AWS Key Management Service.

Importante

Se você alterar o alias da chave KMS para a chave KMS usada para criptografar um parâmetro, também será necessário atualizar o alias de chave que o parâmetro usa para referenciar a AWS KMS. Isso se aplica somente ao alias da chave KMS; o ID da chave que um alias anexa permanece o mesmo, a menos que você exclua a chave inteira.

Criar um parâmetro de várias linhas usando a AWS CLI

Você pode usar a AWS CLI para criar um parâmetro com quebras de linha. Use quebras de linha para dividir o texto em valores de parâmetro mais longos para melhor legibilidade ou, por exemplo, atualizar o conteúdo de parâmetro de vários parágrafos para uma página da Web. Você pode incluir o conteúdo em um arquivo JSON e usar o--cli-input-json, usando caracteres de quebra de linha como\n, conforme mostrado no exemplo a seguir.

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

  2. Execute o seguinte comando para criar um parâmetro do tipo String.

    Linux & macOS
    aws ssm put-parameter \ --name "MultiLineParameter" \ --type String \ --cli-input-json file://MultiLineParameter.json
    Windows
    aws ssm put-parameter ^ --name "MultiLineParameter" ^ --type String ^ --cli-input-json file://MultiLineParameter.json

    O exemplo a seguir mostra o conteúdo de um arquivo MultiLineParameter.json.

    { "Value": "<para>Paragraph One</para>\n<para>Paragraph Two</para>\n<para>Paragraph Three</para>" }

O valor do parâmetro salvo é armazenado da seguinte forma.

<para>Paragraph One</para>
<para>Paragraph Two</para>
<para>Paragraph Three</para>