Как я могу использовать ssh с сеансами AWS ssm и несколькими профилями?

#amazon-web-services #ssh

#amazon-web-services #ssh

Вопрос:

В связи со стремительным ростом конфигурации AWS с несколькими учетными записями и отказом от ssh в пользу session manager мне нужна функциональность ssh и многопрофильная ProxyCommand.

Из aws docs это достаточно просто. Но теперь я вижу способ добавить дополнительные аргументы для указания профиля. Все, о чем я могу думать, это, по сути, объединение профиля с идентификатором экземпляра и создание выделенных команд.

Вопрос: Как я могу поддерживать несколько профилей с помощью aws ssm, когда proxycommand, похоже, не предлагает мне дополнительных аргументов?

Пример, который я хотел бы: ssh ec2-user@i-18274659f843 --profile dev Поскольку i-* не указано, какой профиль учетной записи использовать

Комментарии:

1. В чем ваш вопрос? Что вы пытаетесь сделать и с какой проблемой сталкиваетесь?

Ответ №1:

Предполагая, что вы используете приведенный ниже пример в своем ssh/config , вы можете просто определить переменную среды AWS_PROFILE перед подключением к нужному экземпляру

 host i-* mi-*
    ProxyCommand sh -c "aws ssm start-session --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
  

терминал:

 $ export AWS_PROFILE=bernard
$ ssh i-12345
  

Комментарии:

1. Это может сработать. Я попробую — я вижу логику. Вы пробовали это? Вы знаете, что это работает?

Ответ №2:

Вам не нужно экспортировать. Вы можете использовать это следующим образом: AWS_PROFILE=bernard ssh ubuntu@i-xxxx

Значение AWS_PROFILE будет действительным только для этой команды и избавит вас от последующих проблем с командами AWS, т.Е. для других профилей.

Таким же образом вы можете задать регион: AWS_REGION=us-east-1 AWS_PROFILE=bernard ssh ubuntu@i-xxxx