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

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

新規登録して質問してみよう
ただいま回答率
85.37%
GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

2回答

8230閲覧

githubにプッシュするapiのkeyやpassなどについて

Mkato

総合スコア118

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

3クリップ

投稿2015/09/30 04:04

githubを使ったapiなど重要なキーやパスワードの取り扱いについて教えて頂ければと思います。
※rails初心者(プログラミング初心者)ですので基本的な事が分かってないとお考え下さいませ。


■状況
1.
railsの勉強としてローカルでアマゾンAPIを使い商品検索して表示させるアプリを作りました。

githubに全てのファイルをpush。
その後本番環境(VPS)にてサイト公開しようかと考えておりました。

amazonからメールで連絡があり、github(私のアカウント)にアクセスkeyが公開されているから削除して防止策を取ってね。と。
確かに確認するとまるまる公開されており、これはダメだと思い削除しました。


↑この様な状況の場合、今後どの様にapiのkeyやそのた諸々のpassなどを管理していくと良いと考えられますでしょうか?

素人なりに思いつくのが
対応策
1.
githubのソースの公開されないアカウントを利用する。
=>有料になってしまうので少し抵抗が。。。

key情報の書かれたファイルのみgithubにpushしないで,直接サーバにUPする。
=>key情報などのファイルは更新頻度も低いので直接UPしてもいいかなーと。
ただgithubを使っている以上git add --allなどとぼけて実行してしまう可能性もあるなーと。

githubには全てをpushするけどkeyやpassは書かないで、その都度サーバ上で編集する。
=>手間がかかるしイケてないなーと。

githubを使わずにVPSに直接upする。
=>最終的にはこれでもいいのですが、現在プログラミングの勉強中なのでgithubを使って管理したいなーと。
ファイルの更新を管理したい。。。

皆様はどの様にapiキーやその他重要なpassなどが書かれたファイルをgithubを使って管理していますでしょうか?

宜しくお願いします。

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

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

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

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

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

guest

回答2

0

3はイケていないなんてとんでもない、3こそイケています。API Keyはプログラムから見れば利用者依存のデータであり、分離されているのが綺麗ですから。実サーバ上でファイルを編集するのでなく、環境変数に書き込んでおいてそれを読み取る方式ではいかがでしょう。

投稿2015/09/30 04:18

yuba

総合スコア5570

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

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

Mkato

2015/09/30 04:30

なるほどー環境変数に設定しておいてからの読み込みですね。 確かにそれであればgithubを使っても問題ないですね。有難う御座います。 pushするファイルの事しか考えておりませんでした。
guest

0

たとえばPaaS であるheroku には、環境変数の値を設定するコマンドがあり、そこにプログラムで読み込む値を設定しておくことで、外部に公開できない情報も安全に扱えるようにする方法が用意されています

bash

1 heroku config:set GITHUB_USERNAME=joesmith 2# export GITHUB_USERNAME=joesmith と同様

ruby

1puts ENV['GITHUB_USERNAME'] # => joesmith

(環境が異なる場合...ローカル開発環境ではdotenv で同様に環境変数の値の管理をすることができます)

それと同様に、環境変数を設定し、プログラム側からその環境変数を読み込むという動作にすると良いかもしれません

Links

投稿2015/09/30 06:28

gouf

総合スコア2321

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問