AWS Day1対応 - 初めてAWSを利用するときの基本設定項目

## 概要
セキュリティ面の対策とコスト管理の設定をする。

## 目次
- [対象読者](#対象読者)
- [やること](#やること)
- [用語の説明](#用語の説明)
- [実施手順](#実施手順)
- [参考](#参考)

## 対象読者
- AWSを使い始めたけど、Day1対応をしていない人間 ≒ 全世界線の俺
- 用語の理解が曖昧な人間 ≡ 俺

つまり**俺**

## やること
- 他要素認証(MFA)の有効化
- 管理者用IAMの作成
- AWS CloudTrailの有効化
- AWS請求アラートを有効化

## 用語の説明
- 他要素認証
    - 以下3種類のうちの2種類以上を認証に使用すること
        - What-You-Know(WYK): 本人しか知らないはずの情報
            - <font color="Red">パスワード</font>や<font color="Red">暗証番号</font>
                - パスワード: 秘密の**合言葉**
                - 暗証番号(PIN: Personal Identification Number): 秘密の**番号**
        - What-You-Have(WYH): 乱数表やUSBトークンなど本人しか持っていないはずの物品（モノ）
            - <font color="Red">モバイル端末</font>、<font color="Red">乱数表</font>や<font color="Red">USBトークン</font>など
        - What-You-Are(WYA): 人体の特徴
            - <font color="Red">指紋</font>や<font color="Red">虹彩</font>など
- IAM
    - AWS上で作成したリソースへのアクセス許可設定をするためのサービス
        - [公式](https://aws.amazon.com/jp/iam/faqs/?nc=sn&loc=5)の見解 
            - >IAM は、AWS のすべてにおいてきめ細かいアクセスコントロールを提供します。IAM を利用することで、特定の条件下でサービスやリソースへのアクセスをコントロールすることができます。IAM ポリシーを使用して、ワークフォースやシステムに対する許可を管理し、最小特権を確保します。IAM は、追加料金なしでご利用いただけます。
- AWS CloudTrail: AWSでユーザの操作を記録するサービス
    - 特徴
        - ルートアカウント/IAMユーザの操作とAPIコールをtラッキングしてログを取得するサービス
        - Cloud Trailログファイルは暗号化されてS3に保存
        - KMSによる暗号化もサポート
        - デフォルトでは90日間ログが保存される
        - 無料

## 実施手順
### 他要素認証(MFA)の有効化
- IAMをAWSマネジメントコンソールから検索して開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/10c7249b-41b3-e03c-4ff6-5f6c6c8a358f.png)

- [MFAを追加]ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/6c083ac9-4942-71cc-e5f6-67e323d1bbea.png)

- 任意のMFA device nameをMFA device name > デバイス名 に入力
    - 今回はMFAとしてモバイルのアプリである「Google Authenticator」をしようするため、`Google Authenticator`とする
- MFA device > デバイスオプション で「認証アプリケーション」を選択する
- [次へ]をクリック

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/d2144ddd-e1be-866e-fb03-ad3613b0d29a.png)

- モバイルからGoogle Authenticatorを開き、QRコードをスキャンする
- Google AuthenticatorにAmazon Web Services の項目が追加されるので、そこに表示されている番号をMFA コード1に入力する
    - Google Authenticatorを放置していると表示されている番号が変わるので、MFA コード1に使用していない番号になったらMFA コード2に入力する
- [MFAを追加]ボタンをクリック
- -他要素認証(MFA)の有効化 おわり-
    
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/69b74aeb-9986-68c7-3d4e-c3befb278464.png)

---
### 管理者用IAMの作成
- AWSマネジメントコンソール上のIAMの左のツリーから[ユーザー]をクリックし、[ユーザーの追加]をクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/d84bd6f8-00c1-1549-fed1-837450b4486f.png)

- ユーザー名や設定を任意に決定する
    - 今回はよくある?設定にするため、画像のような設定にする
- [次へ]をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/d1daba62-c4d2-89c0-a6f9-bcc0c6d03f06.png)

- 許可のオプションで[ポリシーを直接アタッチする]を選択し管理者用のアカウントを作るため、`AdministratorAccess`にチェックマークをいれる。
- [次へ]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/85d359a5-ea08-8fcc-b95a-65484ce60bd1.png)

- 設定内容を確認し[ユーザーの作成]をクリックする。
    - 任意でタグを使用してもよい(今回は未使用)
        - タグを使用すると、複数アカウントを作成するときなど、アカウントをタグで検索したりする事ができるので整理整頓が楽になる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/05c8508c-251b-5c7f-eb7a-604e9368974a.png)

- 〜管理者用IAMの作成おわり〜

今後は作成したユーザでログインするときは、`コンソールサインイン URL`から設定した`ユーザ名`と`コンソールパスワード`でログインする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/95c77bc1-459d-31a4-2397-df6d193dead1.png)

---
### AWS CloudTrailの有効化
- AWSマネジメントコンソールからCloud Trailを開く
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/cb7eaaaa-3f62-d4e0-3e71-ef2154b5f334.png)

- [証跡の作成]をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/0c6c6eb8-b2ee-ca73-57cd-5976bb02a075.png)

- 表示されている「クイック証跡の作成」ウィンドウでも証跡の作成ができるが、手順が簡略化されすぎている。今回はどういった手順で作成するのか順を追って確認するため、左のツリーから`ダッシュボード`を選択し、[証跡の作成]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/74d813aa-7123-533b-fb88-7949aa9624aa.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/3577ab16-89b2-108c-18af-7f86fa58d79b.png)

- 任意の証跡名を入力する
- 証跡を保存するための領域として、任意のS3バケットを用意する。今回はS3バケットを新規作成することとする。
- `ログファイルの SSE-KMS 暗号化`は今回は利用しないため、有効のチェックボックスを外す。
- CloudWatch Logsの有効のチェックボックスはチェックすると有料になるため今回はチェックしない。
- [次へ]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/a8786678-cd0e-5668-d00a-1aac9d06343c.png)

- イベントタイプを選択する
    - データイベントやInsightsイベントは追加料金がかかる
    - 今回はなるべく課金したくないため管理イベントのみにする
- [次へ]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/dcf645f6-f6b4-5e0d-dd5d-7f2bf635ffb5.png)

- 内容を確認し[証跡の作成]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/429e879e-eedc-478f-2b86-c362bff4cb14.png)

- 〜 AWS CloudTrailの有効化 おわり 〜

- 注意:  S3は利用するたびにお金がかかるので、今回作った証跡保存用のS3が不要な場合、削除またはログ記録の停止をすること。

---

### AWS請求アラートを有効化
- ルートアカウントでないとAWS請求アラートを有効化をすることができないため、現在IAMユーザーでログインしている場合(この手順書通り勧めてきた人)は右上のアカウント名をクリックし、[サインアウト]をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/8de76ed5-c373-991f-7239-80fe7185344d.png)

- [もう一度ログインする]をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/952ae2f9-412c-085e-1693-e9f2f4fae674.png)

- [サインイン]ボタンの下にある、[ルートユーザのEメールを使用したサインイン]をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/82d7ddf5-9eb3-1a07-cd0e-c515dcd3fabc.png)

- ルートユーザを選択肢、ルートユーザのEメールアドレスを入力し、[次へ]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/481c8410-6b38-e96a-2cbb-0d8275bede6c.png)

- ログインしたら、右上のユーザー名をクリックし[アカウント]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/60843cd6-b475-d050-92e6-a96f9666ea58.png)

- スクロールして下の方にある「IAMユーザおよびロールによる請求情報へのアクセス」の[編集]をクリックし、[IAMアクセスをアクティブ化]をクリックし、[更新]する。
    - この作業により、IAMユーザでも請求情報を確認できるようになる

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/d901f379-8a1f-eadb-ce65-46bdb363afb8.png)

- 請求設定
  - 先の手順で[IAMアクセスをアクティブ化]したアカウントやルートアカウントでログインしている状態で右上のユーザー名をクリックし[アカウント]をクリックした後、左のツリーから下の方にある[請求設定]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/de412196-7dc2-ae9a-2b8a-26ba737e8103.png)

- アラートの設定の[編集]をクリックした後に表示される、「AWS無料利用枠アラートを受信する」と「CloudWatch請求アラートを受信する」をチェックし、受診するメールアドレスを入力し[更新]をクリックする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/0cc9f90a-d34a-a163-8477-9039d4053ba2.png)

- 上記まででアラートの受信設定を終えたので、アラートの送信設定を行うためCloud Watchを開く

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/57ab6152-9bcf-eefd-c96c-376d2dcea5c2.png)

- 左のツリーから`アラーム`の子項目の[請求]をクリックする。(もし見当たらない人は、リージョンを`バージニア北部`などに変えると見つかるかも)

- [アラームの作成]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/a0928944-55d3-ff8b-5f3d-cf4333eb9ede.png)

- 任意のメトリクス名を設定する
- Currencyを日本円にしたい場合は「JP」と入力する
- 画像のように任意の設定をしたら、[次へ]をクリックする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/22d0acc3-5823-20a1-f400-86e31193c8d9.png)


- 画像のように[新しいトピックの作成]を選択し、任意の名前を割当て、メールアドレスを設定し[トピックの作成]をクリックする。その後画面下の[次へ]をクリックする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/bbebf26f-7ec8-8df3-3044-5515c11cc628.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/6e4226f1-c4b3-8ebe-2372-48bbe1138b47.png)

- 任意のアラーム名と説明を入力し[次へ]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/216e6cad-0e5b-13f7-963c-b7d8d0713b01.png)

- プレビューと作成で設定内容を確認し、[アラームの作成]をクリックする。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/0acb8161-4025-1da6-ea7e-cd6d4620510e.png)

- 設定したメールアドレスに以下のようなメールが来るので[Confirm subscription]をクリックする

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3771228/f94269fd-c09e-c5a7-b4c6-ca972b870c69.png)

- ~AWS請求アラートを有効化 おわり~

## 参考
- [多要素認証 【MFA】 Multi-Factor Authentication / マルチファクター認証](https://e-words.jp/w/%E5%A4%9A%E8%A6%81%E7%B4%A0%E8%AA%8D%E8%A8%BC.html)