Cloud & Infraestrutura

O que Todo Dev Deve Saber sobre Systems Manager: Parameter Store, Session Manager e Patch Manager

7 min de leitura

O que Todo Dev Deve Saber sobre Systems Manager: Parameter Store, Session Manager e Patch Manager

Systems Manager: Uma Visão Prática para Developers O AWS Systems Manager é um serviço que consolida ferramentas operacionais essenciais para gerenciar sua infraestrutura em escala. Como desenvolvedor, você precisará entender três componentes fundamentais: Parameter Store para armazenar configurações sensíveis, Session Manager para acesso seguro a instâncias, e Patch Manager para automatizar atualizações. Este artigo fornece conhecimento prático que você aplicará imediatamente em produção. Parameter Store: Gerenciamento Seguro de Configurações O Parameter Store permite armazenar strings, listas e valores secretos de forma centralizada, sem exposição no código. É a alternativa nativa da AWS ao Vault ou serviços externos, totalmente integrada com IAM e CloudWatch. Quando usar e suas limitações Use Parameter Store para variáveis de ambiente, chaves de API de terceiros, connection strings de banco de dados, e qualquer configuração que mude entre ambientes. O serviço oferece até 10.000 parâmetros na camada Standard gratuitamente. Para volumes maiores ou rotação automática de secrets, migre para AWS Secrets Manager. Exemplo prático com Python

<h2>Systems Manager: Uma Visão Prática para Developers</h2>

<p>O AWS Systems Manager é um serviço que consolida ferramentas operacionais essenciais para gerenciar sua infraestrutura em escala. Como desenvolvedor, você precisará entender três componentes fundamentais: Parameter Store para armazenar configurações sensíveis, Session Manager para acesso seguro a instâncias, e Patch Manager para automatizar atualizações. Este artigo fornece conhecimento prático que você aplicará imediatamente em produção.</p>

<h2>Parameter Store: Gerenciamento Seguro de Configurações</h2>

<p>O Parameter Store permite armazenar strings, listas e valores secretos de forma centralizada, sem exposição no código. É a alternativa nativa da AWS ao Vault ou serviços externos, totalmente integrada com IAM e CloudWatch.</p>

<h3>Quando usar e suas limitações</h3>

<p>Use Parameter Store para variáveis de ambiente, chaves de API de terceiros, connection strings de banco de dados, e qualquer configuração que mude entre ambientes. O serviço oferece até 10.000 parâmetros na camada Standard gratuitamente. Para volumes maiores ou rotação automática de secrets, migre para AWS Secrets Manager.</p>

<h3>Exemplo prático com Python</h3>

<pre><code class="language-python">import boto3

import json

