Частные ключи, которые вы используете в проекте, не должны быть скомпрометированы с исходным кодом. Лучший вариант состоит в том, чтобы настроить эластичный Geanstalk для загрузки файла из AWS S3 во время развертывания приложения.
В следующем примере показан эластичный Beanstalk Файл конфигурации Получение закрытого ключа файл из ведра S3.
# .ebextensions/serverkey.config Resources: AWSEBAutoScalingGroup: Metadata: AWS::CloudFormation::Authentication: S3Auth: type: "s3" buckets: ["elasticbeanstalk-region-account-id"] roleName: "Fn::GetOptionSetting": Namespace: "aws:autoscaling:launchconfiguration" OptionName: "IamInstanceProfile" DefaultValue: "aws-elasticbeanstalk-ec2-role" files: # Private key "/etc/pki/tls/certs/server.key": mode: "000400" owner: webapp group: webapp authentication: "S3Auth" source: https://s3.amazonaws.com/elasticbeanstalk-region-account-id/server.key
Профиль экземпляра «AWS-ELASICBEALSTALL-EC2-роль» должен иметь разрешение на чтение объекта ключа из указанного ведра. Смотри здесь чтобы увидеть, как это сделать.
Вы сделали URL с помощью переменной среды, как это:
source: { "Fn::Join" : ["", ["https://s3.amazonaws.com/elasticbeanstalk-region-account-id/", {"Fn::GetOptionSetting": {"Namespace": "aws:elasticbeanstalk:application:environment", "OptionName": "APP_ENV"}}, ".key"]]}
Надеюсь, у тебя хороший день!
Оригинал: «https://dev.to/eesnaola/how-to-store-private-keys-securely-in-aws-s3-for-use-with-elastic-beanstack-22lc»