AWSの例のようにhttpsパススルーでELBを使用していますが、SSLをインスタンスで終了する必要があるためです。 AWSのガイドに従ってファイルキーを持つ既存の.ebextensions YAMLファイルがあります。これは、さまざまな環境で異なる証明書を使用するまではうまくいきます。CloudStructureでSSL証明書を取得するには
私が配備している環境に応じて、Cloudform経由で別のSSL証明書をアップロードできるようにしたいという問題があります。たとえば、testとdevはテスト証明書を取得し、productionはプロダクション証明書を取得します。
マッピングを使用する方法はわかっているので、問題はありませんが、CloudformのElastic Beanstalk環境にファイルをアップロードする方法はわかりません。
CloudFormation YAMLのさまざまな場所に次のコードスニペットを追加しようとしましたが、ファイルをアップロードしていません。コードスニペットで何か間違っているのですか、それとも他に何か不足していますか? EC2 :: Instanceセクションを追加しようとしましたが、Beanstalkの外に新しいEC2インスタンスが作成されます。これは不要です。
Metadata:
AWS::CloudFormation::Authentication:
S3Auth:
type: "s3"
buckets: ["s3-bucket"]
roleName: aws-elasticbeanstalk-ec2-role
AWS::Cloudformation:Init:
config:
files:
/etc/pki/tls/certs/server.crt:
mode: "000400"
owner: root
group: root
authentication: "S3Auth"
source: !FindInMap [Certificates, crt-file, !Ref Environment]
/etc/pki/tls/certs/server.key:
mode: "000400"
owner: root
group: root
authentication: "S3Auth"
source: !FindInMap [Certificates, key-file, !Ref Environment]
ありがとうございました。
驚くばかりです。最終的に、私は環境変数に変数を渡し、env = xならばyをコピーし、そうでなければコピーzならば、単純なbashスクリプトを書いた。それは働いていますが、エレガントではありません。 – WoodchipNZ