Я думаю, что в вашем случае оба метода сопоставимы - подумайте, что произойдет, если у вас будет утечка вашего ключа доступа пользователя IAM jenkins (обратите внимание, что исправления безопасности довольно часто приходят в Jenkins): злоумышленник может получить доступ к AWS API со своего ПК даже без прямого доступа к вашей инфраструктуре. Поэтому, чтобы избежать этой проблемы, вам, вероятно, нужно установить правильную политику, как описано здесь: https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_examples_aws_deny-ip.html, но это означает, что вам нужно жестко закодировать там ваш экземпляр IP, что может ударить вас в будущем.
С другой стороны, профиль экземпляра более эластичен, но, как вы упомянули, - когда у злоумышленника есть прямой доступ к машине, он может отправить запрос в AWS API. Поэтому я думаю, что вам нужно подумать, какой уровень безопасности вам нужен и сколько времени вы хотите потратить на обслуживание этого решения.