AWS
IAM

AWS勉強会(補足2) / IAMを設定してアカウントのセキュリティを高めよう

詳しいことはクラスメソッドさんの記事を読んでほしい (終)
AWS再入門 AWS IAM (Identity and Access Management) 編 | Developers.IO

それからAWSの公式ドキュメント
- IAM とは - AWS Identity and Access Management
- AWS Identity and Access Management (IAM - ユーザのアクセスを安全に制御)| AWS

どういうことかというと、「AWSを利用するために作成したアカウント」は「ルートユーザ」と言われ、いわゆる特権ユーザです。
Linux系であればrootユーザ、WindowsであればAdministratorで作業してるということです。
個人情報と支払い用のカードを登録してAWSのアカウント作ったあと、個人でほそぼそとネットワーク作ったりEC2作ったりしてる状態で「IAM?ナニソレ?おいしいの?」な人(私です)はその状態です。

制限ユーザを別途作成し、そのユーザで作業するようにしましょう、という話。

(こんな重要なこと、アカウント作成した直後に強制的に設定させればいいのに、、、)

IAM ダッシュボード

ここにある

image.png

image.png

ここを初めて開くと「セキュリティステータス」がまったく進んでいないことを確認できる。

ちなみに「ロール」(この図だと6件ある)のリンクを開くと、現時点で作成済みのロール一覧が表示される。
ELBやらAutoScalingやら、知らない間に作成されていた模様。

image.png

ルートアカウントのMFAを有効化

デフォルトでは全ての操作が可能なルートユーザが、メールアドレスとパスワードのみの簡単認証で突破されてしまうので、認証の強化を行う。

image.png

Multi-Factor Authenticationとは、要は多段階認証のこと。
Androidユーザ(iOSもあるっぽい)なら、Google Authenticatorが利用できる。
このアプリは、認証に必要なトークンをスマートフォンで表示できるというもの(一言で言うとワンタイムパスワードの表示アプリ)。グーメン。

image.png

Google Authenticatorの準備ができたら[次のステップ]押下

image.png

QRコードをGoogle Authenticatorで読み取り、連続して表示される認証コードを二つ入力して[仮想MFAの有効化]を押下(認証コードは一定時間でリフレッシュするので、それを2個連続で入れる)

image.png

これでダッシュボードを再表示すれば完了

image.png

この設定を行っておくと、ログイン時にパスワードだけでなくMFAコードの入力が必要になる

image.png

個々のIAMユーザの作成

image.png

ここで、ルートユーザを使わないように、普段使い用のアカウントを作成する。

image.png

ひとまず、自分が使う用のアカウントを作成する

ユーザー詳細の設定

image.png

プログラムによるアクセスは、CLIで使う場合かな?まだそこまで作業が進んでいないのでとりあえずチェックをはずしている。

パスワードのリセットが必要は「ほかの人へのアカウントを払い出しを行い、その人に初期パスワードは送りつつ自分でパスワードは設定してね」という代物と思われ。

アクセス許可の設定

image.png

初めての設定の場合は所属させるグループがないので、まずグループの作成を行う。

image.png

管理者権限用のグループということでadmin-group、選択するポリシーはAdministratorAccessとして[グループの作成]押下
(本当は権限をちゃんと設定させるべきなんだけど、300件以上もポリシーあると…:sweat:)

これでさっき入力したユーザを、admin-groupに所属させることができるので、[確認]押下

image.png

確認画面でそれまでの内容が表示され、問題がなければ[ユーザーの作成]押下

image.png

これでユーザが作成された。

image.png

ダッシュボードへ戻ると、セキュリティステータスが4/5完了している。

IAMパスワードポリシーの適用

image.png

よく聞くパスワードポリシーと基本的には同じもの。
大文字小文字に数字と記号も混ぜろとか、x文字以上設定しろとか、パスワードの定期変更(笑)とか。
ただし「パスワードポリシーを設定している」という状態が必要なので、個人利用でも何か適当に設定しておく。

image.png

これでセキュリティステータスがすべて完了になった

image.png

このとき、画面上部にサインイン用のリンクが表示されているので控えておく

image.png

作成したIAMユーザでAWSにログインする

(ルートユーザでログイン中のセッションは、IAMユーザでログインすると切断されるので注意)

ダッシュボードに表示されている「IAM ユーザーのサインインリンク」にアクセスする。

image.png

すると「アカウント」に自分のAWSアカウントIDの番号(?)が入力された状態で認証画面が開く。
ユーザ名とパスワードに、IAMユーザ作成で作ったアカウント情報を入力すればサインインできる。

サインインすると、画面上部に表示されるアカウント名の部分が、IAMユーザの名前になっているのを確認できる。

image.png

これでルートユーザでなく、IAMユーザを使ってAWSを利用できるようになりました。

請求情報の参照

AdministratorAccessでフルアクセスの設定にしていても、請求情報は参照できない。

image.png

請求の情報およびツールへのアクセス許可 - AWS 請求情報とコスト管理

いったんルートユーザでログインし、アカウント設定の画面でIAMユーザに対して請求情報へのアクセスを許可する必要がある。

image.png

[IAMアクセスのアクティブ化]にチェックを入れて[更新]する

image.png

これで請求情報ダッシュボードへもアクセスできるようになった。