ろきメモ【ROKI MEMO】- ろきsanの備忘録 -

ろきさんの備忘録。プログラミング学習記録や開発記録、および学んだ知識等のアウトプットとシェアを目的に書いています。たまに普通のことも書きます。

【AWS 最初のIAMユーザーを作る】ルートユーザーはこのIAMユーザーを作るだけ。それがベストプラクティス。

スポンサーリンク

Ruby on Rails チュートリアルにて、初めてAWSに触れ、その中で色々やっていたのにもかかわらず、IAMユーザーというのがよくわかっていなかった。

今回改めて調べてみた。

IAMとは
AWS Identity and Access Management (IAM) は、AWS リソースへのアクセスを安全にコンソールするためのウェブサービスです。IAM を使用して、リソースを使用するために認証 (サインイン) され、許可された (アクセス許可を持つ) ユーザーを制御します。
(略)

IAM とは - AWS Identity and Access Management

要は、AWSの様々なリソースに対して、用途に応じてアクセス権限を制限させたIAMユーザーを作成し、そのユーザーでAWSを使用しようしていく。
それが管理者が利用するサービスであっても、ルートユーザーは使用しない。

ルートユーザーとは、もちろん最初にAWSアカウントを作成したアカウントとそのパスワードでサインインするユーザーのこと。
ちなみにIAMユーザーは「アイアムユーザー」と呼ぶようだ。


そして、最初のIAMユーザーを作成するためだけに、ルートユーザーを使用するというのがベストプラクティスなようだ。
IAM でのセキュリティのベストプラクティス - AWS Identity and Access Management


なんと!そうだったのね。
ちゃんとドキュメント読もうね。


なので今回はそのベストプラクティスに従い、最初のIAMユーザー「Administrator」を作成する。
(いや、もちろんもういくつか作っているから最初じゃないんだけどね。。。)

こちらの内容に沿って作成していく。
docs.aws.amazon.com


今回やること(ドキュメントの流れのまんまだが)


スポンサーリンク




STEP1 : ルートユーザーで、 IAM コンソールにサインインする

IAMサービスを起動する。
検索で「IAM」と入力して選択すればよい。
f:id:ahrk-izo:20190219192836p:plain:w400

もしくはこちらにGO(https://console.aws.amazon.com/iam/

STEP2 : ナビゲーションペインで [ユーザー]、[ユーザーを追加] の順に選択

ユーザーの、ユーザー追加をクリック
f:id:ahrk-izo:20190309234919p:plain:w400
※最初のユーザーといいつつ、もうすでに作ってあるのは気にせずに


STEP3 : [User name] に、Administrator と入力

「ユーザーを追加」の画面になるので、ユーザー詳細の設定のユーザー名に「Administrator」と入力
f:id:ahrk-izo:20190309235411p:plain:w500
※「Administrator」・・・管理者って意味ね

STEP4 : [AWS マネジメントコンソール のアクセス] をON、[Custom password (カスタムパスワード)] を選択して、新しいパスワードを入力

・このIAMユーザーはコンソールで使っていくから「AWS マネジメントコンソール のアクセス」を選択
・パスワードも自動じゃなく自分でつくろう
・パスワードのリセットはOFFで
f:id:ahrk-izo:20190310000310p:plain:w500

この最初のユーザー「Administrator」ではなく、今後IAMユーザーを作っていく際、状況によってこれらの項目は変えていこう

・例えばプログラムから使用するなら「プログラムによるアクセス」を選択
・他の人にIAMユーザーを渡すならその人がパスワードを新規で作成したいだろうから「パスワードのリセットが必要」をONにする
などなど。


STEP5 : [Next: Permissions (次へ: アクセス許可)] を選択

上記の入力内容を確認して「次のステップ:アクセス権限」をクリック
f:id:ahrk-izo:20190310165115p:plain:w400
※微妙にボタン内の文字が違うのはよくあること。諦めよう。

STEP6 : [アクセス許可の設定] ページで、[ユーザーをグループに追加] を選択

STEP7 : [Create group] を選択

そのまんま。以下の通りにクリック。
f:id:ahrk-izo:20190310165318p:plain:w500


STEP8 : [グループ名] に「Administrators」と入力

これもそのまんま。「s」を付けて複数形なので注意。(別に間違ったからって使えなくなるわけじゃないがね。。。)
f:id:ahrk-izo:20190310165933p:plain:w500


STEP9 : [ポリシータイプ] > [ジョブ機能] 選択で、コンテンツをフィルタリング

選びやすいように、フィルタリングする。
今後のために、こういう機能があるってことを覚えておいて損はない。
f:id:ahrk-izo:20190310170423p:plain:w500
これで10件だけ表示された。

STEP10 : [AdministratorAccess] をオン、[Create group] を選択

これもそのまんま。
f:id:ahrk-izo:20190310171009p:plain:w500

「AdministratorAccess」の説明には、以下のように書かれている。

Provides full access to AWS services and resources.
AWSのサービスとリソースへのフルアクセスを提供する。)

つまり、IAMユーザーでありながら、全サービスにアクセスできるってことだ。
ただ、ルートユーザーはさらにクレジット情報など重要な情報を持つので、普段のAWSサービスの利用にはルートユーザーは使用しないってこと。

スポンサーリンク



STEP11 : グループリストに戻り、新しいグループのチェックボックスをオン。必要に応じて [Refresh] 。

グループの作成をしたら、グループリストに戻って、作ったグループ(Administrators)がチェックされてた。
・もしされてなかったら、チェック。
・もし表示されてなかったら、「更新」しよう。
ってこと
f:id:ahrk-izo:20190310172653p:plain:w500


STEP12 : [Next: Tagging] を選択

「次のステップ:タグ」をポチッと。
f:id:ahrk-izo:20190310172935p:plain:w300


STEP13 : (オプション) タグをキー - 値のペアとしてアタッチして、メタデータをユーザーに追加

こちらはオプションなので今回は正直よくわかっていないので割愛。


STEP14 : [Next: Review] を選択して、新しいユーザーに追加するグループメンバーシップのリストを表示。続行する準備ができたら、[Create user] を選択

先程のタグはなしで、「次のステップ:確認」へ
f:id:ahrk-izo:20190310173407p:plain:w500


作成するユーザー名はその他詳細、グループなどチェックして「ユーザーの作成」
f:id:ahrk-izo:20190310173802p:plain:w500


はい。無事できました。
f:id:ahrk-izo:20190310222224p:plain:w500



IAMのトップに戻ると、ちゃんと追加されてた!
f:id:ahrk-izo:20190310222948p:plain


こちらのドキュメント(最初の IAM 管理者のユーザーおよびグループの作成 - AWS Identity and Access Management)の流れは以上で終了。


最後に、この作ったIAMユーザーでサインインしてみる。


STEP15 : IAMユーザーでサインイン

IAMのダッシュボードに戻ると、「IAM ユーザーのサインインリンク」というURLがある。
f:id:ahrk-izo:20190310223551p:plain:w400
まずこれをコピーしておく。


そして、今はルートユーザーでサインインしているので、サインアウトする。
f:id:ahrk-izo:20190310223707p:plain:w250


先程コピーしたURLをブラウザで開き、IAMユーザー(Administrator)でサインインする。
f:id:ahrk-izo:20190310224220p:plain:w300
※アカウントはURLの値(数値など)になっている。
ここ値は覚えやすいように自由に変えられるが、ここでは説明は割愛。


はい。無事サインインできました。
f:id:ahrk-izo:20190310224515p:plain:w500


スポンサーリンク



おまけ:IAMユーザーで請求情報にアクセスできるようにする

STEP10のところに、以下のような注記が実はあった。

AdministratorAccess アクセス許可を使用して、AWS Billing and Cost Management コンソールを使用する前に、IAM ユーザーおよびロールの請求へのアクセスをアクティブ化する必要があります。そのためには、請求コンソールへのアクセスの委任に関するチュートリアルのステップ 1 の手順に従ってください。

なんでもできるIAMユーザーを作ったが、請求情報にはデフォルトアクセスできないようだ。
ということで、IAMユーザー(およびロール)でも請求情報にアクセスできるように設定しておこう。


ルートユーザーでサインイン。

※IAMユーザーでサインインしている場合は、サインアウトし、サインイン画面で「ルートアカウント認証情報を使用してサインイン」をクリックすれば、OK。
ルートユーザー名とパスワードでサインインしましょう。
f:id:ahrk-izo:20190310225752p:plain:w250


アカウント > 請求ダッシュボード
f:id:ahrk-izo:20190310230649p:plain:w200


下の方にこんなのメッセージがあると思う。

お客様のアカウントの請求情報に対するIAMアクセスはオフになっています。これはアカウント情報ページでオンにすることができます。

ここの「アカウント情報」のリンクをクリック。
f:id:ahrk-izo:20190310230102p:plain:w300


「IAMユーザー/ロールによる請求情報へのアクセス」横の「編集」をクリック。
f:id:ahrk-izo:20190310231101p:plain:w500


「IAMアクセスのアクティブ化」にチェックを入れ、「更新」
f:id:ahrk-izo:20190310231226p:plain:w300


これでOK。



請求アラートなどまだ未設定の場合はこちらもどうぞ。
ahrk-izo.hatenablog.com


以上。