みなさんは、AWSアカウント作成後AWSをどのように利用していますか? アカウントのセキュリティ対策を怠ると、不正利用・攻撃をされてしまう可能性があります。
今回はAWSアカウントを不正利用・攻撃から守るためにやるべき設定をまとめてみました。ルートユーザー編、IAMユーザー編、セキュリティ編の3つに分けてご紹介します。
目次
ルートユーザー編
ルートユーザーとは、AWSアカウント作成時に「用意したEメールアドレスとパスワードを使用し、サインインできるユーザー」のことです。ルートユーザーはアカウント所有者のため、 AWS上のサービスをほぼ全て制限なく実行が可能です。
そのため、ルートユーザーのセキュリティ対策が必要です。最悪の場合、アカウント情報が漏えいし、乗っ取り被害にあう可能性があります。
以降では、ルートユーザーの安全を確保するための設定と注意点について記載します。
- ※ 「AWSアカウント作成方法」について詳しく知りたい方は、下記の参考記事を確認してください。
MFAを有効化する
Multi-Factor Authentication(MFA)は「多要素認証」と呼ばれ、AWSアカウントのセキュリティを更に強化するサービスです。
今回はAWSで利用が可能な「仮想MFAデバイス」と「ハードウェアMFAデバイス」を紹介します。ご自身の利用目的に合わせて、MFAを有効化し設定してください。
仮想MFAデバイス
スマートフォンやその他デバイスで動作します。
スマートフォンなどで仮想MFAアプリケーションを起動し、AWS上に表示されているQRコードを読み取ります。読み取り後、仮想MFAアプリケーションが「6桁の認証コード」を生成します。認証コードをAWSマネジメントコンソール画面へ入力し、サインインを行います。
詳しい設定方法は、AWS ユーザーガイド を参照してください。
ハードウェアMFAデバイス
ハードウェアMFAデバイスを利用し、表示される認証コードをAWSマネジメントコンソール画面へ入力し、サインインを行います。
- ※ ハードウェアMFAデバイスはご自身で購入いただく必要があります。
詳しい設定方法は、AWSユーザーガイド を参照してください。
ルートユーザーは原則使用しない
AWSでは「ルートユーザーを日常の業務で使用するべきではない」と推奨しています。ルートユーザーは全てのリソースに対し「フルアクセス権限を持つ唯一のユーザー」です。誤操作を行うと、アカウント情報が流出する可能性があるほか、セキュリティ対策の観点からは少し離れますが、構築したAWS環境への意図しない変更を加えてしまうリスクもあります。
下記の作業以外は、基本的にIAMユーザーの使用をオススメします。
- アカウントの設定変更(連絡先情報、支払い通貨等)
- サポートプランの変更
- アカウントの解約
ルートユーザー認証が必要な他の事項は、AWS アカウントルートユーザーの認証情報とIAM ユーザーの認証情報 を参照してください。
アクセスキーを発行しない
デフォルトの設定では、ルートユーザーのアクセスキーは発行されません。
アクセスキーは、プログラムからAWSリソースへアクセスができます。ルートユーザーでアクセスキーを発行してしまうと、請求情報を含むすべてのアカウント情報にアクセス可能となります。アクセスキーが漏えいすると、ルートユーザーの全権が奪われることになります。アクセスキーが必要な場合はIAMユーザーで発行し、必要最低限の権限をIAMユーザーに付与するようにしましょう。
IAMユーザー編
IAMユーザーとは「人に与えられるID」のことです。
ユーザー名・パスワードが付与され、AWSアカウントにサインインする際に必要となります。ルートユーザーとは異なり、IAMポリシー(IAMユーザーに付与する権限の許可証のようなもの)を割り当てることで、必要なアクセス許可を付与できます。1つのAWSアカウントに対し、複数のIAMユーザーを作成できることが特長です。
以降では、IAMユーザーの安全を確保するための設定と注意点について記載します。
IAMユーザーは共有しない
IAMユーザーは「1つのIAMユーザーを複数人で使いまわさないこと(IAMユーザーを共有しないこと)」が推奨されています。IAMユーザーを複数人で使いまわすことで、悪意のあるユーザーの不正操作や人為的な操作ミスが発生する可能性があり、セキュリティ上ベストプラクティスではありません。
IAMユーザーを「1利用者につき1 IAMユーザーとする」メリットは、
- 各ユーザーに適切な権限を付与することができること
- なにか問題が発生した際に操作履歴から問題を特定できること
が挙げられます。
AWSでは無料でAWSの操作履歴を保管するサービス「AWS CloudTrail」がデフォルトで設定されています。そのため1利用者につき1 IAMユーザーとしておけば、問題発生時にAWS CloudTrailから操作履歴を確認でき、素早く対応できます。
- ※ AWS CloudTrailについては、ページ下部にて詳しく説明しています。
- AWSマネジメントコンソール
- AWS Command Line Interface
- AWS SDK
- AWS API
AWS上に操作履歴が自動的に保管されるサービス
AWS CloudTrailでは、以下サービスの操作履歴が90日間AWS上に保管されます。
IAMユーザーは複数人で共有せず、「管理者用IAMユーザー」「利用者用IAMユーザー」に分けて作成することをオススメします。
管理者用IAMユーザーの作成
管理者用IAMユーザーの作成についてご紹介します。
管理者用IAMユーザーに付与するIAMポリシーは、最小権限のみを付与するようにしましょう。
- Amazon EC2:TerminateInstances(EC2インスタンスの削除)
- IAMに関する変更権限全般
付与するIAMポリシーの一例
利用者の誤操作や内部犯罪を未然に防ぐことを目的としたIAMポリシーの一例です。
ご自身の目的や環境にあわせて適宜設定してください。
管理者用IAMユーザーにIAMポリシーを付与する手順は、以下の通りです。参考にして、設定してみてください。
- (1)
IAMグループを作成する。
- ※ 作成方法について詳しく知りたい方は、AWS ユーザーガイド「IAMユーザーグループの作成」 を参照してください。
- (2)
そのグループにIAMポリシーを付与する。
- ※ IAMポリシー付与方法について詳しく知りたい方は、AWS ユーザーガイド「IAM ユーザーグループへのポリシーのアタッチ」 を参照してください。
- (3)
IAMユーザーを作成する。
- (4)
(1)で作成したグループに、作成したIAMユーザーを所属させる。
利用者用IAMユーザーの作成
利用者用のIAMユーザー作成についてご紹介します。
作業内容(たとえばAmazon EC2のみに使用する等)を決めてから、利用者用IAMユーザーに付与するIAMポリシーを決めていきます。すべての利用者用IAMユーザーに管理者権限を付与しないことがポイントです。
- Amazon EC2:DescribeInstances (インスタンスの一覧表示)
- Amazon EC2:StartInstances (インスタンスの起動)
- Amazon EC2:StopInstances(インスタンスの停止)
Amazon EC2利用の場合のIAMポリシー例
ご自身の目的や環境にあわせて適宜設定してください。
利用者用IAMユーザーにIAMポリシーを付与する手順は、管理者IAMユーザーにIAMポリシーを付与する手順と同様です。
接続元IPアドレス制限を実施する
接続元IPアドレス制限を設定し、AWS利用をよりセキュアなものにしましょう。
IAMユーザー(管理者用・利用者用)、IAMグループに対し、接続元IPアドレス制限を設定します。
設定方法は、接続元IPアドレス制限を設定したIAMポリシーを、IAMユーザーまたはIAMグループにアタッチします。
たとえば「会社で使用しているIPアドレスからの接続のみを許可するIAMポリシー」をアタッチすると、会社以外からの接続を遮断することができ、よりセキュアな利用が可能となります。
接続元IPアドレス制限の詳しい設定手順は、AWSユーザーガイド「送信元 IP に基づいて AWS へのアクセスを拒否する」 を参照してください。
参照ページは、接続元IPアドレスのアクセス拒否設定となるため、IAMポリシーのアクセス許可設定も合わせて実施してください。(Amazon EC2の作成や削除を行いたい場合は、別途IAMポリシーの付与が必要になります。)
MFAを有効化する
ルートユーザーと同様にIAMユーザーに対してもMFAを有効化してください。
たとえばIDとパスワードが流出した場合でも、MFA認証コード(ワンタイムパスワード)が必要となるため、AWSアカウントの悪用を避けることができます。
MFAを有効化する手順は、ご自身の利用目的に合わせて「MFAを有効化する」を参照しながら設定をしてください。
パスワードポリシーを設定する
さらにAWSをセキュアに利用していくために、パスワードポリシーを設定します。
このポリシーは、IAMユーザーのパスワードに関する設定(パスワードの文字数や文字組み合わせを設定可能)とパスワードの有効期限を設定できます。
悪意のあるユーザーによる推測可能なパスワードへの変更防止や、パスワードの漏えい防止につながり、セキュリティの強化が可能となります。選択可能なパスワードポリシーの要件は、以下の通りです。
- パスワードの最小文字を強制する(設定したいパスワードの最小文字数が設定可能です)
- 1文字以上のアルファベット大文字(A~Z)を必要とする
- 1文字以上のアルファベット小文字(a~z)を必要とする
- 少なくとも1つの数字が必要
- 少なくとも1つの英数字以外の文字が必要(! @ # $ ^ & * ( ) _ + - = [ ] { } | ` )
- パスワードの有効期限を有効にする
- パスワードの有効期限には管理者のリセットが必要
- ユーザーにパスワードの変更を許可する
- パスワードの再利用を禁止する
選択可能なパスワードポリシーの要件
アルファベット、数字、記号の利用を必須にしておくと、推測可能なパスワードへの設定変更防止ができます。またパスワードの有効期限、パスワード再利用禁止の設定は、お客様のポリシーに合わせて設定してください。
AWSマネジメントコンソールからのパスワードポリシー設定手順は、AWSユーザーガイド「パスワードポリシーの設定(コンソール)」 を参照してください。
セキュリティ編
AWSにはセキュリティに関する様々なサービスがありますが、ここでは最低限やっておくべき設定を3つ紹介します。
- ※ AWS Security Hub、Amazon Detective、AWS IAM Access Analyzerなど他にも便利なサービスはありますが、今回は最低限必要な設定に絞って紹介します。
AWS CloudTrail
AWSでの操作を記録し、ロギングしてくれるサービスです。
デフォルトで設定されているサービスのため、すぐに使用が可能です。AWSマネジメントコンソール・AWS CLI・プログラムからのAWS SDKでの利⽤が記録されます。AWS利用中にトラブルが生じた際、AWS CloudTrailから問題のある行動を特定が可能です。作業者の不正な行動に対する抑止力にも繋げられます。
AWS CloudTrailは、AWS操作履歴を90日間無料で記録しています。しかしAWS CloudTrail自体の利用は無料ですが、データイベントの記録はイベント数に応じて利用料金が発生します。記録したデータを長期的に保存したい場合、Amazon S3などのストレージサービスの利用をオススメします。
- 1GBあたり:$0.025/月(~50TB)
AWS CloudTrail の料金例
【AWS アジアパシフィック(東京)リージョン】
- ※ 利用したデータイベント数によって、料金が変動します。
- ※ 2022年1月時点の料金です。
- (1)
AWSマネジメントコンソールより「AWS CloudTrail」を検索してください。
- (2)
AWS CloudTrailのページを表示し「ダッシュボード」をクリックしてください。
- (3)
「証跡の作成」をクリックし、保存先としてAmazon S3を選択することで、AWS操作履歴がAmazon S3に保存されます。
AWS CloudTrail の証跡保存手順
AWS Config
AWSの構成情報を管理するサービスです。
AWSのリソースに対する設定履歴を監査し、構成変更の記録・通知ができます。
たとえば、プロジェクトが定めたセキュリティルールに則り、作業者がAWSを利用する場合、ルールに違反したリソースを通知できます。また、違反したリソースがすぐに分かることで、コンプライアンス管理に役立てることができます。
利用方法は、AWSが提供しているマネージドルール を利用するか、自身でカスタムルールを作成する方法があります。
AWS CloudTrailとの違いは以下の通りです。
- AWS CloudTrail:誰がどのような操作を行ったかを記録・保存する。
- AWS Config:AWSリソースがいつどのように変更されたかを保存する。
- AWS Config利用料(AWS アカウントに記録された設定項目1件あたり):$0.003/月
- Amazon S3利用料(1GBあたり):$0.025/月(~50TB)
AWS Configの料金例
【AWS アジアパシフィック(東京)リージョン】
- ※ 設定項目は、リソースの設定や関係に変更があった際に記録されます。
- ※ 利用したデータイベント数によって、料金が変動します。
- ※ 詳しい料金を知りたい方は、AWS Configの料金 を確認してください。
- (1)
AWSマネジメントコンソールより「AWS Config」を検索してください。
- (2)
AWS Configのページを表示し「ダッシュボード」をクリックしてください。
- (3)
「今すぐ始める」をクリックし、保存先としてAmazon S3を選択することで、変更履歴がAmazon S3に保存されます。
AWS Config の証跡保存手順
Amazon GuardDuty
AWS環境やAWSアカウントに対し脅威検出するサービスです。
悪意のある操作や不正動作を継続的にモニタリングが可能です。また各種ログを自動的に取得し、機械学習で分析し異常を通知します。検証環境や作成したばかりのAWSアカウントは攻撃者に狙われやすいため、Amazon GuardDutyで対策することをオススメします。
Amazon GuardDutyは、AWS CloudTrail、Amazon VPCフローログ、DNSログを利用し分析を行います。具体的には以下のような脅威を検知できます。
- 攻撃者の偵察:不自然なAPI 操作やVPC 内のポートスキャン
- サーバの侵害:仮想通貨マイニングや異常なネットワークトラフィック
- AWSアカウントの侵害:異常な地域からの操作や不自然なリソースの起動
- 従量課金です。
Amazon GuardDutyの料金
- ※ AWS CloudTrail、Amazon Virtual Private Cloud、DNS Logsの分析量に応じて料金が発生します。
詳しくはAmazon GuardDuty の料金 を参照してください。
- (1)
AWSマネジメントコンソールより「Amazon GuardDuty」を検索してください。
- (2)
Amazon GuardDutyのページを表示し「ダッシュボード」をクリックしてください。
- (3)
「今すぐ始める」をクリックし「GuardDutyの有効化」を選択することで、モニタリングが開始されます。
Amazon GuardDuty の設定手順
まとめ
今回は、AWSアカウントを守るために最低限やっておくべきことをご紹介しました。特にセキュリティ編は有効化するだけで利用できるサービスであるため、今すぐ設定してみましょう。
セキュリティに関して、利用者がどこまで対策すべきか不安な方は下記の記事をご確認ください。
AWSに必要なセキュリティ対策とは? AWSの責任共有モデルの解説
当社では様々な業種のお客様へ、AWSアカウント発行から導入、構築、運用サポートまで、一貫してサービスをご提供しています。今回ご紹介した内容についても、お客様に安心してご利用いただくために設定させていただきます。
「こんなイメージでAWSを使うことは可能?」「こんなことでもお願いできる?」など、AWS利用に関するお問い合わせ をお待ちしております。
作成者:小林
関連サービス
おすすめ記事
-
2020.06.23
Amazon Connectで在宅勤務でも対応できる問合せ窓口を立ち上げてみた
-
2020.08.17
Datadogで実現するモニタリングとオペレーションのオートメーション化
-
2020.04.27
Amazon FSx for Windows ファイルサーバーへの移行と活用方法
-
2020.06.11
Amazon WorkSpacesとは?その特長をまとめてみた
-
2020.06.23
AWSのDevOpsサービスと当社マネージドサービスを活用したDevOpsの実装①~概念編~