2017-07-13 7 views
0

私はHerokuとAWS EC2にアプリをデプロイしました。また、画像と動画をアップロードするためのストレージ用のAWS S3も作成しました。突然Herokuが私のアプリケーションに最近の脆弱性の影響を受けたと電子メールで通知しました。AWS S3のアクセスキーが盗まれました(おそらくアクセスキーを鉱山しているボットや私のリポジトリは私的ではないので、私は早くそれを見てうれしく、キーを削除して新しいものを生成することができました。基本的に画像をアップロードするための私のコードはこれです。herokuまたはAWS EC2のENV変数からS3資格情報にアクセス

コード内の.jsonファイルからのアクセスキー。

{ 
    "accessKeyId": "xxxxxxxxxxxxx", 
    "secretAccessKey": "xxxxxxxxxxxxxxxxxxxx", 
    "region": "us-east-2" 
} 

マイミドルウェア

const multer = require('multer'); 
const AWS  = require('aws-sdk'); 
const multerS3 = require('multer-s3'); 

AWS.config.loadFromPath('./resources/AwsS3Key.json'); 
var s3 = new AWS.S3(); 

const s3Storage = multerS3({ 
    s3  : s3, 
    bucket : 'entrenami-app-bucket', 
    acl : 'public-read', 
    key : function (req, file, callback) { 
     callback(null, file.originalname); 
    } 
}); 
module.exports.s3Upload = multer({ storage: s3Storage }); 

私は、画像やビデオをアップロードするための私の急行ルータに私のミドルウェアを取り付けました。

AWSの文書では、ソースコードにアクセスキーを入れてはいけないと書かれています。だから私はgitignoreに追加しました。 AWS EC2またはHerokuでアプリをデプロイしたときにアクセスキーにアクセスするにはどうすればよいですか?私はENV変数を使用して私のキーにアクセスする方法はありません。私はドキュメントを読んできましたが、私はそれを念頭に置くことはできません。前もって感謝します。

答えて

2

私が理解しているように、誰かがそれをダウンロードできるように、あなたのキーを静的リソースとして配置しました。私の知る限り、herokuはあなたにenv変数を作成する能力を与える。したがって、aws sdk docsに示すように、AWS_ACCESS_KEY_ID、 AWS_SECRET_ACCESS_KEY、おそらくAWS_DEFAULT_REGION(そこには記述されていませんが、python botoに使用されます)を作成する必要があります。創造のプロセスは、heroku docsでよく説明されています。 AWS SDKは、アプリケーション起動時にこの変数をチェックします。これは、サーバー側のアプリケーションについて話している場合は、appliableです。ユーザーを認証し、(ウェブ連携アイデンティティスクリプトでコーディング

  • ハードに使用 資格情報

  • を供給するためにアマゾンCognito IDを使用して

    1. 他の場合には

      あなたは3つのオプションを持っています推奨されない)

    このamazon articleに記載されているように、

    である。

  • +0

    ご連絡ありがとうございます。私は早く頭の中でそれを包むことができない。そこで、私はステップを1つずつ順番に実行し、ノードアプリケーションがAWS S3キーにアクセスするためのEC2の環境変数を設定しました。明日はヒロクを試してみるよ。 と私のソースコードでキーを入れて私の馬鹿だったねえ私はそれが英雄の中で盗まれることがわかっていない、とにかく再びありがとう。 –

    関連する問題