Help us understand the problem. What is going on with this article?

AWSアカウントを作成したら最初にやるべきこと -セキュリティ編-

JAWS-UG 初心者支部 #22 ハンズオン用の資料です。

目的

AWSアカウントを不正利用されないために、アカウントを作成したらまずやるべきセキュリティ周りの設定を行います。

前提

  • AWSアカウントを作成済みであること
  • AWSアカウントにログインしていること
  • リージョンは東京リージョンを利用します

ハンズオン手順

アカウント周りの設定

ルートアクセスキーの削除

※ルートアカウントのアクセスキーは、デフォルトでは作成されておりません。アクセスキーを作成済みの方を対象とします。

ルートアカウントは全てのサービスへのアクセスが出来てしまうため、ルートアカウントは使用せず、IAMユーザーを使用しましょう。
CLI等のプログラムアクセスも不要なため、アクセスキーを削除します。
https://console.aws.amazon.com/iam/home#/security_credentials

スクリーンショット_2020-01-07_0_54_13.png

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

もしメールアドレスとパスワードが流出してしまっても、ログインできないように多要素認証を有効化しておきます。

「多要素認証(MFA)」のタブにある「MFAの有効化」をクリックします。
https://console.aws.amazon.com/iam/home#/security_credentials

スクリーンショット_2020-01-07_0_55_55.png

割り当てるMFAデバイスの種類を選択します。
今回は仮想MFAデバイスを利用します。仮想MFAとしては「GoogleAuthenticator」等のアプリがあります。
AppStoreやGooglePlayStoreからMFAアプリをダウロードしましょう。

スクリーンショット_2020-01-07_0_58_08.png

「QRコードを表示」をクリックし、画面に表示されたQRコードをMFAアプリでスキャンします。(もしくはシークレットキーを入力します)
アプリに表示されたコードを2つ入力し、MFAの割り当てを行います。

スクリーンショット_2020-01-07_0_58_27.png

以下のようなモーダルが表示されると、割り当てが完了します。

スクリーンショット 2020-01-07 0.59.21.png

パスワードポリシーの変更

デフォルトの設定は「6文字以上」となっていますが、もう少し複雑なパスワードポリシーに変更します。

https://console.aws.amazon.com/iam/home#/account_settings

「パスワードポリシーを設定する」をクリックします。

スクリーンショット_2020-01-14_12_03_40.png

今回は
- 8文字以上
- 1文字以上のアルファベット大文字(A〜Z)を含む
- 1文字以上のアルファベット小文字(a〜z)を含む
- 1文字以上の数字を含む
- 1文字以上の記号を含む
とします。

スクリーンショット 2020-01-14 12.04.47.png

IAMグループの作成

IAMユーザーを作成する前に、IAMグループを作成します。
IAMグループを作成することで、権限管理がしやすくなります。

https://console.aws.amazon.com/iam/home#/groups

「新しいグループの作成」をクリックします。

スクリーンショット_2020-01-14_14_50_30.png

グループ名を入力します。
今回は全ての操作ができるグループを作成するため、adminとします。
スクリーンショット 2020-01-14 14.50.41.png

IAMグループにアタッチするポリシーを選択します。
今回はマネージドポリシーの「AdministratorAccess」を選択します。

※今回はハンズオンのためAdministratorAccessを利用しますが、実際に運用を始める際には最低限の権限を付与することをお勧めします。

スクリーンショット 2020-01-14 14.51.18.png

IAMユーザーの作成

ルートアカウント以外にログインできるアカウント(IAMユーザー)を作成します。
https://console.aws.amazon.com/iam/home#/users

ユーザー名を入力します。
今回はマネジメントコンソールにログインが出来れば良いので、「AWSマネジメントコンソールへのアクセス」にチェックを入れます。
パスワードは「カスタムパスワード」を選択し、任意のパスワードを入力します。

スクリーンショット 2020-01-14 14.49.56.png

IAMユーザーを追加するIAMグループを選択します。
先程作成したadminを選択します。
スクリーンショット 2020-01-14 14.52.19.png

必要に応じて「.csvのダウロード」からログイン情報をダウンロードして下さい。

スクリーンショット_2020-01-14_14_53_26.png

