Удаленное выполнение команд на экземпляре EC2 с помощью AWS Systems Manager.
Узнайте, как безопасно и эффективно использовать AWS Systems Manager для выполнения команд на серверах EC2.

Удаленное выполнение команд на экземпляре EC2 с помощью AWS Systems Manager.

В этой статье вы узнаете, как безопасно выполнять команды на экземплярах EC2 с помощью AWS Systems Manager без открытия SSH-порта. Изучив необходимые условия, рекомендации и настройки IAM, вы сможете легко управлять своими серверами и выполнять на них команды.
0 Акции
0
0
0
0

 

Как выполнять команды на EC2 без открытия SSH?

Удаленное выполнение команд на экземпляре EC2 с помощью AWS Systems Manager. Один из способов. Безопасный, Масштабируемый И без необходимости открывать SSH-порт для выполнения команд на экземплярах EC2. Это руководство содержит пошаговую инструкцию по внедрению, необходимые условия, примеры команд AWS CLI, конфигурацию IAM и практические советы по безопасности для администраторов сайтов, специалистов DevOps и сетевых инженеров.

 

Предварительные условия и общая архитектура

Для удаленного выполнения команд на EC2 необходимы три основных компонента:

  • Агент SSM установлен и запущен на EC2.
  • EC2 имеет профиль экземпляра IAM, содержащий минимально необходимые политики для регистрации и взаимодействия с Systems Manager.AmazonSSMManagedInstanceCore).
  • Сетевое подключение к сервисам SSM (через интернет или конечные точки VPC для SSM/EC2Messages/SSM-SessionManager).

Архитектура: Пользователь или скрипт из консоли AWS или команды AWS CLI/SDK Выполнить команду Или начало сессии Вызовы → Менеджер систем отправляет сообщение агенту SSM на EC2 → Агент выполняет команду и возвращает результат в CloudWatch/S3 или результат вызова.

 

Примечание о доступе к сети.

Если EC2 находится в частной подсети без NAT, используйте Конечные точки VPC Для com.amazonaws. .ssm, ec2messages, ssmmessages и с3 Использовать.

 

Настройка необходимых ролей и политик IAM.

Создайте роль IAM для EC2 и прикрепите к ней управляемую политику AWS:

Политика доверия (доверительный субъект для EC2):

{
  "Version":"2012-10-17",
  "Statement":[{"Effect":"Allow","Principal":{"Service":"ec2.amazonaws.com"},"Action":"sts:AssumeRole"}]
}

Прикрепить управляемую политику: AmazonSSMManagedInstanceCore

aws iam create-role --role-name SSMInstanceRole --assume-role-policy-document file://trust-policy.json
aws iam attach-role-policy --role-name SSMInstanceRole --policy-arn arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore

Данная политика включает в себя разрешения, необходимые для регистрации и отправки журналов в SSM. Для хранения выходных данных в S3 или использования KMS для шифрования необходимо также добавить разрешения на запись в этот сегмент S3 и использовать ключ KMS.

Затем преобразуйте эту роль в профиль экземпляра и подключите его к EC2.

 

Установка и проверка агента SSM на распространенных дистрибутивах Linux.

Для Amazon Linux 2:

sudo yum install -y amazon-ssm-agent
sudo systemctl enable --now amazon-ssm-agent

Для Ubuntu (например, при загрузке пакета Debian):

REGION=us-east-1
wget https://s3.${REGION}.amazonaws.com/amazon-ssm-${REGION}/latest/debian_amd64/amazon-ssm-agent.deb
sudo dpkg -i amazon-ssm-agent.deb
sudo systemctl enable --now amazon-ssm-agent

Проверьте статус:

sudo systemctl status amazon-ssm-agent
sudo tail -n 200 /var/log/amazon/ssm/amazon-ssm-agent.log

 

Выполнение команд с помощью команды "Выполнить" (пример использования aws cli)

Быстрый способ выполнить команду оболочки на одном или нескольких экземплярах EC2:

Пример: Выполнение команд pt update и upgrade на экземпляре:

aws ssm send-command \
  --instance-ids "i-0123456789abcdef0" \
  --document-name "AWS-RunShellScript" \
  --parameters commands=["sudo apt-get update -y","sudo apt-get upgrade -y"] \
  --comment "Update packages" \
  --region us-east-1

Для выбора целевых серверов по тегу (например, все веб-серверы с тегом Role=web):

aws ssm send-command \
  --targets Key=tag:Role,Values=web \
  --document-name "AWS-RunShellScript" \
  --parameters commands=["/opt/deploy/deploy.sh"] \
  --region eu-central-1

Получить результат выполнения команды:

1) В результате выполнения команды send-command вы получите CommandId.

2)

aws ssm get-command-invocation --command-id <COMMAND_ID> --instance-id i-0123456789abcdef0

Если выходные данные отправляются в S3, установите параметры команды отправки следующим образом: --output-s3-bucket-name и --output-s3-key-prefix Указать.

 

Практические советы по запуску больших скриптов.

  • Загрузите скрипты в S3 и в окне "Выполнить команду" просто... wget + Беги.
  • Для повторяющихся скриптов из Государственный менеджер Использовать.
  • Для полной автоматизации используйте параметры и документы, управляемые SSM (документы автоматизации).

 

Использование менеджера сессий для интерактивного доступа и переадресации портов.

