ひさふぃの日記

DjangoとPythonとLaravelが好き。大阪でフリーランスエンジニアやってます。

【AWS入門】初期登録から適切なIAMユーザーでログインするまで

役に立つ人

AWS入門者/はじめてみたい
IAMわからないけどセキュアなアカウントを作りたい

大まかな手順

  • ルートアカウント作成・設定
  • 請求額のアラートメール設定
  • IAMユーザー(admin)作成・設定
  • IAMユーザー(develop)作成・ログイン確認

IAMってなんやねんって感じだとと思うけど、「セキュリティを向上させる権限管理機能」ってざっくり覚えてもらえれば良き
今回はユーザーに対して使ってるけども他の使い方もあるから興味があったら調べてみてください

出てくるアカウントについて

  • root:神権限。root以外のユーザーはIAMユーザーと呼ばれる。全ての操作を行えるので、今回設定したら触らないようにするのが良い。
  • admin:IAMをいじることができる権限を付与する。簡単に言うとユーザーを作成したりする権限
  • develop:各種AWSのリソースを触れるような権限を付与する

普段の開発ではdevelopを使う
ユーザーを作成したり新たな権限に変更したい場合にadminを使う
rootは封印する。請求(Billing)関連を見るときだけ使う(今回はIAMユーザーに解放しないので)

ルートアカウント作成

https://portal.aws.amazon.com/billing/signup#/start
クレジットカードと携帯番号が必須
クレジットカードを持っていないなら適当にクレジットカードを作るんだ
できたらまた来てくれ
よくわからないなら年会費無料の楽天カードがおすすめだ

個人利用なのでパーソナルで良い
住所はローマ字表記だから注意が必要だ
一々打ってられないって人は変換してくれるサイトを活用すべし
https://kimini.jp/
プランが出てくるがサポートが必要になればその時に変更できるからとりあえず無料を選ぶ
登録が完了すればメールが届くぞ

f:id:hisafi:20210204001936p:plain

上記のメール内のリンクからコンソールのログイン画面へ遷移する
先ほど入力したパスワードを使ってログインする

ログインできたね、やったね
ただしここで止めてはいけない
寝るのはセキュリティ対策をしっかりしてから。約束だよ

ルートアカウント設定

ルートアカウントでの操作は下記3つ

  • MFA認証を登録
  • 無料枠超過メールの送信機能有効化
  • IAMユーザー(admin)作成

MFA認証を登録

ルートアカウントに限らず全てのアカウント(admin/develop)で設定する
パスワードだけの認証よりもかなりセキュリティが向上する。必ず設定してください
スマホにアプリを入れるのですがいくつか選択肢があります
僕はAuthyを使っていますがお好みで選んでインストールしておいてください

コンソール内のIAM画面へ遷移

f:id:hisafi:20210204001941p:plain

画像のリンクから登録画面へ移ってスマホにインストールしたMFAアプリでQRコードを読み取り、30秒おきに新しいコードが表示されるので1→2と続けて入力してください

f:id:hisafi:20210204001946p:plain

f:id:hisafi:20210204001952p:plain

無料枠超過メールの送信機能有効化

この設定をするだけで無料枠からはみ出ちゃうかもしれないときにメールが送られてきます
コンソール内のBillingへ遷移

f:id:hisafi:20210204001957p:plain

画像の通りリンクを辿って3つのチェックを入れて設定してください

f:id:hisafi:20210204002003p:plain

IAMユーザー(admin)作成

ルートユーザーで最後にIAMユーザー(admin)を作成します
この操作が終わったら神であるルートアカウントは封印してください

コンソール内のIAM画面へ遷移
ユーザーリンクからユーザーを追加ボタンを押す

f:id:hisafi:20210204002011p:plain

そしたら作成するユーザーの情報が求められるので図のように作成
この時に「プログラムによるアクセス」にチェックを入れないこと
高額請求あるあるなシークレットキーとかを無駄に作成しないようにします

