AWS Notes
5.6K subscribers
444 photos
42 videos
10 files
2.8K links
AWS Notes — Amazon Web Services Educational and Information Channel

Chat: https://xn--r1a.website/aws_notes_chat

Contacts: @apple_rom, https://www.linkedin.com/in/roman-siewko/
Download Telegram
SSM Session Manager + Port Forwarding

Очередной последний гвоздь в крышку Bastion схемы работы - теперь можно через SSM прокидывать на локальный комп нужный порт.

Потестируем. Как обычно, для всех новых фич обычно требуется последние версии всего. Смотрим версию #aws_cli:

aws --version
aws-cli/1.16.218 Python/2.7.14 Linux/4.14.97-90.72.amzn2.x86_64 botocore/1.12.208

Для порт-форвардинга требуется 1.16.220 и новей, так что обновляем.

aws --version
aws-cli/1.16.228 Python/2.7.14 Linux/4.14.97-90.72.amzn2.x86_64 botocore/1.12.218

Теперь 1.16.228 - можно двигать дальше. Проверяем и ставим, если ещё не ставился session-manager-plugin.

Проверяем версию агента (на картинке снизу) - не самая свежая, но можно и древней (2.3.672.0 и новей).

Значит можно запускать. В моём случае запуск в другом аккаунте, потому используется флажок --profile:

aws --region=us-east-1 --profile=openfs ssm start-session \
--target i-08a829418da3d9b15 \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":["80"],"localPortNumber":["8080"]}'

Starting session with SessionId: botocore-session-1567069474-007a8050d8e22a3ed
Port 8080 opened for sessionId botocore-session-1567069474-007a8050d8e22a3ed


portNumber - это порт на инстансе, который будет форвардиться на наш локальный порт на компе localPortNumber.

Открываем в браузере 127.0.0.1:8080 и видим локально у себя локальное на удалённом инстансе. Либо доступ к базе, какому-то сервису - в общем, любому порту.

Поигравшись жмём CTRL-C и (с некоторым лагом) сессия оборовётся.
^CTerminate signal received, exiting.

Итого - отличная штука, бесплатная (только за трафик) - точно стоит освоить и пользоваться.

#ssm #session_manager
Автообновление SSM-агента

Отличная новость - можно включить автообновление для всех ранее настроенных SSM-агентов:

https://docs.aws.amazon.com/systems-manager/latest/userguide/ssm-agent-automatic-updates.html

Например, здесь приходилось проверять, чтобы агент был последним - теперь же любую новую фичу он будет подхватывать сразу!

#ssm
EC2 Console + Session Manager

В консоль таки добавили соединение через SSM Session Manager - теперь не нужно прыгать по сервисам для того, чтобы просто зайти через него на виртуалку. Найти не так просто (улыбаемся и машем), потому инструкция прилагается.

Правая клавиша на инстансе (у которого стоит и настроен SSM agent), жмём Connect. (вверху картинки)

Далее, к сожалению, придётся ещё кликать, т.к. по умолчанию стоит инфо по подключению через SSH - меняем на Session Manager и снова жмём Connect. (в середине)

Открывается обычное терминальное окно SSM Session Manager - радуемся. (нижняя)

#SSM #EC2 #AWS_Console
SSM + Fargate

Тем, кто любит SSM - заслуживающий рассмотрения случай интеграции SSM с Fargate:

https://github.com/andrewkrug/fargate-ir

Конкретно здесь функционал предназначен для incident response, однако мне кажется, что это правильный подход в сторону унификации использования SSM, когда практики, характерные для ОС, распространяются также и на контейнеры.

#SSM #Fargate
Отличная утилитка под SSM Session Manager для борьбы с ключами SSH на ваших инстансах (чтобы их не использовать):

https://github.com/xen0l/aws-gate

#SSM
Встроенный SSM-агент для ECS-Optimized Amazon Linux 2 AMI:

https://aws.amazon.com/about-aws/whats-new/2020/02/amazon-ecs-optimized-linux-2-amis-come-pre-installed-aws-systems-manager-agent/

Теперь можно будет убрать из скриптов ставшую лишней строчку yum install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm (т.к. теперь SSM-агент идёт из коробки).

#SSM #ECS #AMI
​​Настройка Managed Policy для SSM:

