AmazonS3のシークレットキー管理方法について悩んでいます。


いま、あるサーバ(EC2ではない)内で、S3のシークレットキーが複数の箇所に記述されてしまっています。

1. $HOME/.bash_profile (バッチ処理用)
2. $HOME/下のウェブアプリケーション
3. $HOME/.aws/sdk/config.inc.php
4. /etc/httpd/httpd.conf
5. $HOME/.s3cfg


このままだと シークレットキーを変更する際に5か所修正する必要があり、修正漏れのリスクがあります。
DRYにする方法はないでしょうか?
ベストプラクティスなどがあれば教えてください。

回答の条件
  • 1人5回まで
  • 登録:
  • 終了:2012/08/25 19:15:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:oil999 No.1

回答回数1728ベストアンサー獲得回数320

ポイント50pt

環境変数に設定してはどうでしょう。

環境変数の設定

http://jo1upk.blogdns.net/linux/?Linux%2F%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AE%E8%A8%AD%E5%AE%9A

id:DQNEO

それは私も考えました。
1~3のDRY化は環境変数でいけそうです。
たぶん4も。

5のs3cmdで環境変数を使う方法がわからないのです。

2012/08/20 00:01:30
id:DQNEO

s3cmdの1.1.0beta2にしたら環境変数が使えました!

2012/08/25 01:39:18

その他の回答1件)

id:oil999 No.1

回答回数1728ベストアンサー獲得回数320ここでベストアンサー

ポイント50pt

環境変数に設定してはどうでしょう。

環境変数の設定

http://jo1upk.blogdns.net/linux/?Linux%2F%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0%E3%81%AE%E8%A8%AD%E5%AE%9A

id:DQNEO

それは私も考えました。
1~3のDRY化は環境変数でいけそうです。
たぶん4も。

5のs3cmdで環境変数を使う方法がわからないのです。

2012/08/20 00:01:30
id:DQNEO

s3cmdの1.1.0beta2にしたら環境変数が使えました!

2012/08/25 01:39:18
id:DQNEO

質問者から

DQNEO2012/08/21 00:00:01

■補足1 s3cmd(.s3cfg)

調べてみたら、バージョン1.1.0beta2から環境変数が使えるみたいです。

http://s3tools.org/s3cmd-110b2-released

Config settings from Environment

Many users are not comfortable with keeping their access and secret keys in the config file. Ori Bar provided a patch that allows any config value to be taken from the process environment. For example to obtain the access key from the environment put this in your ~/.s3cfg file:

access_key=$S3_ACCESS_KEY

The S3_ACCESS_KEY name is just an example – use anything you like, just prepend it with “$” sign. For instance

access_key=$ABRACADABRA

is just as valid as $S3_ACCESS_KEY

■補足2 ~/.aws/sdk/config.inc.php

この設定ファイル自体がPHP言語で記述されているので、どうとでもできそうです。(=環境変数を使える)

■補足3 /etc/httpd/httpd.conf

Per/CGI用のためにここで環境変数を定義していたのですが、

それをやめてPerlから.bash_profileを読み込む形にすれば解決しました。

■結論

というわけで残りは1と2をどうやってDRY化するかという問題になりました。

これは、上記と同様にPHPスクリプトから .bash_profileを読み込む形にすればいけそうです。

というわけで自己解決しそうです。

クラウド界隈で何かベストプラクティスがあるのかと思って問いかけをしたのですが、特になさそうですね・・。

id:maya70828 No.2

回答回数1364ベストアンサー獲得回数139

ポイント50pt

管理するというのはこういうことでしょうか?
不満であればポイント配分なしで結構です。

http://frym.jp/category.php?k=S3

id:DQNEO

すみません記事を見ましたが、意味がよくわかりませんでした・・・
s3cmd --configure
だと、
$HOME/.s3cfg にシークレットキーがべた書きされてしまうので、
DRYにならなくて困る(質問の5のケース)、というのが当初の問題提起です。

2012/08/26 02:05:46

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません