Показаны сообщения с ярлыком Amazon EC2. Показать все сообщения
Показаны сообщения с ярлыком Amazon EC2. Показать все сообщения

суббота, 30 марта 2024 г.

aws ec2: проблема входа по ключам

 Казалось бы, уже давно отработанный механизм с .ssh/authorized_keys в случае амазона ВДРУГ дал сбой. Вдруг - потому что ещё несколько лет назад этой ПРОБЛЕМЫ не было.

Смотрим /var/log/auth.log и видим там крайне сомнительные строки

AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys username SHA256:ecphulTPPp7xHnSCVkuQH2fcXemYKjT8xFftheRDz+s failed, status 22

Но секрет прост: кто-то "переиграл в безопасность" и

# apt show ec2-instance-connect

...

Description: Configures ssh daemon to accept EC2 Instance Connect ssh keys

 EC2 Instance Connect is a service that publishes ssh keys for use by EC2

 instances based on AWS Credentials. These keys are consumed by on-instance

 configuration provided by this package. The ssh daemon will query EC2

 Instance Metadata service for user-keys at ssh calltime, validate any if

 present as well as validating their signature, and if all checks pass return

 will include them in the authorized keys list.

Фикс версия 1:

apt remove ec2-instance-connect

systemctl restart sshd

Фикс версия 2:

rm /usr/lib/systemd/system/ssh.service.d/ec2-instance-connect.conf

systemctl daemon-reload

И ещё немного почитать

https://github.com/widdix/aws-ec2-ssh/issues/157


И причина: 

ExecStart=/usr/sbin/sshd -D -o "AuthorizedKeysCommand /usr/share/ec2-instance-connect/eic_run_authorized_keys %%u %%f" -o "AuthorizedKeysCommandUser ec2-instance-connect" $SSHD_OPTS

четверг, 27 февраля 2020 г.

Немного про говнокод в aws

Есть уже рабочий стэк, который трогать не хочется, и нужно задеплоить 1 новую машину, для этого заводим новый VPC. Причём уже есть ASG+LaunchConfig где всё деплоится как надо, но тут задача, где больше 1 сервера точно не понадобится, vpn, jenkins итд, много когда более 1 машины просто не нужно.
Открываем "простой" пример, оф. пример, делаем по аналогии, запускаем cfn. На выходе ошибка
Value () for parameter groupId is invalid. The value cannot be empty (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterValue; Request ID: ...
Открываем доку и видим
[EC2-Classic, default VPC] The names of the security groups. For a nondefault VPC, you must use security group IDs instead.

Думаем, при чём тут это, находим пост (2), заменяем 
"SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ],
на
"SecurityGroupIds" : [ { "Fn::GetAtt" : [ "InstanceSecurityGroup", "GroupId" ] }],
Наслаждаемся ошибкой
Security group sg-059f48c4cb6c45ad2 and subnet subnet-8206c0d8 belong to different networks. Потому что в SG у нас корректно замапилась группа и VPC, а тут взят дефолтный параметр (помним, что у нас иной VPC?). Со злости удаляем вообще SecurityGroupIds, запускаем, радуемся что всё создалось. А потом идём в управление серверами.. и видим что VPC - default и SG пустой!
Вообще, если посмотреть в параметры, там есть LaunchTemplate. Но пока продолжать разгребать эти конюшни.
Судя по всему, тут роляет именно SecurityGroupIds + SubnetId, про что нигде внятно не сказано! Если будет SecurityGroups+SubnetId (второе на верхнем уровне) то будет ошибка
The parameter groupName cannot be used with the parameter subnet (Service: AmazonEC2; Status Code: 400; Error Code: InvalidParameterCombination;
 Хотя можно попробовать вынести SubnetId в NetworkInterfaces (с обвязкой, читаем доку),  и с SecurityGroups...

среда, 14 августа 2019 г.

Private subnet + openvpn в амазоне

Первое что нужно помнить - для уже созданной машины нельзя менять subnet, обходной путь через создание образа и раскатывание нового инстанса.

2 доки, с которыми стоит заранее ознакомиться
https://aws.amazon.com/ru/blogs/awsmarketplace/setting-up-openvpn-access-server-in-amazon-vpc/
https://www.freecodecamp.org/news/how-you-can-use-openvpn-to-safely-access-private-aws-resources-f904cd24f890/

Вкратце, можно взять уже готовый образ с openvpn AS (access server) и платить потом за его использование, а можно развернуть ось и поставить туда пакет с openvpn as. При втором подходе будет ограничение на 2 одновременных коннекта.

Сама установка (для centos):
wget http://swupdate.openvpn.org/as/openvpn-as-2.5.2-CentOS7.x86_64.rpm
yum install -y openvpn-as-2.5.2-CentOS7.x86_64.rpm

Увы, там нет про создание private subnet, может быть позднее сделаю.

пятница, 18 февраля 2011 г.

Amazon EC2 - делаем пробный запуск

Есть сейчас предложение для новых пользователей - инстанс t1.micro бесплатен при соблюдении ряда условий.

Идем на https://console.aws.amazon.com/ec2/home
Регистрируемся.
Теперь надо создать:
- key pair (пару ключей для авторизации)
- security group (набор правил для фаервола)
опционально - elastic IPs - внешний айпи адрес.
Впрочем, можно сразу начать создание машины, а всё это будет создано из мастера.
Для пробы я взял за основу ami-7fd4e10b

По умолчанию у нас нет внешнего айпи, поэтому надо получить адрес для подключения. Например так - переходим в instances, выделяем наш созданный инстанс, и там в свойствах есть строки
Public DNS: ec2-46-137-2-150.eu-west-1.compute.amazonaws.com
Private DNS: ip-10-227-167-170.eu-west-1.compute.internal
Нам нужен public.

Если используется putty - надо сконвертировать файл ключа из .pem в .ppk, штатный ключ putty не поймет. Для этого открываем puttygen, там load private key, на вопрос о конвертации соглашаемся. Потом save private key, без пароля, и уже как .ppk
Теперь подключаем этот ключ и логинимся. По умолчанию root, но некоторые инстансы хотят другие логины, например ec2-user

Много заметок про ЕС2 есть на хабре.