AWSアカウントを安全に運用したいなら最低限これだけはやっとけというTIPSです。

0.AWSのアカウントの種類

AWSアカウントを作ったときには、AWSのrootアカウントしか存在していません。

20140808_iam_mfa_001_aws-console

このままだと「メールアドレス」「パスワード」で「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をダウンロードします。

20140808_iam_mfa_002_authy

1-2.電話番号/メールアドレス入力

20140808_iam_mfa_003_authy-setting

1-3.電話かSMSでアクティベート

20140808_iam_mfa_004_authy-activate

1-4.PIN入力

20140808_iam_mfa_005_authy-input-pin

2.rootアカウントにMFAで2段階認証を導入する

AWSのrootユーザーでログインし、IAM管理画面にログインします。すると、中段に「Security Status」というセキュリティのアドバイスが表示されています。
ここでは「2/5項目であるrootアカウントへのMFA導入」を行います

2-1.Activate MFA on your root accountで「Manage MFA」を押下

20140808_iam_mfa_006_manage-mfa

2-2.「A Virtual MFA」を選択して次へ

20140808_iam_mfa_007_a-vartual-mfa

2-3.確認して次へ

20140808_iam_mfa_008_confirm

2-4.QRコードが表示される。

20140808_iam_mfa_009_qrcode-shown

2-5.iPhoneでAuthyを起動し左上のハンバーガーみたいなメニューを押下し「+ Add Authenticator Account」を選択

20140808_iam_mfa_010_add-authenticator-account

2-6.「Scan QR Code」を選択し、画面に表示されているQRコードを読み込む。

20140808_iam_mfa_011_scan-the-qrcode-by-authy

2-7.「Done」を押下してAuthyへのrootアカウントの登録は完了です。

20140808_iam_mfa_012_done

2-8.Authyのハンバーガーメニューで出てくるパネルから該当のAWSアカウントを選択すると、6桁の数字が表示されます。

20140808_iam_mfa_013_get-token-six-numbers

2-9.Authyに表示されている数字を「Authentication Code 1」に入力、時間が経過し、次にAuthyに表示される数字を「Authentication Code 2」に入力したら次へ

20140808_iam_mfa_014_input-two-codes

2-10.これでrootアカウントのMFA化は完了です。次回rootアカウントでAWSにログインするときはAuthyで表示される6桁の数字を入力するとログインできます。

20140808_iam_mfa_015_associated

3.IAMユーザーを作成する

次に普段使いするAWSアカウントとして、個人のIAMユーザーを作成しましょう。

3-1.IAMユーザー作成

3-1-1.「Create individual IAM users」の「Manage Users」を押下します。

20140808_iam_mfa_016_manage-users

3-1-2.IAMユーザー管理画面になるので「Create New Users」を選択します。

20140808_iam_mfa_017_create-new-users

3-1-3.名前を入力して「Create」します。

20140808_iam_mfa_018_create-users

  • 生成されたCredentialも大事に補完しておきましょう(CSVでダウンロードもできます)。API(CLIやSDK)でアクセスするときに必要になります。

20140808_iam_mfa_019_show-user-security-credentials

3-2.ポリシーの適用

3-2-1.該当のIAMユーザーができたら、再度選択し、Permissionsの欄から「Attach User Policy」を選択します。

20140808_iam_mfa_020_policy

3-2-2.このIAMユーザーに設定する権限のポリシーを選択します。今回は「Administrator Access」を選択しました。

20140808_iam_mfa_021_policy-administrator-access

3-2-3.内容を確認したら「Apply Policy」でポリシーを適用します。

20140808_iam_mfa_022_check-permisison

3-3.ログインパスワードの設定

3-3-1.IAMユーザーの管理画面に戻り、「Manage Password」を押下

20140808_iam_mfa_023_manage-login-password

3-3-2.自動生成するか、自身でパスワード文字列を設定し「Apply」

20140808_iam_mfa_024_set-my-password

3-4.Virtual MFAデバイスの設定

3-4-1.rootユーザーにMFAを設定したように、このIAMユーザーにもMFAを設定します。

20140808_iam_mfa_025_manage-mfa-device

3-4-2.Virtual MFAを選択

要領はrootユーザーと一緒です。

20140808_iam_mfa_026_verify-virtual-mfa

3-4-3.AuthyでQRコードを読む

この要領もrootユーザーと一緒です。

20140808_iam_mfa_027_scan-the-qrcode-by-authy

これでIAMユーザーの設定は完了です。

4.IAM Groupの作成

次のSecurity Status(4/5)には、IAM Groupの作成が推奨されています。

3で作ったIAMユーザーは「ユーザー単位にポリシーを適用」しましたが、こちらは「グループ単位にポリシーを適用」するもので す。たとえばユーザーA自体には何も権限がなくても、所属するグループにPoweruser Accessが付与されているとPoweruser Accessができるようになるといった使い方ができます。

4-1.IAM Groupの作成

要領はIAMユーザーと同じなので、同様にして一つ作成してみてください。

20140808_iam_mfa_028_iam-group

5.Password Policyの設定

5-1.Password Policyの設定

IAMユーザー(rootユーザー以外)に共通したパスワードのルールをここで変更します。
パスフレーズの強度設定や、一定期間でのパスワードの有効期限切れ設定などが可能です。

これでSecurity Statusはオールクリアになりました。

20140808_iam_mfa_029_password-policy

6.おまけ:IAM users sign-in linkのカスタマイズ

IAMユーザーとして今後Amazon Management Consoleにログインするための、URLショートカットである「IAM users sign-in link」を覚えやすいものにカスタマイズしておきましょう。

6-1.IAM users sign-in linkのカスタマイズ

20140808_iam_mfa_030_iam-users-sign-in-link

6-2.IAMユーザーでAWSにログイン

最後にカスタマイズしたIAM users sign-in linkからIAMユーザーのMFAでログインできることを確認したら完了です。お疲れさまでした。

20140808_iam_mfa_031_login-with-iam-account

まとめ

IAMやMFAは非常に便利で「強力な」機能です。使いこなしてセキュアにAWSを運用できるようになりましょう。

元記事は、こちらです。