【この記事の目的】「シークレットアクセスキーってどうすれば確認できるの?」を解消する
未経験から半年プログラミング勉強して、2020年の4月に渋谷のWeb系自社開発企業に転職しました。
来夢(らいむ)といいます!
勉強のためプライベートでRubyとSeleniumを使ったWebアプリを作って、AWSで公開するため、こちらの記事を参考に環境作りをしていた際、credentials.yml.enc関係の設定で無事「???」となりました。
(「(デプロイ編①)世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで」: https://qiita.com/naoki_mochizuki/items/814e0979217b1a25aa3e)
ググっていた中で、特に「アクセスキー、シークレットアクセスキー」の作成に関する記事で自分の状況にフィットする記事が見つからなかったので
同じようにAWSやRailsに不慣れな方のフラストレーション解消の一助となればと思い投稿します!
Qiita初投稿のため、書き方や理解・表現で未熟な部分があるかもしれませんが、ご了承ください。
対象読者
- AWSのサービスを利用するのに「アクセスキー」ってやつが必要らしいがよく分からない
- RailsアプリをEC2を使って公開したい
- ので、上記の「世界一丁寧なAWS解説。EC2を利用して、RailsアプリをAWSにあげるまで」を参考に進めている
- のだが、「secret_key_baseについては、Rails5.2でcredentials.yml.encが追加された」らしいというのが気になった
- 頑張って調べてみたけど、credentials.yml.encの自分のaccess_key_id,secret_access_keyって何?
- 他の記事で「アクセスキーとシークレットキーは、IAMのユーザー作成の際に表示される」って見て、作ったのに出てこない。ちゃんとダウンロードしたcsvにも書いてない。
- 昔アクセスキー作った気もするけどあやふや。シークレットアクセスキーに関しては覚えてもいない。
- 記事に「シークレットキーは一度しか出てこない」とか書いてあった。怖い。もう寝たい。
この記事で得られる知識
・アクセスキーとシークレットキーの作成・確認方法
本題【アクセスキーとシークレットキーの作成手順】
-
AWSマネジメントコンソールへアクセスし、サービス検索でIAMを検索してクリック
-
少しだけ下にスクロールすると「アクセスキー」の項目があり、その下に「アクセスキーの作成」というボタンがあるので、このボタンをクリック
-
→アクセスキーとシークレットアクセスキーが記載されたファイルがダウンロードされるので、保管しておきましょう
シークレットキーは「諸々の認証時に参照されるキー」で大事なキーらしいです。(githubで公開してしまわないように間違ってもダウンロードしたcsvファイルはRailsのアプリのディレクトリには入れないほうが良いかと)表示にも書いてありますが
シークレットアクセスキーを表示またはダウンロードできるのは 今回のみ です。
忘れずにcsvファイルはダウンロードしておきましょう。また、シークレットアクセスキーの下にある「表示」をクリックすると、シークレットアクセスキーをここで確認・コピーすることができます。
すぐ使う場合などはコピーしておきましょう。
念の為、安全に管理できる場所にメモしておくのも良いかと思います。 -
csvのダウンロードと、シークレットアクセスキーのコピーは終わりましたか?終わったなら右下の「閉じる」をクリック
「昔一回アクセスキー作ったみたいなんだけど、シークレットアクセスキー忘れちゃった」
→credentials.yml.encにアクセスキーとシークレットアクセスキーを設定済みなのであれば、ターミナルで下記のコマンドで表示されるかと思います。
$ rails c
$ Rails.application.credentials.aws[:secret_access_key]
=> シークレットアクセスキーが表示される
$ Rails.application.credentials.aws[:access_key_id]
=> アクセスキーが表示される
設定していないなら、昔の自分がcsvファイルをダウンロードしていることに賭けてファイルを探してみるのもありですが、
上記の手順でもう一度最初からアクセスキー、シークレットアクセスキーを作成するのが早いと思われます
ここに関してはさらに良い方法があればコメントを是非いただきたいです。
「やり方はなんとなく分かったけど、「一度しか出ない」とか言われるとちょっと不安」
→IAMでお試し用のユーザーを作ってデモでやってみましょう
ユーザーを作成するのは課金されません。お試し用のユーザーならサクッと作ってサクッと試して、サクッと消して大丈夫です。
追記 ユーザー作成の際にシークレットアクセスキーが表示されるパターンと表示されないパターンがある
IAMのユーザー作成の際に
「AWS アクセスの種類を選択」で
・「プログラムによるアクセス」にチェック→ユーザー作成時にシークレットアクセスキーが表示される
・「AWS マネジメントコンソールへのアクセス」にチェック→作成時には表示されない
みたいです!
自分は後者のパターンでユーザー作成していたので、ユーザー作成時にシークレットアクセスキーとか出てこなかったんですね。
これもユーザー作成で1分で試せるので試してみてください。
以上です!
1人でも参考になる方がいれば幸いです!!