2017-08-03 13 views
1

私はNode.jsの新機能です。& Web APIサービスの作成に使用するExpress.js。 サービスは、次のコードを使用しているHTTPSを有効にするには:NodeJS/Express + HTTPS:キー&証明書をAWS EC2ノードにデプロイする方法は?

const server = https 
    .createServer({ 
    key: fs.readFileSync('./cert/myservice.key'), 
    cert: fs.readFileSync('./cert/myservice.crt') 
    }) 
.listen(serverConfig.server.port,() => logger.info(`MyService is up and running`)); 

を、見やすいように、このコードは.key.crtファイルは、サービスアプリケーションの場所でローカルに利用可能であることを前提としています。 サービスを単一のAWS EC2ホストに展開したい場合(簡単にするために)、これらのファイルは安全な解決策ではないように思われます。

私はAWS IAMを使用して秘密を保護することを考えていました。 問題は、IAMからEC2ノードにシークレットを直接 "展開"することはできません。 秘密を得るためにIAMのAPIを使用する必要がありますが、次に質問はEC2でAWS資格情報を利用できるようにする方法です。

質問:秘密(証明書と鍵を含む)をAWS EC2ノードに展開するための推奨される安全な方法はありますか?

答えて

1

EC2インスタンスに秘密を保持することは推奨されません。秘密鍵を保持するにはAWS KMS、SSL証明書を管理するにはAWS Certificate Managerを使用することができます。

EC2インスタンスの前にElastic Load Balancer(ELB)を設定し、SSL証明書をELBに適用することができます。ここにはguideがあります。 EL2レベルでSSLを終了し、EC2インスタンス上のサーバーから負荷を取り除くことをお勧めします。

+0

EC2インスタンスの前でELBレベルでSSLを適用すると、私のサービスでHTTPSセットアップコードを取り除くことはできますか? ELBが単一のインスタンスを超えて成長しないように設定すると(私のプロジェクトは初期アルファでもないので、オートスケールする必要はありません)、コストの大幅な変更はないと私は考えています。 –

+0

正しい。まあ、わずかな費用がかかります。 ELBの価格を参照してください。 https://aws.amazon.com/elasticloadbalancing/classicloadbalancer/pricing – Manoj

+0

コストが懸念される場合は、アプリケーションをサーバーレスに移行することで、コストをさらに削減できます。 (ラムダ&APIゲートウェイ)。これを見てください。 https://github.com/awslabs/aws-serverless-express – Manoj

関連する問題