У меня три аккаунта AWS. Я сохранил свои файлы сертификатов SSL в S3 внутри одной из учетных записей AWS (скажем, AWS1). Я создал роль IAM, которая предоставляет GetObject доступ к корзинам S3 в AWS1. Затем я настроил файл ebextensions для приложения с одним экземпляром, которое я запускаю в другой учетной записи AWS (скажем, AWS2), чтобы загружать SSL-сертификаты из корзины S3 в AWS1, используя AccessKey и Secret роли IAM, которую я создал в AWS1.
Ниже приведена часть моего файла http-single-instance.config в .ebextensions для приложения, которое у меня есть в AWS2.
Resources:
AWSEBAutoScalingGroup:
Metadata:
AWS::CloudFormation::Authentication:
S3Auth:
type: "s3"
buckets: ["aws1-bucket"]
accessKeyId: "AWS1IAMACCESSKEY"
secretKey: "AWS1IAMSECRET"
Но, как видите, мне пришлось поместить секретные значения IAM AWS1 в исходный код приложения в AWS2 напрямую, чтобы это заработало. Вместо того, чтобы помещать значения для accessKeyId и secretKey в фактический исходный код, можно ли как-то загрузить эти значения либо из переменных среды, либо из S3? Итак, в конце концов, если я могу получить что-то вроде
Resources:
AWSEBAutoScalingGroup:
Metadata:
AWS::CloudFormation::Authentication:
S3Auth:
type: "s3"
buckets: ["aws1-bucket"]
accessKeyId: {AWS2ENVACCESSKEYID}
secretKey: {AWS2ENVSECRETKEY}
Для приложений, работающих в одной и той же учетной записи AWS, я следовал инструкциям, приведенным в этой документации — https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/https-storingprivatekeys.html, и это работает отлично. Решение, которое у меня есть в настоящее время, также работает с SSL-сертификатами, загружаемыми по мере необходимости, но я просто хочу знать, есть ли способ сделать это более безопасно.
Любая помощь очень ценится. Спасибо!