f:id:hisafi:20210204002018p:plain

次にIAMをいじることができるグループを作成します

f:id:hisafi:20210204002025p:plain

今回はadminを所属させます
IAMFullAccessというポリシーにチェックを入れてグループの作成を押す

f:id:hisafi:20210204002031p:plain

後は作成したグループを選択して青いボタンをポチポチ押していきます
すると作成に成功した旨のページが表示されます
パスワードをメモってからコンソールのログイン画面へ遷移してログイン

f:id:hisafi:20210204002038p:plain

やったね
ルートアカウントは以後封印します

IAMユーザー(admin)設定

IAMユーザー(admin)での操作は下記5つ

  • MFA認証を登録
  • コンソールログインのエイリアスを設定
  • パスワードポリシーの変更
  • IAMユーザー(develop)作成
  • IAMユーザー(develop)のMFA認証を登録

MFA認証を登録

ルートアカウントと同じです
必ず設定しましょう

コンソール内のIAM画面へ遷移
下記画像のリンクからMFA認証の登録画面へ飛んでください

f:id:hisafi:20210204002044p:plain

f:id:hisafi:20210204002050p:plain

コンソールログインのエイリアスを設定

コンソールへのログイン時のエイリアス部分にランダムな12桁の数字を入力する代わりに自分の覚えやすい文字列に変更できます
12桁の数字なんて忘れないよって人外は設定しておくと楽ですよ

コンソール内のIAM画面のダッシュボードへ遷移して下記画像のリンクを押すと設定できます

f:id:hisafi:20210204002057p:plain

パスワードポリシーの変更

初期設定だと弱めのパスワードなので強いパスワードのみしか設定できないようにします
めんどくさいって人は飛ばしてもいいですけど流出して後悔するなら設定した方がいい気がしませんか?!

コンソール内のIAMページ→アカウント設定から画像のボタンを押すと設定できます

f:id:hisafi:20210204002103p:plain

色々出てきますが全部にチェックを入れておきましょう

IAMユーザー(develop)作成

IAMユーザー(develop)を作成します
基本的にはIAMユーザー(admin)と同じなのですが付与するIAMが違います
今回はリソース操作(EC2を立ち上げたりできる)全般を行えるIAMを設定します
PowerUserAccessってやつです

f:id:hisafi:20210204002109p:plain

それ以外はIAMユーザー(admin)と同じなので作成成功画面まで青いボタンをぽちぽちしましょう
パスワードをメモったら、コンソールのログイン画面へ遷移する前に最後にもう一つだけ操作があります

IAMユーザー(develop)のMFA認証を登録

IAMユーザー(develop)にはMFAを自分で登録する権限を与えていません
ですのでログインしてもMFA認証を登録することができません
そのため、MFA認証を登録する権限を有しているIAMユーザー(admin)にて登録します
ややこしいですね。今回はそういうものとして同じ操作をしてください

コンソール内のIAM画面へ遷移
ユーザーリンクからdevelopユーザーのリンクを押す

f:id:hisafi:20210204002115p:plain

管理リンクを押してMFA認証を登録する

f:id:hisafi:20210204002728p:plain

IAMユーザー(develop)でログイン確認

IAMユーザー(develop)でログインします

コンソールログイン画面へ遷移してIAMユーザーを選択して先ほど設定したエイリアスを入力
https://console.aws.amazon.com/

そしたらユーザー名とメモっておいたパスワードでログインします
MFA認証と新規のパスワードを設定すればコンソール画面へログインできるはず!!

最後に

長時間お疲れ様でした
冒頭でも少し触れましたが普段の開発する場合はIAMユーザー(develop)を使いましょう
これでセキュリティ対応はバッチリ!!
通常運用であればよほどのことがない限り高額請求なんて来ないはず
1年間は無料枠が用意されているのでAWSを使い倒しましょう
それでは参考になれば幸いです!!

AWS認定資格試験テキスト AWS認定ソリューションアーキテクト - アソシエイト 改訂第2版