Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

動作方法の説明などで .env に AWS アクセスキーを記載するパターンを止める #144

Open
dynamis opened this issue Feb 7, 2024 · 4 comments
Labels
documentation Improvements or additions to documentation

Comments

@dynamis
Copy link
Contributor

dynamis commented Feb 7, 2024

.env ファイルを git commit に含めてしまう事故を防止したい。

事前に aws configure でローカルに認証情報が保存されていれば AWS_ACCESS_KEY_ID と AWS_SECRET_ACCESS_KEY 環境変数を設定したり .env ファイルに書かずとも済むので、そちらをメインの手順の説明に切り替えると良いのではないか。

手順としては

  • aws CLI のインストール
  • 事前に aws configure でアクセスキーを設定する
  • .env には NUXT_BUCKET_NAME だけを記載する

(aws CLI のインストール要求をしたり、ユーザ全体のホームに保存されるのも嫌と言えば嫌なんですが App Runner デプロイとかを考える場合にはそれくらいの要求は良いかなと)

元々 AWS_ACCESS_KEY_ID を環境変数に設定するのは AWS 以外の環境にデプロイする場合にサーバサイドも環境変数設定するのに合わせローカルでもそうする (ことで統一性があり分かり易く) という意図であり、AWS App Runner デプロイを前提とする場合は AWS 側で環境変数設定しないのでその方針は採らない。

汎用的なデプロイ対応の説明を残すなら、AWS App Runner デプロイする時は AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY は null でロール設定すれば良いが、他にデプロイする時には環境変数に設定するか s3Client 初期化時に渡してねって説明を環境変数一覧表に残せば良いのではないか。

@knokmki612
Copy link
Contributor

knokmki612 commented Feb 7, 2024

https://github.com/webdino/lyceum-pokemon?tab=readme-ov-file#user-content-fnref-AWS_%E3%82%AF%E3%83%AC%E3%83%87%E3%83%B3%E3%82%B7%E3%83%A3%E3%83%AB-2-0b3b29049d8b1f3350e176af6927669c にて AWS SDK 使用時不要とは書いているのですが、READMEにおける環境変数の説明で一様に記載してあるので利用者も.envへの記載が必須(実際にはそうではない)と思いがちかもしれないですね

@knokmki612 knokmki612 added the documentation Improvements or additions to documentation label Feb 7, 2024
@knokmki612
Copy link
Contributor

zipでダウンロードすると.gitignoreも除去された状態なので誤って.envファイルをコミット(クレデンシャルの漏洩)を引き起こしてしまう可能性がありますね。

@dynamis
Copy link
Contributor Author

dynamis commented Feb 8, 2024

利用者も.envへの記載が必須(実際にはそうではない)と思いがちかもしれないですね

そうなんですよ。条件に応じて必要か分かれるものはメインの手順には含めず注意書きとか環境変数表に書くだけとかにしないと何も考えずにやってしまうという前提で(初学者向け資料においては)書かないとということでした。

zipでダウンロードすると.gitignoreも除去された状態なので

まじかー。それは気付かなかった。なお、設定値の記載先は gitignore で除外ではなくそもそも外部ディレクトリを指定した先のファイルに記載する方が良いのではという提案/指摘も頂きました。通常の設定は .env だがシークレットにあたるものはやっぱり .env に書くのはナシ、ディレクトリの外のファイルを参照というより aws configure か OS 環境変数のいずれかだけを指示するが良い気がしました。

@knokmki612
Copy link
Contributor

https://github.com/webdino/lyceum-pokemon?tab=readme-ov-file#user-content-fnref-AWS_%E3%82%AF%E3%83%AC%E3%83%87%E3%83%B3%E3%82%B7%E3%83%A3%E3%83%AB-2-0b3b29049d8b1f3350e176af6927669c にて AWS SDK 使用時不要

この注釈のリンク先もAWSのドキュメントが更新され該当文書がなくなっているようです

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

2 participants