AWS経験5年以上の僕がご説明します。
設定内容が少し多いので前半と後半の2回に分けました。後半の記事は以下になります。
-
【AWS】AWSアカウント作成後に絶対にやるべき初期設定5項目:後半
続きを見る
本記事の内容
- AWSにおけるセキュリティ設定の重要性について
- ルートアカウントのセキュリティ強化
- IAMの設定
もくじ
AWSにおけるセキュリティ設定の重要性
ITではセキュリティ対策がとても重要になります。
なぜなら、世の中には悪意を持った人や組織はたくさん存在していて、常にインターネットなどに対して何かしらの攻撃を仕掛けているから。
企業がセキュリティ攻撃を受けたというニュースがときどき流れています。実際にニュースで報道されることは少ないですが、個人に対しても標的にされています。
パソコンを使う場合はアンチウイルスソフトが必須ですが、クラウドを利用する場合も最低限のセキュリティ対策は必須と考えましょう。
「セキュリティの徹底」と「コストや手軽さ」はトレードオフになります。
しかし、勉強目的の個人のAWS環境においても、最初に必要なセキュリティ設定を済ませておき、常にセキュリティのことを意識しながらAWSを使用することが大切。そうすることで、「コストをかけずに第三者から攻撃されるリスクを減らす」といったことが十分可能になります。
逆に、セキュリティを軽視してほとんど対策を取らなかったために不正利用されてしまったケースも数多くあります。その場合は、セキュリティ設定することよりも、何倍も労力や被害が発生することになります。
本記事の前半・後半で、AWSのセキュリティを強化する設定をいくつか行っていきます。
準備
Google Authenticator(Google 認証システム)インストール
スマホに以下の無料アプリをインストールします。
- iPhoneの場合:Google Authenticator
- Androidの場合:Google 認証システム
AWSマネジメントコンソールにサインイン
AWSアカウントを作成した時に登録したメールアドレスで、AWSマネジメントコンソールにサインインします。
サインイン後に右上のリージョンを確認して「東京」となっていることを確認。もし別のリージョンが表示されている場合は、矢印をクリックして「アジアパシフィック (東京)」をクリックします。
設定1. ルートアカウントのセキュリティ強化
ルートアカウントにMFAを設定する
AWSアカウントを作成した時に登録したメールアドレスは「ルートアカウント」といいます。
この「ルートアカウント」は非常に強力なアカウントであるため、最初に必ずMFAを設定しましょう。
ルートアカウントが強力といわれる理由は、自分のAWS上で全ての操作ができ、自分の契約情報(住所など)も全て見えるからです。
MFA(Multi-Factor Authentication)とは
- 多要素認証のことで、通常のパスワードに加え「ワンタイムパスワード」の入力も必須にする
- MFAを設定することで、もしパスワードが漏洩した場合でも、ワンタイムパスワードまで突破される可能性を限りなく0に近づけることができる
AWSマネジメントコンソールの画面上部中央に検索ボックスがあります。そこに「iam」と入力します。
すぐ下の「サービス」と表示された中で、以下のように「IAM」が表示されます。それをクリックします。
「IAM ダッシュボード」画面が表示されます。画面中央「セキュリティーアラート」→「MFAを有効」をクリックします。
「セキュリティ認証情報」画面が表示されます。「多要素認証(MFA)」→「MFAの有効化」をクリックします。
「仮想MFAデバイス」にチェックが入っていることを確認し、右下の「続行」をクリックします。
「仮想 MFA デバイスの設定」画面が表示されます。
「1.互換性のあるアプリケーションをモバイルデバイスまたはコンピュータにインストール」は無視してください。はじめに「Google Authenticator(Google 認証システム)」をスマホにインストール済みのためです。
「QRコードを表示」をクリックします。
QRコードが表示されます。(画像は加工しています)
最初にこの画像を自分のパソコンなどに保管しましょう。Windowsの場合は、QRコードを「右クリック」→「名前を付けて画像を保存」をクリックします。ファイル名は「aws_root_mfa.png」など分かりやすい名前で、パソコンの適切なフォルダに保存します。
QRコードを保存するのには理由があります。
このあと使用する「Google Authenticator(Google 認証システム)」のアプリが以下理由などで使えなくなると、「ルートアカウント」でマネジメントコンソールにサインインできなくなります。
- スマホからアプリをアンインストールしてしまった
- スマホが故障してアプリが使えななくなった
- スマホを紛失した
その場合は、AWSサポートに連絡して「ルートアカウント」のMFAを解除してもらうのですが、数日かかる場合もあります。
それを防ぐためです。もちろん、このQRコードの画像ファイルは自己管理で大切に保管しましょう。
次にこのQRコードを「Google Authenticator(Google 認証システム)」でスキャンします。
「Google Authenticator(Google 認証システム)」に6桁の数字が表示されます。この数字が「ルートアカウント」のワンタイムパスワードになり、30秒ごとに新しい数字に変わります。
表示されている6桁の数字を「MFAコード1」に入力します。続けて次に表示される別の6桁の数字を「MFAコード2」に入力して、右下の「MFAの割り当て」をクリックします。
ここで重要なのが、「MFAコード2」は必ず「MFAコード1」で入力した数字の「直後に表示される別の6桁」を入力する必要があります。
もし「MFAコード2」に入力した数字が「MFAコード1」で入力した数字の「直後ではない」場合や、そもそも数字の入力ミスがあると以下のような「無効なMFAコード」エラーになります。
その場合は次の手順を行ってください。
- 「MFAコード1」と「MFAコード2」に入力した数字を削除
- 再度「MFAコード1」→「MFAコード2」の順に新しい6桁の数字を入力し、右下の「MFAの割り当て」をクリック
MFAの割り当てに成功すると、以下が表示されます。「閉じる」をクリックします。
これで次回以降ルートアカウントでサインインする際は、パスワードに加えてMFAのワンタイムパスワードが求められるようになりました。
この時点でルートアカウントのセキュリティが強化されました。
設定2. IAMの設定
IAMとはAWSで自分だけのユーザーやグループを作成できるサービスです。料金は無料です。
通常、ルートアカウントはAWSアカウント作成後の初期設定や、AWSを解約するときくらいしか使ってはいけません。
全ての操作ができてしまう超強力なアカウントは普段は使わないことがベストプラクティスです。
代わりにルートアカウントに近い管理者権限をもつIAMユーザーを作成し、普段はそれを使用するようにしましょう。
IAMパスワードポリシーを強化
最初にパスワードポリシーを強化します。
ここで設定するパスワードポリシーはIAMユーザーに対してのみ適用されます。ルートアカウントには適用されません。
IAMの画面の左メニューから「アカウント設定」をクリックします。
「パスワードポリシーを変更する」をクリックします。
デフォルトのパスワードポリシーはセキュリティが弱いので以下へ変更します。パスワードは専用のパスワード管理ソフトウェアを使用すると楽ですね。
- パスワードの最小文字数:16文字
- 英語大文字・小文字・数字・記号を必須とする
- パスワードは90日ごとに変更を必須とする
- 過去5回分の同じパスワード利用を禁止する
以下のように修正し、右下の「変更の保存」をクリックします。
「パスワードポリシーが更新されました。」が表示されます。
Security Token Service (STS)を東京リージョン以外は無効にする
続けて「パスワードポリシー」のすぐ下の「Security Token Service (STS)」→「エンドポイント」まで画面をスクロールします。
STS (Security Token Service) とは
- 「AWSサービスにアクセスするための一時的な認証情報」を発行するサービス
- 自宅でAWSを勉強する場合は、基本的に東京リージョンのみ使うので他のリージョンのSTSは無効化しておこう
以下の画面で「グローバルエンドポイント」、「米国東部 (バージニア北部)」、「アジアパシフィック (東京)」を除いた全てのリージョンで「無効化」をクリックします。
「グローバルエンドポイント」と「米国東部 (バージニア北部)」は無効にできないのでそのままにしておきます。
確認画面で再度「無効化」をクリック。少し大変ですが、これをリージョンの数だけ繰り返しましょう。
IAMグループを作成
最初に管理者用のIAMグループを作成しておきます。このあと作成するIAMユーザーを所属させるためです。
IAMグループの作成は必須ではありませんが、IAMユーザーはIAMグループに所属させたほうが管理しやすいので作成しておきましょう。
IAMの画面の左メニューから「グループ」→「新しいグループの作成」をクリックします。
好きなグループ名を入力し「次のステップ」をクリックします。
管理者グループなので今回は分かりやすい「admin」としました。グループ名はあとから変更できます。
「ポリシーのアタッチ」ではIAMグループに好きな権限を設定することができます。今回は管理者用グループなので強力な権限にしましょう。
一番上の「AdministratorAccess」にチェックを入れて「次のステップ」をクリックします。
「確認」画面の内容を確認してから右下の「グループの作成」をクリックします。
以下のように作成したIAMグループが表示されます。
IAMユーザーを作成
IAMの画面の左メニューから「ユーザー」→「ユーザーを追加」をクリックします。
好きなユーザー名を入力てください。僕は「user01」としました。ユーザー名はあとから変更できますが、CLIというコマンドを使う必要があります。
「AWS アクセスの種類を選択」は「AWSマネジメントコンソールへのアクセス」のみチェックを入れます。ひとまずAWSマネジメントコンソールにサインインできる状態にします。
「プログラムによるアクセス」は今は無視してください。あとで必要になったときに設定できます。
「コンソールのパスワード」は「自動生成パスワード」にチェック。自分でパスワードを決めたい場合は「カスタムパスワード」を選択してパスワードを入力します。
「ユーザーをグループに追加」が選択されていることを確認し、「admin」グループにチェック、右下の「次のステップ: タグ」をクリックします。
タグはひとまず不要です。あとから追加できます。何も入力せず「次のステップ: 確認」をクリックします。
内容を確認し右下の「ユーザーの作成」をクリックします。
「.csvのダウンロード」をクリックします。パソコンに「new_user_credentials.csv」というファイルがダウンロードできます。
Excelやテキストエディタでファイルを開けることを確認したあと、右下の「閉じる」をクリックします。「new_user_credentials.csv」はパスワードが記載されているので、大切に保管しましょう。
以下のように作成したIAMユーザーが表示されます。ユーザー名をクリックします。
今回作成したIAMユーザーは「AdministratorAccess」という強力な権限を持つため、MFAで設定しセキュリティを強化しておきましょう。
「認証情報」→「MFAデバイスの割り当て」→「管理」をクリックします。
MFAの設定手順は「ルートアカウント」に設定したときと同じやり方です。そちらを参考に設定してみましょう。
AWSアカウント作成後に絶対にやるべき初期設定5項目【前半】:まとめ
AWSアカウント作成後に絶対にやるべき初期設定の前半はこれで完了です。
後半の設定手順はこちらの記事をご覧ください。↓
-
【AWS】AWSアカウント作成後に絶対にやるべき初期設定5項目:後半
続きを見る