【AWS】アカウント作成後に行うべきセキュリティ対策

#はじめに
AWSのさまざまなサービスに触れています。是非[コチラ](https://qiita.com/onishi_820/items/92bc81c450f1c2021b09)から他の記事もご覧ください。
随時更新中ですのでお探しの内容に関する記事がない場合はコメントいただければ優先して記事にしようと思っています。

また、投稿日が古い記事に関しては、現在のマネコンのUIと異なる場合がございます。
内容が異なる場合はコメントいただけると幸いです。

本記事は、アカウント作成後に行うべきセキュリティ対策についてまとめた記事になります。

##IDアクセス権管理

不必要な権限を付与していると、情報の流出や破壊、不正閲覧や改ざん、
不正使用、サービス事態の中断などが発生する可能性があります。

そのため、**利用者へ与える権限は必要最小限に絞る**必要があります。

IDアクセス権管理は、AWS IAM（AWS Identity and Access Management）という
サービスを利用して実装していきます。

IAMで出来ることや、特徴は以下の通りです。
**・各AWSリソースに対して別々のアクセス権限をユーザごとに付与出来る
・多要素認証（MFA）によるセキュリティ強化
・一時的な認証トークンを用いた権限の委任
・他のIDプロバイダーで認証されたユーザに、AWSリソースへの一時的なアクセス権を付与
・AWS IAM自体の利用は無料**

では、そろそろIAMの設定を行います。
とりあえず、コンソールにルートユーザでログインします。

###ルートユーザの多要素認証 と ルートアクセスキーの削除

サービス検索に`IAM`と入力すると一番上に表示されるので、
そちらをクリックしてください。
![スクリーンショット 2021-10-02 2.23.25.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/a638234c-2378-cc22-ec80-3a8f3d3bed24.jpeg)


以下のように表示されているはずです。

デフォルトでは、`MFAを追加する`という項目と、`アクティブなアクセスキーがありません。`と
表示されているはずです。

アクセスキーがある方は削除することが推奨されていますので、
必要に応じて削除してください。
![スクリーンショット 2021-10-02 2.26.15.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/8f9b2490-3607-99eb-6241-05363ef2751d.jpeg)

今回は、MFAの追加のみ行います。
先ほどの画像の`MFAを追加`をクリックします。

`MFAの有効化`をクリックします。
![スクリーンショット 2021-10-02 2.28.42.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/0fd637d9-68d4-aed7-d627-9f247e077032.jpeg)

MFAデバイスの管理画面が出ますので、利用したい項目を選択します。
個人的には`仮想MFAデバイス`が一番楽なのでそちらにしています。
![スクリーンショット 2021-10-02 2.30.00.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/8c97e5ea-d6a5-660d-60d1-b627b25e09d9.jpeg)

１、IPhoneもしくはAndroidなどで、互換性のあるアプリをインストールします。
私は、IPhoneなので`Authenticator`をインストールしました。

２、`QRコードの表示`をクリックし、先ほどインストールしたアプリで読み込みます。

３、アプリに表示される番号を2回入力します。

入力後に`MFAの割り当て`をクリックすれば設定完了です。
![スクリーンショット 2021-10-02 2.31.16.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/74b3a7f5-6201-20eb-266e-777411e32ce9.jpeg)

###パスワードポリシー設定

ルートユーザは全ての権限を持っているため、
基本的には新しく作成したユーザで権限を絞ってを利用します。

そのため、新しく作成するユーザのパスワードポリシーを設定します。
何文字以上、英語と数字・記号を使ってください。的なやつです。

左ペインにある、`アカウント設定`をクリックします。
その後、`パスワードポリシーを変更する`をクリックします。
![スクリーンショット 2021-10-02 2.37.31.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/82803080-d08a-d84c-0747-6aa5f0371b3b.jpeg)

パスワードポリシーの変更内容は、みなさんにお任せします。
会社でルールなどがある場合はそちらに従えばいいかと思います。
![スクリーンショット 2021-10-02 2.39.26.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/e6005e5b-b042-3566-b4c5-96f653e330a5.jpeg)

パスワードポリシーが変更されていることが確認できました。
![スクリーンショット 2021-10-02 2.39.49.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/1c54a8ff-0b96-e5d3-97a0-1c32ddd0c73a.jpeg)

###IAMユーザの作成

ルートユーザ以外の特権ユーザを用意するために、IAMユーザを作っていきます。

**・IAMユーザ**
AWS操作ようのユーザ

**・IAMグループ**
IAMユーザをまとめるグループ

**・IAMポリシー**
AWSのサービス操作に対する権限設定、IAMユーザやIAMグループとうに対して付与

**・IAMロール**
AWSサービスやアプリ等のエンティティに対して、リソースの操作権限を付与する為の仕組み

IAMユーザを作成は、ルートユーザで作業を行います。

**1. 事前定義されたIAMポリシーの確認**
今回は、既存のポリシーを利用していきます。
サービス検索から`IAM`を開き、左ペインの`ポリシー`をクリックします。

クリック後、検索欄に`administrator`と入力してEnterを押します。

画像の下から２番目に`AdministratorAccess`というのがあると思いますが、
このポリシーが今回利用するものになります。

このポリシーは全てのサービスに対して全てのアクセスを許可するポリシーです。
![スクリーンショット 2021-10-02 2.51.33.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/3d7eca0d-11de-a75a-d789-0cfa08f6455d.jpeg)

もし仮に、保守専用のIAMユーザが作りたい場合は、
このポリシーではなく、特定のサービスの特定のポリシーを利用しましょう。

**2. IAMグループの作成**

左ペインから、`個のユーザグループ`を選択し、`グループの作成`をクリックします。
![スクリーンショット 2021-10-02 2.55.49.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/6dffb7e3-dfc1-76fd-9f6b-2783e67bc734.jpeg)

グループ名（任意）は、`admin-group`としました。

ユーザはまだ作成していないので、グループには割り当てず、
ポリシーは先ほどの`AdministratorAccess`にチェックを入れて作成します。

作成できました。
![スクリーンショット 2021-10-02 2.59.08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/708f2228-ad0c-72ea-9742-59d854d16aba.jpeg)

**3. IAMユーザの作成**
左ペインから、`ユーザ`を選択し、`ユーザの作成`をクリックします。
![スクリーンショット 2021-10-02 2.59.43.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/c7d97e80-6316-e844-9d25-1b21039072e8.jpeg)

アカウント名は好きなものを入力してください。

**AWSアクセスの種類**ですが、以下は私の内容になります。
今回作成するユーザは自分用なので、パスワードはカスタムパスワードを選択しました。

別の方のユーザを作成する場合は、自動生成パスワードを選択しその内容を連携する。
別の方がログイン後に自分でパスワード変更を実施。という流れが良いかと思います。
![スクリーンショット 2021-10-02 3.01.46.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/c3f2a27f-d849-d814-1f1d-03aaf3cc7b1a.jpeg)

次のステップへ進むと、グループ選択画面になります。
先ほど作成したグループに追加するので、チェックして次のステップへ。
![スクリーンショット 2021-10-02 3.06.08.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/c62c9018-16be-f6a9-8800-32db6d5fc01b.jpeg)

タグの追加ですが、今回は特に設定せず次のステップへ。
内容の確認を行い、`ユーザの作成`をクリックします。

次の画面ですが、すぐに閉じてはいけません。

CLIなどでアクセスする際に必要なアクセスキーが表示されます。
閉じてしまったらこの画面はもう表示することができません。

`.csvのダウンロード`かアクセスキーIDとシークレットアクセスキーをメモしましょう。
![スクリーンショット 2021-10-02 3.09.38.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/4c1344a9-f145-a1e0-8d5c-2163e834d080.jpeg)

`admin-group`に所属したユーザが作成されています。
![スクリーンショット 2021-10-02 3.15.27.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/1a590b21-6d43-687a-9494-3d33035cd56d.jpeg)

**４. IAMユーザのMFA有効化**
先ほど作成したユーザは、MFAが有効になっていないため、有効化を行います。

ユーザ名をクリックすると、以下の画面が表示されます。

`認証情報`のタブをクリックしMFAの割り当てを行います。
手順は先ほどと同じなので割愛します。
![スクリーンショット 2021-10-02 3.17.32.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/264ccd79-ce6f-0520-9ae2-65ca1e1073d5.jpeg)

認証情報のタブを開いた時に、`コンソールのサインインリンク`という項目があるので、
そちらのURLをコピーしといてください。後ほど使います。

**5. IAMユーザ / ロールによる請求情報へのアクセス**
最後に請求情報のアクセスを有効にします。

コンソール右上のアカウントタブから、マイアカウントを開きます。

少し下にスライドすると以下の項目があるので、
チェックを入れて更新をクリックするだけでOKです。
![スクリーンショット 2021-10-02 3.25.48.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/a3d9ed4d-5e49-4673-f9b1-d4fd4a343f2f.jpeg)

では、最後の確認で、先ほどコピーしたURLを開きます。

アカウントIDに12桁の数字が入力されている画面に飛びます。
先ほど作成したユーザ名とパスワードを入力し、MFA認証後ログイン出来ることを確認します。
![スクリーンショット 2021-10-02 3.28.46.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/797483/448d72d4-1546-18d2-2c11-6d669c774c9e.jpeg)

ログイン出来ることが確認できましたら、本記事の内容は終了になります。


正直ここまでのセキュリティ対策で十分かなとは思いますが、
ハンズオンの内容はまだあるので残りは申し込んで確認していただけると幸いです。

具体的には、以下のような項目があります。

**・請求データの確認とアラート**
勝手にサービスを利用されるなどと言った、セキュリティ侵害が発生した場合、
急に高額な請求が来たりする可能性があります。

この時に、一定の金額でアラートが発生するようにすれば、
高額な請求が来る前に気づき、対処することができます。

**・操作履歴とリソース変更履歴の記録**
自分以外のIAMユーザを登録した場合、
誰がどの操作をしたかを判別するために履歴を残すことも大切です。

操作履歴を残すことにより、何かトラブルが起きた際に、
どの操作が原因だったのかを特定することが容易になります。

**・脅威検知**
悪意のあるスキャンや、インスタンス・アカウントへの脅威を検知します。

検知することにより、それの対策を取ることが可能になります。

**・ペストプラクティスの確認**
Trusted　Advisorというサービスを利用することにより、
AWS環境を自動監視、最適化するための推奨ベストプラクティスを提供してもらいます。

具体的には、コスト最適化やパフォーマンス、セキュリティなどです。

#さいごに
最後までご覧いただきありがとうございました！

他にも様々なサービスに触れています。是非[コチラ](https://qiita.com/onishi_820/items/92bc81c450f1c2021b09)から他の記事もご覧ください。