Как лучше всего передать конфиденциальные данные в экземпляр EC2 (при загрузке или иным образом), к которому может получить доступ только root?
Для этого есть разные способы:
Вы можете использовать ssh в виртуальной машине после ее запуска, sudo для пользователя root (при условии, что у вас есть его учетные данные) и скопировать конфиденциальные данные в.
Если у пользователя root есть ssh-ключ, а у вас есть доступ к открытому ключу, зашифруйте конфиденциальные данные с помощью открытого ключа и поместите их в user-data. Только пользователь root сможет его расшифровать.
Любой вариант предыдущего пункта, в котором у пользователя root есть «секрет», можно использовать для шифрования данных.
Я не могу использовать UserData, потому что любой может это прочитать.
Почему вы разрешаете ненадежным пользователям иметь учетные записи оболочки в вашей системе?
Я не могу использовать частные корзины S3 по той же причине (метаданные и, следовательно, учетные данные могут быть доступны любому пользователю на коробке).
Если вы используете роли сервера IAM, дело обстоит именно так. Однако вы можете по-прежнему используйте корзину S3, просто сохраните учетные данные в файле, к которому имеет доступ только root.