AWSクラウドを使い始めたら、まず設定すべきこと

これまでに、セキュリティやAIなどの情報を投稿しましたが、その時にまず基本となる環境整備が必要になりました。

また、Webサイトを運用していく中でも、何かと必要があって、システム周りの設定を施すことがありました。

そのような中で、これは初めに設定しておくべきだな、と感じたことをまとめようと思います。

IAMユーザの登録

業務システムのインフラであるAWSクラウドのログインに、AWSのRoot管理ユーザを、MFAの設定もなしで使っているのを見たことがあります。AWSは事あるごとにRootアカウントの日常的な使用はやめるべきと言っています。

それではどうするのかと言えば、IAMユーザを使うべきとなります。そのとき、権限をどう付けるかが悩みどころになります。

セキュリティ的には運用で使う必要がある機能を許可する最小権限だけ、IAMユーザに付けるべきなんでしょうが、運用を初めたころは、何かと管理者権限が必要になり、その都度追加していくが大変なところではあります。
(でも、本来的にはそのようにすべきだとは思いますが・・・)

AWSホームページの「AWS 初心者向けハンズオン」には、色々と初心者が試してみると大変勉強になるコンテンツが公開されていますが、これをやってみると、この中でほとんどの管理者機能を利用できる権限である「 AdministratorAccess」をユーザに付けた上で操作を実施してみるストーリーになっています。(ただし、運用のためにはMFAを適応するべきだと思います)

IAMユーザを登録したら、AWS管理ポリシー「 AdministratorAccess」を付加して、プラスMFAで運用することでいきます。

IAMダッシュボードから、ユーザを指定して、「アクセス権限の追加」をクリック

「既存のポリシーを直接アタッチ」をクリックし、 「 AdministratorAccess」 をチェックして、次のステップへ

登録したIAMユーザにMFAを登録

登録したIAMユーザにMFAを登録するために、まずIAMユーザでログインします。

上部メニューから、「マイセキュリティ資格情報」をクリック。展開画面で「MFAの管理」をクリック。

ここから先の手順については、以前の投稿「AWSアカウントにMFA(多要素認証)を適用する」の「1.Authyのセットアップ」からと、その次に投稿した「AWS認証にPC版Authyを使い、予備用デバイスも用意。その設定方法。」を参照して下さい。

MFAをソフトウエアで運用するときには、Googleの「Google authenticator」が良く使われていますが、Authyには複数端末に認証情報を同期できる機能があり、またWindowsパソコンにも登録できるので、スマホのアプリが使えなくなった場合に備えたり、パソコンから認証したりできるので便利です。

Authyで困ったときのTIPS

Authy が初期画面に戻った!

たまに、Authyを起動したときに、初期化していないのに、初期で表示される電話番号の画面が出てくることがあります。このとき、複数のウィンドウに隠れて、ワーニングメッセージが表示されていることがあります。これに「OK」を答えると元のトークンを表示するいつもの画面に戻ります。

慌てて、そのまま初期化して、AWSのMFA管理の操作からやり直したこともあったので、注意です。

Authyの認証情報を復活させたい!

最近、Authyの認証情報を復活できることがわかりました!

MFAを登録したときの「仮想MFAデバイスの設定」で表示される「シークレットコード」をメモっておきます。(真ん中ぐらいの黄色い背景色部分です。赤い矢印ではなく)

これをAuthyの「Token」クリック時に、⊕ボタンから、表示される画面で、
「Enter Code given by the website」の入力エリアに設定して、「Add Account」で
アカウント登録できます。

AWS Organizations に参加する

こちらは、AWSアカウントを複数持っている場合には、参加しておいた方が良いと思います。

AWS Organizationsで実現できること

複数AWSアカウントを一元管理

  AWSアカウントをグループ化して、ポリシーを適用し、利用サービスを制限できます。

AWSアカウント新規作成の自動化

  •  コンソール、SDK、CLIでAWSアカウントを新規作成できます。
  •  作成操作をロギングできます(CloudTrail)

請求の簡素化

  複数AWSアカウントの請求をひとまとめにできます。

設定方法はこちら :「AWS Organizations に参加する(複数のAWSアカウントを持っている場合)

AWS Firewall Manager管理者アカウントを設定する

