- Как выполнять команды на EC2 без открытия SSH?
- Предварительные условия и общая архитектура
- Настройка необходимых ролей и политик IAM.
- Установка и проверка агента SSM на распространенных дистрибутивах Linux.
- Выполнение команд с помощью команды "Выполнить" (пример использования aws cli)
- Использование менеджера сессий для интерактивного доступа и переадресации портов.
- Управление выходными данными и журналами (CloudWatch / S3)
- Практические сценарии и примеры
- Советы и рекомендации по обеспечению безопасности
- Распространенные ошибки и способы их устранения
- Краткое описание и инструкции по использованию наших услуг
- Рекомендуемые шаги для начала работы
- Часто задаваемые вопросы
Как выполнять команды на 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, просмотрите планы или свяжитесь с нашей службой поддержки для разработки индивидуальной, безопасной архитектуры для вашего проекта.









