AWS Notes
5.6K subscribers
445 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
⁠Подключение к EC2 виртуалкам

Для подключения по SSH к #EC2 инстансам #best_practices является ипользование #SSM #Session_Manager. Однако теперь это можно в некоторой степени дополнить использованием EC2 Instance Connect.

https://aws.amazon.com/blogs/compute/new-using-amazon-ec2-instance-connect-for-ssh-access-to-your-ec2-instances/

Предварительно установленный на виртуалку (к которой нужно подключиться) сервис #ec2_instance_connect позволяет прокинуть ваш публичный ключ в meta-data инстанса, где он будет жить 60 секунд и может быть использован для логина ssh-демоном.

Весьма удобная схема с временными ключами, где за авторизацию отвечает #IAM, а значит можно коннектиться с другого инстанса с правами данного инстанса, с локального компа с правами юзера или через браузер #AWS_Console (на картинке внизу).

Т.к. это происходит через AWS API, то коннектиться можно с приватных айпишников.

В отличие от SSM Session Manager, #ec2_instance_connect требует открытый 22 порт на входящие (хотя можно и рекомендуется его ограничить лишь амазоновскими айпишниками, т.к. соединение идёт через сервисы амазона).

Как было сказано, для работы с EC2 Instance Connect - его сначала нужно устанавливать. Предустановлен он лишь в Amazon Linux 2 - очередная причина, почему правильно его использовать (и именно AL2, а не первый).

#SSH
EC2 Instance Connect теперь работает через ABAC. Это значит, что для того, чтобы зайти по SSH на виртуалку, теперь достаточно прописать на ней правильные тэги:

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-connect-set-up.html#ec2-instance-connect-configure-IAM-role

{
"Version":"2012-10-17",
"Statement":[
{
"Effect":"Allow",
"Action":"ec2-instance-connect:SendSSHPublicKey",
"Resource": "arn:aws:ec2:eu-west-1:123456789012:instance/*",
"Condition":{
"StringEquals":{
"aws:ResourceTag/my-tag":"my-value"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:DescribeInstances",
"Resource": "*"
}
]
}

Вы всё ещё кипятите Bastion host? Тогда мы идём к вам!

#EC2 #SSH #ABAC
EC2 Instance Connect — халява закончилась

Две недели порадовались и хватит. AWS ограничила использование EC2 Instance Connect лишь портами SSH/RDP и теперь при попытке присоединиться к RDS или другим ресурсам, получаем ошибку:

"The specified RemotePort is not valid. Specify either 22 or 3389 as the RemotePort and retry your request."

То есть они теперь проверяют параметр --remote-port и если он не 22 или 3389, то отбой.

Что ж, очень жаль, будем искать.

P.S. SSM Session Manager снова/всегда рулит. 😁

#EC2_Instance_Connect
😐3👌2🤣1