0

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] 

ありがとうございました。

答えて

0

弾性ビーンストーンのnormal file creation methodを使用できます。 .ebextensionsという名前のフォルダ内certs.confという名前のファイルを作成し、これを置く:

Resources: 
    AWSEBAutoScalingGroup: 
    Metadata: 
     AWS::CloudFormation::Authentication: 
     S3Auth: 
      type: "s3" 
      buckets: ["s3-bucket"] 
      roleName: aws-elasticbeanstalk-ec2-role 

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] 

!FindInMapは、そのセクションに動作しない場合は、あなたが常に呼び出す前に所定の位置に右の証明書を置く少しビルドスクリプトを持つことができますeb deploy

+0

驚くばかりです。最終的に、私は環境変数に変数を渡し、env = xならばyをコピーし、そうでなければコピーzならば、単純なbashスクリプトを書いた。それは働いていますが、エレガントではありません。 – WoodchipNZ