帰省中に使う家の監視カメラ
- 動体検知して,人が入ってきた時のみ録画する
- 録画データはバックグラウンドで Heroku 常にある API へアップロードする
- Heroku 上の API は Google Drive へアップロードする
本スクリプトは Heroku の認証情報などを持たない PC で起動する.Heroku 上の API を一旦挟むことで,本 Python スクリプトや認証情報が攻撃者に盗まれたとしても,攻撃者は動画のアップロードのみしか行うことはできない (Google Drive や Heroku の保存可能領域を減らすことはできる).
これは,それぞれが以下の権限を持つためである
アクター | 権限 |
---|---|
攻撃者 (カメラ付き PC) | Heroku の API へアップロード, ローカルのファイルを削除, スクリプトの停止 |
開発者 (攻撃者とは干渉しない) | Heroku の API へのアクセス,Google Drive へのアクセス |
Heroku 上の API | Google Drive へのアクセス,アップロード,削除など |
ソフトウェア | バージョン | 備考 |
---|---|---|
Python | Python 3.8.10 | conda: NEET_env |
Node.js | v14.17.1 | yarn: package.json |
TypeScript | Version 4.3.5 | yarn: package.json |
以下の二つのスクリプトをそれぞれ起動する
tsc -w
npm run dev
python main.py
API アクセスへの Basic 認証
{
"heroku": {
"username": "<USERNAME>",
"password": "<PASSWORD>"
}
}
Google Console で取得するGoogle APIの認証情報
Google APIトークン
Google Drive のフォルダ ID
{
"folder_id": "<FOLDER ID>"
}
アクセス可能ユーザデータベース
{
"<USERNAME>": { "password": "<PASSWORD>" }
}