Использовать переменную среды в файле ebextensions

У меня три аккаунта 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-сертификатами, загружаемыми по мере необходимости, но я просто хочу знать, есть ли способ сделать это более безопасно.

Любая помощь очень ценится. Спасибо!


person Prathamesh Datar    schedule 03.04.2018    source источник
comment
Почему бы не использовать разрешения Cross-Account S3? Разрешить учетным записям 2 и 3 иметь доступ к учетной записи 1 S3? docs.aws.amazon.com/ AmazonS3/последняя/dev/. Таким образом, вам не нужно делиться секретами   -  person Tarun Lalwani    schedule 06.04.2018


Ответы (1)


Обратите внимание, что S3 может предоставлять доступ к другим учетным записям с помощью ACL, поэтому не должно быть проблем, если они не находятся под одной и той же учетной записью AWS, если разрешен доступ между учетными записями.

Использование этого в сочетании с ролями IAM должно по-прежнему поддерживать ваш вариант использования без размещения в коде непереключаемых ключей.

См. здесь, как предоставить доступ к нескольким учетным записям: https://docs.aws.amazon.com/AmazonS3/latest/dev/example-walkthroughs-managing-access-example2.html

person colde    schedule 10.04.2018