Como usar o suporte a parâmetros nativos no Parameter Store para IDs de imagem de máquina da Amazon - AWS Systems Manager

Como usar o suporte a parâmetros nativos no Parameter Store para IDs de imagem de máquina da Amazon

Ao criar um parâmetro String, você pode especificar um tipo de dado, como aws:ec2:image, para garantir que o valor do parâmetro inserido seja um formato válido de ID da Amazon Machine Image (AMI).

O suporte para formatos de ID de AMI permite que você evite atualizar todos os scripts e modelos com um novo ID sempre que a AMI que deseja usar em seus processos for alterada. Você pode criar um parâmetro com o tipo de dados aws:ec2:image e, em seu valor, inserir o ID de uma AMI. Esta é a AMI a partir da qual você deseja que novas instâncias sejam criadas. Depois, você faz referência a esse parâmetro em seus modelos, comandos e scripts.

Por exemplo, é possível especificar o parâmetro que contém o ID da AMI de sua preferência, quando você executar o comando run-instances do Amazon Elastic Compute Cloud (Amazon EC2).

nota

O usuário que executa esse comando deve ter permissões do AWS Identity and Access Management (IAM) que incluam a operação da API ssm:GetParameters para que o valor do parâmetro seja validado. Caso contrário, o processo de criação do parâmetro falhará.

Linux & macOS
aws ec2 run-instances \ --image-id resolve:ssm:/golden-ami \ --count 1 \ --instance-type t2.micro \ --key-name my-key-pair \ --security-groups my-security-group
Windows
aws ec2 run-instances ^ --image-id resolve:ssm:/golden-ami ^ --count 1 ^ --instance-type t2.micro ^ --key-name my-key-pair ^ --security-groups my-security-group

Você também pode escolher a AMI preferida ao criar uma instância usando o console do Amazon EC2. Para obter mais informações, consulte Usar um parâmetro do Systems Manager para localizar uma AMI no Guia do usuário do Amazon EC2.

Quando chegar a hora de usar uma AMI diferente em seu fluxo de trabalho de criação de instância, você só precisará atualizar o parâmetro com o novo valor da AMI, e o Parameter Store validará novamente que você inseriu um ID no formato adequado.

Conceder permissões para criar um parâmetro do tipo de dados aws:ec2:image

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.

Para criar um parâmetro de tipo de dados aws:ec2:image, o usuário deve ter ambas as permissões ssm:PutParameter e ec2:DescribeImages.

O exemplo de política a seguir concede permissão aos usuários para chamar oPutParameterOperação da API paraaws:ec2:image. Isso significa que o usuário pode adicionar um parâmetro do tipo de dadosaws:ec2:imagePara o sistema.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ssm:PutParameter", "Resource": "*" }, { "Effect": "Allow", "Action": "ec2:DescribeImages", "Resource": "*" } ] }

Como funciona a validação de formato da AMI

Quando você especifica aws:ec2:image como o tipo de dados para um parâmetro, o Systems Manager não cria o parâmetro imediatamente. Em vez disso, ele executa uma operação de validação assíncrona para garantir que o valor do parâmetro atenda aos requisitos de formatação para um ID de AMI e que a AMI especificada esteja disponível em sua Conta da AWS.

Um número de versão de parâmetro pode ser gerado antes que a operação de validação seja concluída. A operação pode não estar concluída mesmo que um número de versão do parâmetro seja gerado.

Para monitorar se seus parâmetros foram criados com êxito, recomendamos usar o Amazon EventBridge para enviar notificações sobre as operações dos parâmetros create e update. Essas notificações relatam se uma operação de parâmetro foi bem-sucedida ou não. Se uma operação falhar, a notificação incluirá uma mensagem de erro que indica o motivo da falha.

{ "version": "0", "id": "eed4a719-0fa4-6a49-80d8-8ac65EXAMPLE", "detail-type": "Parameter Store Change", "source": "aws.ssm", "account": "111122223333", "time": "2020-05-26T22:04:42Z", "region": "us-east-2", "resources": [ "arn:aws:ssm:us-east-2:111122223333:parameter/golden-ami" ], "detail": { "exception": "Unable to Describe Resource", "dataType": "aws:ec2:image", "name": "golden-ami", "type": "String", "operation": "Create" } }

Para obter informações sobre como se inscrever em eventos do Parameter Store no EventBridge, consulte Configurar notificações ou acionar ações com base nos eventos do Parameter Store.