https://aws.amazon.com/blogs/mt/applying-managed-instance-policy-best-practices/

Правильный и полезный SSM агент и Sessions Manager появился с кошмарными Managed Policy, поторые были заменены год назад на AmazonSSMManagedInstanceCore.

В статье полезная табличка (на картинке) и последовательность обновления, если у вас уже были настроены старые жирные Managed политики. А также автоматизация этого процесса с помощью AWS Config remediation, если у вас много таких виртуалок.

#SSM #IAM
Вывести имена виртуалок с SSM агентами:

aws ssm describe-instance-information --query InstanceInformationList[*].ComputerName

SSM виртуалки плюс их IP-адреса:

aws ssm describe-instance-information --query InstanceInformationList[*].[ComputerName,IPAddress]

Нужная виртуалка с конкретным IP с выводом чисто текста (для скрипта):

aws ssm describe-instance-information --query "InstanceInformationList[?IPAddress=='10.12.13.162'].ComputerName" --output text

#query #SSM
Хороший (длинный и детальный) туториал по использованию SSM Automation на примере разворота Chaos Monkey:

https://medium.com/@adhorn/creating-your-own-chaos-monkey-with-aws-systems-manager-automation-6ad2b06acf20

#SSM
CodeBuild + SSM

Чтобы отладить что-то в CodeBuild можно использовать SSM Session Manager:

https://docs.aws.amazon.com/codebuild/latest/userguide/session-manager.html

То есть можно тормознуть процесс сборки CodeBuild с помощью вставки codebuild-breakpoint, после приконнектиться через SSM, посмотреть на местности, что не так и после продолжить билд с помощью команды codebuild-resume.

#CodeBuild #SSM
Примитивный, но действенный способ сэкономить для часто встречающегося сценария — тушить или уменьшать мощность ресурсов на ночь. Например, виртуалки и/или RDS базы данных. Для реализации этого поможет SSM Manager + CloudWatch Events:

https://aws.amazon.com/blogs/mt/systems-manager-automation-documents-manage-instances-cut-costs-off-hours/

#SSM #cost_optimization
Чтобы указать последнюю версию SSM Parameter в CloudFormation шаблоне — просто не указываем поле version:

version
If you do not specify the exact version, CloudFormation uses the latest version of the parameter whenever you create or update the stack.

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/dynamic-references.html#dynamic-references-ssm-pattern

#SSM #CloudFormation
Как мониторить (и рестартовать) сервисы на EC2 инстансе с помощью CloudWatch и SSM:

https://aws.amazon.com/blogs/mt/detecting-remediating-process-issues-on-ec2-instances-using-amazon-cloudwatch-aws-systems-manager/

You can use the Amazon CloudWatch agent procstat plugin, which continuously watches specified processes and reports their metrics to Amazon CloudWatch. After the data is in Amazon CloudWatch, you can associate alarms to trigger actions like notifying teams or remediations like restarting the processes, resizing the instances, and so on.

#CloudWatch #SSM
​​Управление инцидентами с помощью SSM Incident Manager:

https://aws.amazon.com/blogs/security/how-to-automate-incident-response-to-security-events-with-aws-systems-manager-incident-manager/

In this post, I showed you how to use Incident Manager to monitor for security events and invoke a response plan via Amazon CloudWatch or Amazon EventBridge. AWS CloudTrail API activity (for a root account login), Amazon GuardDuty (for high severity findings), and AWS Config (to enforce policies like preventing public write access to an S3 bucket). I demonstrated how you can create an incident management and response plan to ensure you have used the power of cloud to create automations that respond to and mitigate security incidents in a timely manner.

#SSM #security
​​Parameter Store теперь можно получить из другого аккаунта.

https://docs.aws.amazon.com/systems-manager/latest/userguide/parameter-store-shared-parameters.html

Ждал этого столько лет. Хотя вру, давно переключился на Secrets Manager.

В общем, теперь параметры можно шарить стандартным способом — с помощью RAM (Recourse Access Manager). То есть точно также, как VPC, а значит хоть на всю организацию сразу.

⚠️ Это не прокатит для бесплатных параметров (Standard tier), такое умеют только Advanced tier параметры. Стоит 5 центов в месяц за штуку плюс за запросы, короче, совсем не бесплатно, но для кого-то будет просто спасением.

#SSM #ParameterStore
👍6