質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

3回答

1271閲覧

プロパティファイルにRDSの接続情報を記載し、Gitに公開するのはセキュリティ的にどうですか?

mimi_129

総合スコア63

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

1クリップ

投稿2021/09/17 01:43

前提・実現したいこと

すいません。
かなり初歩的な事で大変申し訳ありませんが、
ご了承下さい。。

現在Gitを用いてアプリケーションの開発を行なっているのですが、
そのアプリケーションの中にプロパティファイルが有り、
その中に記述してあるRDSのエンドポイント、ユーザー名、パスワードを使ってDBの接続を行なっています。

前提として、
EC2の上にアプリケーションを乗せており、
そちらをパブリックなサブネットにしIGWでhttpできるように、
RDSをそのEC2からのみの許可とし、
プライベートなサブネットとして構成しています。

アウトプットの一環として今回作ったそのアプリケーションを公開したいと思うのですが、
セキュリティの観点から見て、
DBへの接続情報が誰でも見れる状態で書いてあるのは不味いのではないか?と思い、
質問させていただきました。

インバウンドルールでEC2へのSSHはMyIPしか許していないので、
SQLは発行出来ないので大丈夫(?)と思っているのですが、
実際はどうなのでしょうか。。

セキュリティに関して本当に疎くて申し訳ないのですが、
もしこれが危険な行為であるとするなら何か代替案等もいただけると助かります。
また、他の方がどういったようにされているのかも教えていただけると幸いです。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ご指摘のようにリスクがものすごくあるわけではありませんが、公開情報にパスワードを含んでもそれを見た人に役に立つわけでもなく心配になるだけなので、公開しない運用が求められます。それに、「大丈夫なはず」という判断が間違っている場合もありますからね。
仮に、 .env に設定があるとしたら、これは非公開にしておいて、公開用に別途 .env.example というファイルを用意しておき、こちらには設定の例示が書いてあり、インストールする際は .env.example を .env にリネームした上で環境に即した値を入れてください、というのが古来から伝わる方法です。

投稿2021/09/17 02:01

ockeghem

総合スコア11705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

一般的な対応という所でやると

プログラム側は環境変数を参照したり、
Gitの管理対象外のファイルで管理します。

Gitの.gitignore等でconfigファイルを弾きます。
config.example等とファイル名を変更して
ローカルで動作するid: root, password: passwordみたいなファイルにして基本的にはこちらで管理します。

README.mdファイルにcp config.example configをやってね的な事を記述しておくと良いでしょう。


さて残った本番環境の接続情報がバッチリ載っている企業の機密情報の塊的なconfigファイル
これは社内サーバやAWSのクラウドストレージ等が候補となります。

AWSのECSだとSystems Managerという
機密データをピンポイントで管理するようなサービスも存在します。
これはECS専用ですけどね。

EC2とかなら社内で許可を貰ってS3保存とかで良いんじゃないでしょうか?

投稿2021/09/17 03:19

miyabi-sun

総合スコア21203

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mimi_129

2021/09/18 04:51

ご回答ありがとうございます! 最も具体的かつ、有益な情報量が多かったのでベストアンサーにさせていただきました。 ckeghemさんもご回答ありがとうございました。 大変勉強になりました。 Webサーバーに接続情報を記述したファイルを置いて、 CIツールで実行フォルダを生成する際にcpしようと思います。 助かりました。
guest

0

DBへの接続情報が誰でも見れる状態で書いてあるのは不味いのではないか?

そのとおりです。書くことによるメリットがまったくないので、デメリットしかありません

投稿2021/09/17 01:54

maisumakun

総合スコア146018

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mimi_129

2021/09/17 02:06

うーん、メリットが無い事は当然分かっているのですが、みなさんはどのように対策なされてるのでしょう? CIツールでデプロイする際に環境変数から接続情報をセットするのが一般的なのでしょうか? 何か代替案もいただけると助かります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問