ユーザーの作成が終わったら、ログインしてみましょう。
完了画面に表示されているログインURL(https://xxxxxxxxxxxx.signin.aws.amazon.com/console)からログイン出来ます。

MFA設定

作成したIAMユーザーに対してもMFAの設定を行い、セキュアにしておきましょう。

https://console.aws.amazon.com/iam/home#/users

IAMユーザー一覧から、先程作成したユーザーを選択し、「認証情報」タブにあるMFAデバイスの割り当ての「管理」をクリックします。

スクリーンショット_2020-01-15_13_57_56.png

rootアカウントの時と同様に設定を行います。
「仮想MFAデバイス」を選択します。

スクリーンショット_2020-01-07_0_58_08.png

「QRコードを表示」をクリックし、画面に表示されたQRコードをMFAアプリでスキャンします。(もしくはシークレットキーを入力します)
アプリに表示されたコードを2つ入力し、MFAの割り当てを行います。

スクリーンショット_2020-01-07_0_58_27.png

以下のようなモーダルが表示されると、割り当てが完了します。

スクリーンショット 2020-01-07 0.59.21.png

ロギング設定

ここから先は料金が発生します
※GuardDutyには30日間の無料トライアル期間があります。

CloudTrailの有効化

CloudTrailはAWSのAPIに対する操作ログを取得するサービスです。
有効化しておくと、いつ、どのアカウントが、どのような操作を行ったかを確認することが出来ます。
無料で90日分を遡ることが出来ますが、CloudTrailの有効化を行うことで、操作ログをS3に保存しておくことが出来ます。

https://ap-northeast-1.console.aws.amazon.com/cloudtrail/home#/dashboard

「証跡の作成」をクリックします。

スクリーンショット_2020-01-14_17_05_10.png

証跡名を入力します。
スクリーンショット 2020-01-15 0.37.12.png

操作ログを保存するS3を作成します。
重複しない名前を入力します。
スクリーンショット 2020-01-15 0.38.21.png

完了すると一覧に作成した証跡情報が表示されます。
スクリーンショット 2020-01-15 0.41.19.png

GuardDutyの有効化

GuardDutyはAWSアカウントやAWSリソースに対する不審なアクティビティを検知/通知してくれるサービスです。

https://ap-northeast-1.console.aws.amazon.com/guardduty/home

「今すぐ始める」をクリックしたあと、「GuardDutyの有効化」をクリックして有効化します。

スクリーンショット_2020-01-15_10_55_40.png

スクリーンショット_2020-01-15_10_55_48.png

結果画面が表示されたら完了です。

スクリーンショット 2020-01-15 14.06.59.png

時間が余ったら・・・

GuardDutyのサンプル表示

GuardDutyでイベントが検知された場合、どのような結果が取得できるのか、サンプルデータで確認することが出来ます。

左メニューの「設定」→「結果サンプルの生成」をクリックします。

スクリーンショット_2020-01-28_16_41_41.png

ボタンのローディングアニメーションが終了したら、左メニューの「結果」をクリックして結果一覧を見てみましょう。

スクリーンショット 2020-01-28 16.46.18.png

リストをクリックすることで詳細を確認することが出来ます。
以下の例であれば、 i-9999999 のEC2インスタンスがビットコインに関するIPアドレスにリクエストしている旨の警告が出ています。

スクリーンショット 2020-01-28 17.12.13.png

課金リソースの削除

CloudTrailとGuardDutyは、トライアル期間が終了してしまうと料金が発生するため、削除方法も記載しておきます。

CloudTrailの無効化

左メニューの「証跡情報」から、先程作成した証跡を選択します。
スクリーンショット_2020-01-28_17_34_12.png

右上にあるゴミ箱アイコンをクリックします。
スクリーンショット_2020-01-28_17_34_31.png

警告画面が表示されます。「削除」クリックします。
スクリーンショット_2020-01-28_17_34_40.png

S3バケットの削除

CloudTrailのログを格納してあるS3バケットを削除します。

S3のコンソール画面から、対象のS3バケットを選択し、「空にする」をクリックしオブジェクトを削除した後、「削除」をクリックしてバケットを削除します。
スクリーンショット_2020-01-29_10_16_18.png

GuardDutyの無効化

左メニューの「設定」から、一覧下にある「GuardDutyの無効化」セクションの「無効化」をクリックします。
スクリーンショット_2020-01-28_17_25_37.png

警告画面が表示されます。「無効化」をクリックします。
スクリーンショット_2020-01-28_17_27_29.png

スタート画面が表示されたら完了です。
スクリーンショット 2020-01-28 17.27.44.png

参考

AWSが公開しているIAM運用のベストプラクティスも参照してみて下さい。
https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html

What Is AWS CloudTrail?

【初心者向け】AWSの脅威検知サービスAmazon GuardDutyのよく分かる解説と情報まとめ

この他にも最初にやるべきことがたくさんありますので、こちらもチェックしてみて下さい。
AWSアカウントを作ったら最初にやるべきこと ~令和元年版

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした