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

[AWSセキュリティ入門] 見ながらやろう!! AWS最初にやることリスト -2019/4/9 更新版-

第1回目: この記事
第2回目: VPC構築編


はじめに...

2019/3/1 : アップデート!!
2019/3/31: AWS GuardDutyの項目を追加
2019/4/9: Trusted Advisorの項目を追加

これはAWSを初めて触る人向けに、これをやっておくといいかも、と思ったものを書いたものです。
あとで自分に合わせた形にしていけばいいので、まずは使ってみる、くらいで考えてください。


クラウドであるAWSを始める理由は様々でしょうが、主に作ったサービスをデプロイすることが理由になってくると思います。
そしてサーバー関連を扱ったことが少ない人ですと、EC2やS3といったサービスを使うことばかりを考えています。
意外と最初に何をやっておけばいいのだろうということまでは考えなかったりします。私はそうでした。
なので、ここに最初にやっておけばよかったなと思ったものを書いていきます。


S3は料金の安い[米国西部(オレゴン)]のリージョンを使います。

AWS マネジメントコンソール.png


一部サービスでは[ 米国東部(バージニア北部) ]のリージョンを使います。

“SS“ 2019-03-01 at 23.51.48.jpg

やること

  1. [ CloudTrail ]による証跡(使った内容)をS3に保存
  2. [ IAM ]の設定ユーザーの作成、ログイン
  3. [ Billing Reports ]関連の設定
  4. [ Trusted Advisor]の起動
  5. [ AWS Config ]の起動
  6. [ AWS GuardDuty ]の起動

“SS“ 2019-03-31 at 16.38.52.jpg

1. CloudTrailによる証跡(使った内容)の保存

CloudTrailは自分のアカウントで作業した内容などのデータを蓄積できるサービスです。簡単にいうとアカウントの監視ツールですね。AWSが挙げているユースケースとして下記のものがあります。

  • コンプライアンスの支援(操作権限の把握)
  • セキュリティ分析(ログ管理、セキュリティ分析)
  • データの不正引き出し検出
  • トラブルシューティング(設定変更による問題を検出)

CloudTrail:
https://aws.amazon.com/jp/cloudtrail/
ドキュメント:
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-user-guide.html

1. 証跡の作成

AWS マネジメントコンソール (1).png

CloudTrailのコンソールに入り、[証跡の作成]をクリック

CloudTrail Management Console.png

CloudTrail Management Console (1).png

証跡をどの程度取得するかを設定します。

CloudTrail Management Console (3).png

注意:
S3のバケットの命名規則についてはこちらをご参照ください。

2. CloudTrailの設定の確認

設定した証跡の名前をクリックし、右上の[ログ記録]がonになっていれば大丈夫です。

CloudTrail Management Console (4).png

CloudTrail Management Console (5).png

少し時間がたつとダッシュボード画面にログが出てくることが確認できます。
CloudTrail Management Console (6).png

3. S3バケットの確認

[サービス]から[S3]を選択してください。バケットが存在することが確認できるはずです。

CloudTrail Management Console (8).png

S3 Management Console.png

2. IAM関連の設定

IAMは、ユーザーのアクセス制御についての管理サービスです。
会社では部署、作業内容などで扱っている項目が違ってきますよね。
必要最低限以上の権限を与えると不正行為の危険性もありますし、コンプライアンス上の問題が発生してきます。

個人でもこの内容は非常に重要です。root権限とは非常に強い権利であり、1度でも不正アクセスをされると、自分のアカウントを勝手に使われ膨大な金額の請求を招くことになってしまいます。

初心者がAWSでミスって不正利用されて$6,000請求、泣きそうになったお話。

自分自身のを守るためにも、IAMの有する機能をしっかり使ってアカウントを管理すると幸せになれます。

IAM:
https://aws.amazon.com/jp/iam/
ドキュメント:
https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/introduction.html

1. MFAの設定

MFAとは、AndroidやiOSなどといった別のデバイスを用いる2段階認証を設定するものです。
Google Authenticatorというアプリを使って設定します。

iOS:
http://itunes.apple.com/jp/app/google-authenticator/id388497605?mt=8

Android:
https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=ja

AWS マネジメントコンソール.png

コンソール画面にアクセスします

IAM Management Console (1).png

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f37323537382f38336636333630382d306535632d393231372d343436342d3363303862386235613463302e706e67.png

IAM Management Console (3).png

最新.png

QRコードを読み込むと、Google Authenticatorに登録されます。
登録されると、6桁の数字が出てきますので、それを認証コードに設定していきます。

この時、2つある認証コードの入力に注意してください。6桁の数字を認証コード1に入力して、更新を待ってから新たらしい6桁の数字を認証コード2に入力しましょう。

有効化がうまくいけば、画面を更新するとチェック項目が緑色に変わっていることが確認できます。

IAM Management Console (7).png

最後にMFAが動くか、サインアウトして確認してみましょう。
うまくいっていれば、アドレス、パスワード入力後にMFAの入力項目が追加されているはずです。

Amazon Web Services Sign In.png

2. パスワードポリシーの設定

これに関しては言うまでも無いですね。ご自身のパスワードをどの程度の強度にするか、と言うことです。
下記のものがAWSのセキュリティで良いものとされています。

2019年3月1日更新

  • パスワードの最小長: 20(パスワードの自動生成ツールを使ったほうがいいですね。)
  • 少なくとも 1 つの大文字が必要
  • 少なくとも 1 つの小文字が必要
  • 少なくとも 1 つの数字が必要
  • 少なくとも 1 つの英数字以外の文字が必要
  • パスワードの失効を許可 - 90日
  • パスワード再利用の禁止 - 3個

IAM Management Console (8).png

“SS“ 2019-03-01 at 23.31.01.jpg

設定が終わったら最後にダッシュボード画面に戻ってIMAパスワードポリシーの適用の項目が緑色になっていることを確認できます。

IAM Management Console (10).png

3. グループの作成

IAM Management Console (11).png

IAM Management Console (12).png

IAM Management Console (13).png

グループにポリシー(権限)を与えます。今回作成するのはrootユーザーの次に強い権限を持ったユーザーになります。
フィルターにIAMと入力して範囲を絞り、IAMFullAccessと言うポリシーをアタッチします。

IAM Management Console (14).png

この後の確認画面で[グループの作成]を押すと、権限の付与されたグループが作成されます。

IAM Management Console (15).png

4. ユーザーの作成

最後にユーザーの作成に移ります。IAMコンソール画面から[ユーザーの管理]に進みます。

IAM Management Console (16).png

IAM Management Console (17).png

IAM Management Console (1).png

ユーザー名を記載し、アクセスの種類をチェックし[次のステップ]をクリックします。
[プログラムによるアクセス]は[AWS CLI]などのコマンドラインを使ったアクセスを許可します。
[マネジメントコンソールへのアクセス]は、現在のrootユーザーのようにコンソール画面の操作のことです。

私はパスワードを[カスタムパスワード]を使って生成します。先程設定したパスワードポリシーに乗っ取って設定しましょう。あとでこのパスワードは破棄することになるので、本番用のパスワードとは別のものにしておいてください。

IAM Management Console (19).png

先程作成したグループに所属させます。

IAM Management Console (20).png

最後に確認ができたらユーザーの作成し、.csvファイルをダウンロードします。

.csvファイルには作成されたIAMユーザーのデータが保存されています。管理はしっかり行いましょう。

IAM Management Console (22).png

IAMコンソール画面のセキュリティステータス画面が全て緑色になっていたらIAMのユーザーは作成完了です。

3. Billing Reports関連の設定

AWSは従量課金のサービスです。基本的には使った分だけ。逆に考えると、使い方を考えないと際限なくお金がかかってくるサービスです。そのため、一定以上使った場合などに連絡が入るようにし、リスクコントロールができるような仕組みを構築する必要があります。

請求関連はrootユーザーのみ操作できる項目になっています。今後はrootユーザーではログインしない前提で作成したIAMに操作できる権限などを与えていきます。

ドキュメント:
https://docs.aws.amazon.com/ja_jp/awsaccountbilling/latest/aboutv2/billing-what-is.html

1. Billing ManagementでIAMアクセスの設定

AWS マネジメントコンソール (1).png

Billing Management Console.png

画面下部まで進み、IAMユーザー/ロールによる請求情報へのアクセスの[編集]をクリック

Billing Management Console (1).png

[IAMアクセスのアクティブ化]の項目をチェックし、更新します。
「IAM ユーザー/ロールによる請求情報へのアクセスは有効になっています」と表示されれば大丈夫です。

2. Billing Reports保存用S3の作成

CloudTrail Management Console (8).png

S3 Management Console (1).png

S3 Management Console (2).png

バケット名とリージョンを設定して[作成]をクリック。

S3 Management Console (3).png

作成されたことを確認します。

3. Billing Reports通知などの設定

AWS マネジメントコンソール (1).png

Billing Management Console (3).png

Billingコンソールから、設定の項目をクリックします。
設定の中にある項目をチェックしていきます。

請求アラートを受け取るの項目については「一度オンにするとオフに戻す事はできません」となっていることだけご確認ください。

S3のバケットに保存に先程設定したS3バケットを指定します。
そのままではバケットポリシーでエラーが発生してしまうので、ポリシーの部分をクリックします。

Billing Management Console (4).png

ポリシーの内容が表示されるので、これをコピーしておきます。

CloudTrail Management Console (8).png

別のタブかウィンドウでS3のコンソールを開きます。

S3 Management Console (4).png

先程作成したバケットに移動します。

S3 Management Console (5).png

[アクセス権限]から[バケットポリシー]を選択し、コピーしておいたポリシーを貼り付け[保存]をクリックします。

Billing Management Console (5).png

Billingコンソールに戻り、改めてバケットのポリシーを検証し[有効なバケット]と表示されれば大丈夫です。
その下に[レポート]という項目が表示されるので、ここにチェックを入れ、[設定の保存]をクリックすれば完了です。

4. IAMユーザーでログイン

ここまでできたらrootユーザーにお疲れ様をして、IAMユーザーでログインしましょう。

AWS マネジメントコンソール.png

IAMのコンソールを開きます。

IAM Management Console.png

ダッシュボードのIAMユーザーのサインインリンクのURLを開きましょう。

Amazon Web Services Sign In.png

作成したIAMユーザー名を入力し、パスワードを入力します。

Amazon Web Services Sign In (1).png

新しくパスワードを設定し直します。

AWS マネジメントコンソール.png

これでIAMユーザーでログインできました!

4. Trusted Advisorの起動

まずはTrusted Advisorを起動しましょう。「コスト最適化」、「パフォーマンス」、「セキュリティ」、「フォールトトレーランス」の4つの点から利用者のAWS環境をAWSが自動で精査し、推奨設定を教えてくれるサービスです。

アカウントを作成した時点で有効になっているので、サービスを確認すればそれだけでオッケーです。

公式ページ:
https://aws.amazon.com/jp/premiumsupport/trustedadvisor/?nc2=type_a
https://aws.amazon.com/jp/premiumsupport/technology/trusted-advisor/


画面左上[ サービス ]から[ Trusted Advisor ]を選択

“SS“ 2019-04-09 at 13.05.37.jpg

ダッシュボードが表示され、すぐにAWSがアカウントを確認し始めます

“SS“ 2019-04-09 at 13.06.18.jpg

少し時間を置くと、このように結果が出てきます

“SS“ 2019-04-09 at 13.07.15.jpg

上の項目で行なった[ IAM ]の設定を行なっていないとこのように表示されます

重要度から[ 赤 > 黄 > 緑 ]です。
赤の項目はすぐに解消するようにしましょう。

5. AWS Configの起動

AWS GuardDutyというサービスを起動します。リージョン毎のサービスの変更履歴のログを保存し、かつ可視化までをしてくれるサービスです。Configは課金されるので利用される際はご注意ください。

公式ページ:
https://aws.amazon.com/jp/guardduty/

ドキュメント:
https://docs.aws.amazon.com/ja_jp/guardduty/latest/ug/what-is-guardduty.html


画面左上[ サービス ]から[ Config ]を選択

“SS“ 2019-03-01 at 23.41.50.jpg

AWS Configというサービスを起動します

“SS“ 2019-03-01 at 23.40.47.jpg

デフォルトで入力されている内容そのままに進めていきましょう

“SS“ 2019-03-01 at 23.43.04.jpg

“SS“ 2019-03-01 at 23.45.07.jpg

ルールを設定すると通知を飛ばすこともできます
最低1ルールあたり2.0USDが課金されますので
必要な分のみチェックしましょう

“SS“ 2019-03-01 at 23.46.06.jpg

今回はそのまま進みます

“SS“ 2019-03-01 at 23.46.31.jpg

最後に確認をして終了です

“SS“ 2019-03-01 at 23.47.02.jpg

10秒くらい待つとコンソール画面に戻るので、そうしますと起動完了です。
この時点で課金が発生され始めるので注意してください。
何かしらの変更1件あたり0.003USDです

https://aws.amazon.com/jp/config/pricing/

“SS“ 2019-03-01 at 23.48.10.jpg

グローバルリージョンへの対応

リージョンを[ バージニア北部 ]に変更します

“SS“ 2019-03-01 at 23.51.48.jpg

先ほど入れなかったチェックボックスを入れます

“SS“ 2019-03-01 at 23.52.46.jpg

[ 設定 ]の項目で先ほどオレゴンで作成した[ S3バケット ]を選択します
あとは先ほどと同じ流れです

“SS“ 2019-03-01 at 23.54.00.jpg

6. AWS GuardDutyの起動

AWS Configというサービスを利用します。これはリージョン毎にワンクリックで脅威検知をしてくれるサービスです。Configは課金されるので利用される際はご注意ください。

ドキュメント:
https://docs.aws.amazon.com/ja_jp/config/latest/developerguide/WhatIsConfig.html


画面左上[ サービス ]から[ GuardDuty ]を選択

“SS“ 2019-03-31 at 16.29.13.jpg

Amazon GuardDutyサービスを起動します

“SS“ 2019-03-31 at 16.42.44.jpg

[ GuardDutyの起動 ]を押せば完了です。

“SS“ 2019-03-31 at 16.44.13.jpg

・ここの文章にもありますが、今回起動した[ Cloud Trail ]やVPCを作った際に設定できる[ VPCフローログ]、DNS(Route53)のクエリログを参照して脅威検知をします。
(つまり設定していないと能力も落ちますね)
30日間は無料でお試しいただけます

ちなみに詳細情報はこのようになります。

“SS“ 2019-03-31 at 16.43.50.jpg

“SS“ 2019-03-31 at 16.44.02.jpg

すぐにこのような画面になり、完了です。
簡単ですね。

“SS“ 2019-03-31 at 16.53.28.jpg

[ サイドバー ]の[ 設定 ]からサンプルを作ることができます。

“SS“ 2019-03-31 at 16.55.01.jpg

“SS“ 2019-03-31 at 16.56.30.jpg

様々なサンプルが作成されます

“SS“ 2019-03-31 at 16.59.59.jpg

普段は問題がなければ何も表示されません!!

最後に...

ここまでのお付き合いありがとうございました!
改めて設計を見てみましょう。

“SS“ 2019-03-31 at 16.38.52.jpg

それぞれ最低限で使われるべきサービスを挙げていきました。
今までの紹介をみていただけばわかるように、画面をポチポチするだけで
これだけのカバーができます。

AWS様様ですね!!

さて、今回作ったこのIAMユーザーは、いわゆる「人事部長」なのです。
ここからあなたがやりたい作業について、1人1人を作成して行くことであなたの会社は出来上がっていきます。

このことを理解して使っているのといないのとでは大きく変わってくるのではないでしょうか?

もしここから先に困ってしまったら、IAMのポリシーについて調べてみると良いかもしれないですね。
* ポリシーが会社の部署、社員であるあなたはどんな業務ができるのでしょうか?
* R/Wでしょうか? R/Oでしょうか?
* それがイメージできればあとは早いのではないでしょうか。

ご覧いただきありがとうございました。
では、皆さんこれからも良い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
ユーザーは見つかりませんでした