ssm_client = boto3.client(&#039;ssm&#039;, region_name=&#039;us-east-1&#039;)

Armazenar um parâmetro

ssm_client.put_parameter(

Name=&#039;/producao/database/password&#039;,

Value=&#039;minha_senha_super_secreta&#039;,

Type=&#039;SecureString&#039;, # Criptografa com KMS

Description=&#039;Senha do RDS produção&#039;

)

Recuperar um parâmetro

response = ssm_client.get_parameter(

Name=&#039;/producao/database/password&#039;,

WithDecryption=True

)

password = response[&#039;Parameter&#039;][&#039;Value&#039;]

Buscar múltiplos parâmetros por path

response = ssm_client.get_parameters_by_path(

Path=&#039;/producao/&#039;,

Recursive=True,

WithDecryption=True

)

for param in response[&#039;Parameters&#039;]:

print(f&quot;{param[&#039;Name&#039;]} = {param[&#039;Value&#039;]}&quot;)</code></pre>

<p>Estruture os nomes com <code>/ambiente/servico/chave</code> para organização visual e facilitar buscas. O tipo <code>SecureString</code> usa KMS para criptografia em repouso—sempre use para dados sensíveis. Configure políticas IAM para restringir acesso: um desenvolvedor não precisa acessar senhas de produção.</p>

<h2>Session Manager: Acesso Remoto Seguro</h2>

<p>Session Manager substitui SSH/RDP tradicional, oferecendo acesso sem gerenciar chaves ou portas abertas. Todas as ações são auditadas em CloudTrail e as sessões rodam através do Systems Manager Agent, que já vem instalado em AMIs recentes.</p>

<h3>Configuração e uso básico</h3>

<pre><code class="language-python">import boto3

ssm = boto3.client(&#039;ssm&#039;, region_name=&#039;us-east-1&#039;)

Iniciar uma sessão (local, via AWS CLI)

aws ssm start-session --target i-1234567890abcdef0

Ou programaticamente, listar instâncias gerenciadas

response = ssm.describe_instance_information()

for instance in response[&#039;InstanceInformationList&#039;]:

print(f&quot;ID: {instance[&#039;InstanceId&#039;]} | Nome: {instance[&#039;ComputerName&#039;]}&quot;)</code></pre>

<p>No seu terminal local, use <code>aws ssm start-session --target &lt;instance-id&gt;</code> para acessar qualquer instância EC2 (Linux ou Windows). Nenhuma chave SSH necessária. O Systems Manager Agent cuida da autenticação usando credenciais IAM. Verifique que a instância possui role com política <code>AmazonSSMManagedInstanceCore</code> anexada.</p>

<h3>Auditação e segurança</h3>

<p>Cada comando executado em uma sessão é registrado em CloudTrail e CloudWatch Logs. Você pode revisar quem acessou qual servidor e em que horário. Combine com EventBridge para alertar sobre acessos suspeitos. Session Manager desabilita automaticamente acesso SSH/RDP quando bem configurado, eliminando a superfície de ataque.</p>

<h2>Patch Manager: Automação de Atualizações</h2>

<p>Patch Manager automatiza a aplicação de patches no seu parque de máquinas, respeitando agendamentos e grupos de servidores. Reduz drasticamente o tempo entre vulnerabilidades anunciadas e máquinas corrigidas.</p>

<h3>Configuração de grupos de patch</h3>

<pre><code class="language-python">import boto3

ssm = boto3.client(&#039;ssm&#039;, region_name=&#039;us-east-1&#039;)

Criar um grupo de patch

ssm.create_patch_group(

PatchGroupName=&#039;webservers-producao&#039;,

BaselineId=&#039;pb-1234567890abcdef0&#039; # ID da baseline padrão

)

Criar agendamento de patch

ssm.create_maintenance_window(

Name=&#039;patches-domingo-madrugada&#039;,

Description=&#039;Aplica patches em domingos às 2h UTC&#039;,

Schedule=&#039;cron(0 2 ? SUN )&#039;,

Duration=2, # Janela de 2 horas

Cutoff=1,

AllowUnassociatedTargets=False

)

Registrar o Patch Manager nesta janela

ssm.register_task_with_maintenance_window(

WindowId=&#039;mw-1234567890abcdef0&#039;,

TaskType=&#039;RUN_COMMAND&#039;,

TaskArn=&#039;AWS-RunPatchBaseline&#039;,

ServiceRoleArn=&#039;arn:aws:iam::123456789012:role/PatchManagerRole&#039;,

Targets=[{&#039;Key&#039;: &#039;tag:patch-group&#039;, &#039;Values&#039;: [&#039;webservers-producao&#039;]}],

TaskInvocationParameters={

&#039;RunCommand&#039;: {

&#039;Parameters&#039;: {

&#039;Operation&#039;: [&#039;Install&#039;]

}

}

}

)</code></pre>

<p>Configure baselines para sistemas operacionais específicos (Amazon Linux 2, Ubuntu, Windows Server). Classifique patches por severidade e tipo: críticos devem ser aplicados imediatamente em produção, enquanto patches opcionais podem aguardar a próxima janela de manutenção. Use tags (<code>patch-group</code>) nas instâncias para agrupar servidores que recebem patches em sincronia.</p>

<h3>Boas práticas em produção</h3>

<p>Sempre teste patches em um ambiente de staging antes de rollout em produção. Configure reboot automático apenas para patches críticos; patches secundários devem seguir um agendamento regular. Monitore o histórico de patches em CloudWatch para detectar falhas. Se um patch quebrar sua aplicação, o Systems Manager permite rollback—documente o procedimento.</p>

<h2>Conclusão</h2>

<p>Estes três serviços formam a base operacional moderna na AWS. <strong>Parameter Store</strong> centraliza sua configuração sem expor segredos no git. <strong>Session Manager</strong> elimina a fricção de gerenciar chaves SSH enquanto mantém auditoria completa. <strong>Patch Manager</strong> reduz risco de segurança automatizando uma tarefa que, de outra forma, seria negligenciada. Domine estes três e você terá domínio sobre 80% dos desafios operacionais que desenvolvedores enfrentam.</p>

<h2>Referências</h2>

<ul>

<li><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html" target="_blank" rel="noopener noreferrer">AWS Systems Manager Parameter Store Documentation</a></li>

<li><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager.html" target="_blank" rel="noopener noreferrer">Session Manager User Guide - AWS</a></li>

<li><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/patch-manager.html" target="_blank" rel="noopener noreferrer">AWS Systems Manager Patch Manager</a></li>

<li><a href="https://docs.aws.amazon.com/systems-manager/latest/userguide/security_iam_service-with-iam.html" target="_blank" rel="noopener noreferrer">AWS IAM Best Practices for Systems Manager</a></li>

<li><a href="https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ssm.html" target="_blank" rel="noopener noreferrer">Boto3 Systems Manager Reference</a></li>

</ul>

Comentários

Mais em Cloud & Infraestrutura

Guia Completo de Introdução à AWS: Regiões, AZs, Console, CLI e SDK na Prática
Guia Completo de Introdução à AWS: Regiões, AZs, Console, CLI e SDK na Prática

Fundamentos: Regiões e Zonas de Disponibilidade A AWS (Amazon Web Services) é...

Boas Práticas de AppSync: GraphQL Gerenciado com Resolvers e Real-time para Times Ágeis
Boas Práticas de AppSync: GraphQL Gerenciado com Resolvers e Real-time para Times Ágeis

AppSync: Fundamentos e Arquitetura AWS AppSync é um serviço gerenciado que pe...

O que Todo Dev Deve Saber sobre Elastic Load Balancing: ALB, NLB e Gateway Load Balancer
O que Todo Dev Deve Saber sobre Elastic Load Balancing: ALB, NLB e Gateway Load Balancer

O que é Elastic Load Balancing? O Elastic Load Balancing (ELB) é um serviço d...