Частные ключи, которые вы используете в проекте, не должны быть скомпрометированы с исходным кодом. Лучший вариант состоит в том, чтобы настроить эластичный 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»