Session Manager позволяет использовать интерактивную оболочку без SSH, а также выполнять переадресацию портов.

Начало интерактивной сессии:

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

Для интерактивного использования в консоли или через AWS CLI требуется установка. плагин менеджера сессий Это зависит от клиента.

Пример переадресации портов для доступа к базе данных:

aws ssm start-session \
  --target i-0123456789abcdef0 \
  --document-name AWS-StartPortForwardingSession \
  --parameters '{"portNumber":["3306"],"localPortNumber":["3307"]}'

Затем вы можете перейти по адресу localhost:3307 Подключение и передача трафика осуществляется через SSM без открытия порта 3306 для доступа в интернет.

 

Управление выходными данными и журналами (CloudWatch / S3)

В настройках Session Manager включите ведение журналов CloudWatch или S3 для сохранения всех сессий.

Для команды "Выполнить" можно перенаправить вывод в S3 или включить вывод CloudWatch:

--cloud-watch-output-config '{"CloudWatchOutputEnabled":true}'

 

Практические сценарии и примеры

Выполняется массовое обновление десятков экземпляров EC2 в нескольких регионах:

  • Используйте таргетинг с помощью тегов или групп ресурсов.
  • Для планирования и координации используйте окна обслуживания SSM или менеджер обновлений.

Используется для серверов с графическими процессорами и серверов рендеринга:

Для серверов с графическими процессорами, развернутых в нескольких местах (например, в более чем 85 наших локациях или регионах AWS), используйте команду "Выполнить" для установки драйверов NVIDIA, CUDA и зависимых пакетов. Пример:

aws ssm send-command --instance-ids "i-..." --document-name "AWS-RunShellScript" --parameters commands=["sudo apt-get install -y nvidia-driver-470","sudo reboot"]

Быстрая настройка торгового VPS с минимальной задержкой:

  • Вместо открытия SSH/22 используйте Session Manager и переадресацию портов для безопасного доступа к торговому серверу.
  • Выбор правильного местоположения (ближайший центр обработки данных с прямым доступом к брокеру) и использование CDN/BGP/частной сети может уменьшить пинг; у нас их более чем достаточно. Более 85 филиалов Мы удовлетворяем эти потребности по всему миру.

 

Советы и рекомендации по обеспечению безопасности

Никогда не открывайте SSH-порт публично.SSM представляет собой альтернативу с низким риском.

  • От наименьшие привилегии Используйте роли и пользователей IAM. Разрешите выполнение только определенных документов или доступ к параметрам.
  • Включите логирование в Session Manager и отправляйте выходные данные в S3 с использованием шифрования KMS или CloudWatch.
  • Для хранилища параметров типа SecureString И используйте выделенный ключ KMS.
  • Ограничения Session Manager: Вы можете устанавливать расписания и политики IAM таким образом, чтобы они выполнялись только в течение определенного временного интервала или с использованием многофакторной аутентификации.
  • Для работы с конфиденциальной информацией используйте конечные точки VPC для SSM, а также надежные списки контроля доступа (ACL) и группы безопасности.

 

Распространенные ошибки и способы их устранения

  • Экземпляр не управляется / Не зарегистрирован: Убедитесь, что агент SSM установлен и запущен, а также что назначена правильная роль IAM.
  • Время ожидания соединения истекло: Проверьте маршрутизацию сети, конечные точки VPC или доступ в Интернет/NAT.
  • При отправке выходных данных в S3 отказано в доступе: Роль IAM должна иметь права на запись в этот сегмент.
  • Команда start-session выдает ошибку: Убедитесь, что на клиентском компьютере установлен плагин session-manager-plugin и что в консоли включена функция Session Manager.

 

Краткое описание и инструкции по использованию наших услуг

Удаленное выполнение команд на экземпляре EC2 с помощью AWS Systems Manager — это безопасный и удобный способ удаленного управления экземплярами EC2, запуска скриптов, установки обновлений и доступа без SSH.

Это решение хорошо соответствует потребностям:

  • Графический сервер (GPU) для искусственного интеллекта и рендеринга.
  • VPS для торговли с низкими требованиями к пингу.
  • Игровые серверы и инфраструктура с высоким уровнем SLA.

Возможно их комбинирование. Если вам необходимо управлять комбинацией AWS EC2 и наших международных серверов (более 85 локаций), мы предлагаем:

  • Для задач, чувствительных к задержкам, выберите ближайший к вам офис.
  • Используйте BGP/CDN и выделенные каналы (при необходимости).
  • Используйте SSM + документы автоматизации для управления и автоматизации взаимодействия между нашими локальными средами, AWS и VPS, а также для централизованного хранения журналов в CloudWatch/S3.

 

Рекомендуемые шаги для начала работы

Чтобы ознакомиться с нашими планами облачных серверов, облачных решений с графическими процессорами и VPS для торговли, а также получить техническую консультацию по выбору оптимального местоположения и безопасной реализации с помощью AWS Systems Manager, просмотрите планы или свяжитесь с нашей службой поддержки для разработки индивидуальной, безопасной архитектуры для вашего проекта.

 

Часто задаваемые вопросы

Вам также может понравиться

Обмен сообщениями «точка-точка» с Amazon SQS

Введение. Шаблон обмена сообщениями «точка-точка» — это широко используемая модель коммуникации в современных веб-архитектуре и облачных архитектурах…