AWS Firewall Managerは、AWS WAFShieldのページに含まれていて、下手したら知らずに済ますこと多いかもしれません。複数のAWSアカウントを扱っている場合に便利ですが、アカウント1つの場合はメリットはないです。

機能としては、AWS Organizationsにあるアカウントとアプリケーション全体で一元的にファイアウォールのルールを設定、管理できます。

設定方法はこちら : 「AWS Firewall Manager 管理者アカウントを設定する

AWS CloudTrail を有効にする

AWS CloudTrail

AWSユーザのAPI操作などのアクションをログ取得保存するサービスです。

  • 監視というと、EC2とかRDSとかアプリケーションが動いているノードに気が行きますが、AWSサービスはAPIとして動いていて、その操作履歴を取っておくのが重要です。

セキュリティインシデント発生時の分析に活用できます。

  • CloudTrailのログから、Amazon Detectiveが侵害可能性があるアドレスを表示することができます。
  • さらに、侵入された後に乗っ取られたEC2のAPIコールが、どのIAMユーザから起動されているかなど追跡のために使われます。

CloudTrailのログをCloudWatch Logsに転送し監視することも可能です。
  → CloudTrail の証跡はマルチリージョンの証跡として設定することができます。

設定方法はこちら : 「AWS CloudTrail を有効にする

AWSセキュリティ前準備:AWS Config を有効にする

AWS Config

AWS Config は、時間と共に設定がどう変わったかを確認できるサービスです。

ターゲットAWSリソースは、EC2インスタンス、EBSボリューム、セキュリティグループ、VPCがあります。

  • AWSリソースの設定が最適な設定であるかどうかを評価します。
    現在の設定のスナップショットを取得します。
  • リソースが作成、変更、または削除されるたびに通知を受け取ることができます。
  • リソース間の関係を表示できます
    (特定のセキュリティグループを使用するすべてのリソースを表示するなど)

設定方法はこちら : 「AWS Config を有効にする

コスト管理を開始する

IAMユーザーに 請求情報アクセス を許可する

IAMユーザへの許可は Rootユーザにしかできないので、Rootユーザでログインします。
画面上部のアカウントをクリックして展開されるメニューから「マイアカウント」をクリックし、ページの真ん中ぐらいにある「IAMユーザ/ロールによる請求情報へのアクセス」の右にある「編集」をクリック
「IAMアクセスのアクティブ化」のチェックをオンにして「更新」をクリック

これで、IAMユーザでログインしても、請求ダッシュボードで請求情報の確認ができます。

基本的には請求ダッシュボードを見れば、セキュリティリスクを突かれて、EC2がおかしな動作をしたために多額な請求がされるようなことがないように確認することができます。

さらに次の2つを設定しておくと良いと思います。

1⃣ AWS Cost Explorer

AWSサービスの検索窓から「Billing」で検索して、左メニューから「 Cost Explorer 」をクリック

「CostExplorerを起動」のボタンをクリックします。

初めて起動したときには、24時間経ってから、コスト情報が表示されますので、待ってください。

2⃣ Budgets

  • 利用状況を監視し、事前に設定した閾値を越えたら通知することが可能
  • 設定した閾値を越えた場合、通知SNSの機能により、EメールやHTTP/HTTPS等で通知出来る

AWSサービスの検索窓から「Billing」で検索して、左メニューから「 Budgets 」をクリック

「予算を作成する」のボタンをクリック

この後の設定操作によって、予算に基づいて、コスト計算結果が表示されます。

セキュリティ機能の有効化

ベースとして、Organizations、AWS Firewall Manager、CloudTrailを設定していますので、その上で、GuardDutyを有効化します。

Amazon GuardDuty

  • GuardDutyは、CloudTrail、AmazonVPCフローログ、DNSログから、AWSアカウント全体で数十億件のイベントを分析します。
  • アカウント侵害、インスタンス侵害、偵察スキャンを特定します。
  • 異常APIコール、ブラックリストのIPアドレスへのアウトバウンド通信、DNSクエリを転送して悪用する通信を検出します。
  • 「信頼されているリスト」と「脅威リスト」によって、信頼できる通信だけにフィルタできます。

Amazon GuardDuty の初期画面で、「今すぐ始める」→「GuardDutyの有効化」で開始します。

こちらも参考にしてください :
AWSセキュリティ【Amazon GuardDuty】:マネージド型脅威検出サービス