Noções básicas sobre tipos de parâmetros
Um parâmetro é qualquer parte de dados armazenada no Parameter Store, como um bloco de texto, uma lista de nomes, uma senha, um ID de AMI, uma chave de licença e assim por diante. Você pode fazer referência a esses dados de forma centralizada e segura em seus scripts, comandos e documentos do SSM.
Ao referenciar um parâmetro, você especifica o nome desse parâmetro usando a seguinte convenção.
{{ssm:}}parameter-name
nota
Os parâmetros não podem ser referenciados ou aninhados nos valores de outros parâmetros. Não é possível incluir {{}} ou {{ssm: em um valor de parâmetro.parameter-name}}
O Parameter Store fornece suporte a três tipos de parâmetros: String, StringList e SecureString.
Com uma exceção, ao criar ou atualizar um parâmetro, você insere o valor do parâmetro como texto sem formatação, e o Parameter Store não executa nenhuma validação no texto inserido. No entanto, para parâmetros String, você pode especificar o tipo de dados como aws:ec2:image, e o Parameter Store valida se o valor inserido é o formato adequado para uma AMI do Amazon EC2. por exemplo, ami-12345abcdeEXAMPLE.
Tipo de parâmetro: String
Por padrão, o valor de um parâmetro String consiste em qualquer bloco de texto inserido. Por exemplo:
-
abc123 -
Example Corp -
<img src="images/bannerImage1.png"/>
Tipo de parâmetro: StringList
Os valores de parâmetros StringList contêm uma lista de valores separada por vírgulas, conforme mostrado nos exemplos a seguir.
Monday,Wednesday,Friday
CSV,TSV,CLF,ELF,JSON
Tipo de parâmetro: SecureString
O valor de um parâmetro SecureString é qualquer dado sensível que precisa ser armazenado e referenciado com segurança. Se você tem dados que não deseja que os usuários alterem ou consultem em texto sem criptografia, como segredos leves ou chaves de licença, crie esses parâmetros usando o tipo de dados SecureString.
Recomendamos usar parâmetros do SecureString nos seguintes cenários:
-
Você deseja usar dados/parâmetros em todos os Serviços da AWS sem expor os valores como texto sem formatação em comandos, funções, logs de agentes ou logs do CloudTrail.
-
Você deseja controlar quem tem acesso a dados confidenciais.
-
Você deseja fazer uma auditoria quando dados confidenciais forem acessados (CloudTrail).
-
Você deseja criptografar seus dados confidenciais e trazer suas próprias chaves de criptografia para gerenciar o acesso.
O tipo de parâmetro SecureString pode ser usado para dados textuais que você deseja criptografar, como segredos leves que não exigem rotação, dados de configuração confidenciais ou outros tipos de dados que você precisa proteger. Os dados do SecureString são criptografados e descriptografados usando uma chave AWS KMS. Você pode usar uma chave KMS padrão fornecida pela AWS ou criar e usar sua própria AWS KMS key. (Use seu próprio AWS KMS key se você quiser restringir o acesso do usuário aos parâmetros SecureString. Para obter mais informações, consulte Permissões do IAM para usar chaves padrão da AWS e chaves gerenciadas pelo cliente).
Importante
Observe as seguintes informações importantes:
Se você gerencia credenciais que exigem rotação automática, acesso entre contas ou registro de auditoria detalhado, recomendamos usar o AWS Secrets Manager. O Secrets Manager foi desenvolvido especificamente para gerenciar segredos, como credenciais de banco de dados, chaves de API e segredos fornecidos por software de terceiros compatíveis. Para obter mais informações, consulte O que é o AWS Secrets Manager? no Guia do usuário do AWS Secrets Manager.
Não armazene dados confidenciais em um parâmetro
StringouStringList. Para todos os dados confidenciais que devem permanecer criptografados, use somente o tipo de parâmetroSecureString.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.
Você também pode usar parâmetros de SecureString com outros Serviços da AWS. No exemplo a seguir, a função do Lambda recupera um parâmetro SecureString usando a API GetParameters.
import json import boto3 ssm = boto3.client('ssm', 'us-east-2') def get_parameters(): response = ssm.get_parameters( Names=['LambdaSecureString'],WithDecryption=True ) for parameter in response['Parameters']: return parameter['Value'] def lambda_handler(event, context): value = get_parameters() print("value1 = " + value) return value # Echo back the first key value
AWS KMSCriptografia de definição de preço do
Se você escolher o tipo de parâmetro SecureString ao criar seu parâmetro, o Systems Manager usará o AWS KMS para criptografar o valor do parâmetro.
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.
Não há cobrança do Parameter Store para criar um parâmetro SecureString, mas as cobranças pelo uso da criptografia do AWS KMS são aplicáveis. Para obter mais informações, consulte Definição de preço do AWS Key Management Service
Para obter mais informações sobre Chaves gerenciadas pela AWS e chaves gerenciadas pelo cliente, consulte Conceitos do AWS Key Management Service, no Guia do desenvolvedor do AWS Key Management Service. Para obter mais informações sobre a criptografia do Parameter Store e do AWS KMS, consulte Como o AWS Systems ManagerParameter Store usa o AWS KMS.
nota
Para visualizar uma Chave gerenciada pela AWS, use a operação DescribeKey do AWS KMS. Este exemplo de AWS Command Line Interface (AWS CLI) usa DescribeKey para visualizar uma Chave gerenciada pela AWS.
aws kms describe-key --key-id alias/aws/ssm