AWSアカウントを安全に運用したいなら最低限これだけはやっとけというTIPSです。
#0.AWSのアカウントの種類
AWSアカウントを作ったときには、AWSのrootアカウントしか存在していません。
このままだと「メールアドレス」「パスワード」で「AWSリソースの操作が何でも」できてしまいます。
そこで管理コンソールへのログインはMFA(Multi-Factor Authentication)を利用したうえで、root以外にIAM Userというアカウントを作成し、限定した権限で利用することが強く推奨されています。
- rootアカウント:AWSアカウント作成時に作成される何でもできるユーザー
- IAMユーザー:権限を限定して設定できるユーザー
#1.Authyのセットアップ 2段階認証を導入するためにハードウェア型のMFAデバイスか、ソフトウェア型のVirtual MFAが使用可能です。今回はVirtual MFAとしてiPhoneアプリ「Authy」を使ってみましょう。
AuthyはGoogle Authenticatorと違い、Authy内部のデータがセキュアにバックアップされるため、いざiPhoneが壊れた場合にも、Authyに登録した電話番号とパスワードで復旧が可能であるという特徴を持っています。
※ 8.6訂正:"電話番号とメアド"と書いてました。正しくは"電話番号とパスワード"です。
##1-1.Authyをダウンロード
App StoreからAuthyをダウンロードします。
#2.rootアカウントにMFAで2段階認証を導入する **AWSのrootユーザーでログインし、IAM管理画面にログインします。すると、中段に「Security Status」というセキュリティのアドバイスが表示されています。** **ここでは「2/5項目であるrootアカウントへのMFA導入」を行います**
##2-1.Activate MFA on your root accountで「Manage MFA」を押下
##2-2.「A Virtual MFA」を選択して次へ
##2-3.確認して次へ
##2-4.QRコードが表示される。
##2-5.iPhoneでAuthyを起動し画面した部分からサービスのパネルを引き上げ「+ Add Account」を選択
※画面を最新化しときました。
##2-6.「Scan QR Code」を選択し、画面に表示されているQRコードを読み込む。
##2-7.「Done」を押下してAuthyへのrootアカウントの登録は完了です。
##2-8.Authyの該当アカウントを選択すると、6桁の数字が表示されます。
##2-9.Authyに表示されている数字を「Authentication Code 1」に入力、時間が経過し、次にAuthyに表示される数字を「Authentication Code 2」に入力したら次へ
##2-10.これでrootアカウントのMFA化は完了です。次回rootアカウントでAWSにログインするときはAuthyで表示される6桁の数字を入力するとログインできます。
#3.IAMユーザーを作成する **次に普段使いするAWSアカウントとして、個人のIAMユーザーを作成しましょう。**
##3-1.IAMユーザー作成
###3-1-1.「Create individual IAM users」の「Manage Users」を押下します。
###3-1-2.IAMユーザー管理画面になるので「Create New Users」を選択します。
###3-1-3.名前を入力して「Create」します。
- 生成されたCredentialも大事に保管しておきましょう(CSVでダウンロードもできます)。API(CLIやSDK)でアクセスするときに必要になります。
##3-2.ポリシーの適用
###3-2-1.該当のIAMユーザーができたら、再度選択し、Permissionsの欄から「Attach User Policy」を選択します。
###3-2-2.このIAMユーザーに設定する権限のポリシーを選択します。今回は「Administrator Access」を選択しました。
###3-2-3.内容を確認したら「Apply Policy」でポリシーを適用します。
##3-3.ログインパスワードの設定
###3-3-1.IAMユーザーの管理画面に戻り、「Manage Password」を押下
###3-3-2.自動生成するか、自身でパスワード文字列を設定し「Apply」
##3-4.Virtual MFAデバイスの設定
###3-4-1.rootユーザーにMFAを設定したように、このIAMユーザーにもMFAを設定します。
###3-4-2.Virtual MFAを選択
要領はrootユーザーと一緒です。
###3-4-3.AuthyでQRコードを読む
この要領もrootユーザーと一緒です。
**これでIAMユーザーの設定は完了です。**
#4.IAM Groupの作成 **次のSecurity Status(4/5)には、IAM Groupの作成が推奨されています。**
3で作ったIAMユーザーは「ユーザー単位にポリシーを適用」しましたが、こちらは「グループ単位にポリシーを適用」するものです。たとえばユーザーA自体には何も権限がなくても、所属するグループにPoweruser Accessが付与されているとPoweruser Accessができるようになるといった使い方ができます。
##4-1.IAM Groupの作成
要領はIAMユーザーと同じなので、同様にして一つ作成してみてください。
#5.Password Policyの設定 ##5-1.Password Policyの設定 **IAMユーザー(rootユーザー以外)に共通したパスワードのルールをここで変更します。** **パスフレーズの強度設定や、一定期間でのパスワードの有効期限切れ設定などが可能です。**
これでSecurity Statusはオールクリアになりました。
#6.おまけ:IAM users sign-in linkのカスタマイズ
IAMユーザーとして今後Amazon Management Consoleにログインするための、URLショートカットである「IAM users sign-in link」を覚えやすいものにカスタマイズしておきましょう。
##6-1.IAM users sign-in linkのカスタマイズ
##6-2.IAMユーザーでAWSにログイン
最後にカスタマイズしたIAM users sign-in linkからIAMユーザーのMFAでログインできることを確認したら完了です。お疲れさまでした。
#まとめ
IAMやMFAは非常に便利で「強力な」機能です。使いこなしてセキュアにAWSを運用できるようになりましょう。