AWSアカウント作成時に行うべきこと(前編)

0410

Amazon Web Services (以下AWS)の利用開始時に行うべき設定作業を解説します。AWSの利用開始とは、AWSアカウントの開設を意味しますが、より安全に利用するため、AWSアカウント開設直後に行うべき設定がいくつかあります。この連載ではその設定内容を説明します。


ITSデザイン事業部 課長代理 システムエンジニア 上野史瑛

はじめに

AWS Organizationsを使用することで、複数のアカウントに自動的にこのような初期設定を行うことも可能ですが、この連載では新規で1アカウントを作成した場合を前提とします。複数アカウントの場合も、基本的な考え方は同じになります。

設定作業は全16種類あり、作業内容の難易度や必要性に応じて以下3つに分類しています。 少なくともMUSTの作業については必ず実施するようにしましょう。

MUST :アカウント開設後に必ず実施すべき作業

SHOULD :設定内容の検討または利用方法を決定のうえ、可能な限り実施すべき作業

BETTER :AWSの知識がある方が行う場合やセキュリティ要件の高いアカウントで実施すべき作業

開発・検証用途のAWSアカウントの場合も、「AWSアカウントが乗っ取られて、大量のリソースを作成される」「不正利用される」といったリスクは存在するため、全てのAWSアカウントで設定を行うことが大切です。

ルートユーザの保護

ルートユーザとは、AWSアカウント作成時に設定したメールアドレスとパスワードでログインできるユーザのことを指します。全てのAWSサービスとリソースの操作が可能であり、操作した個人を特定できません。後述するIAMユーザーを作成した後は、基本的に使用しないようにするべきです。 ルートユーザを保護するために以下の設定を行います。

作業1. パスワードの設定 [ MUST ]

アカウント設定ページから、強力なパスワードをルートユーザに設定します。具体的には、8文字以上、大文字・小文字・数字・特殊文字を含む、アカウント名やEメールアドレスと関連性の少ない文字列とします。

作業2. 多要素認証(MFA)の有効化 [ MUST ]

セキュリティ認証情報のページから、ルートユーザのMFA有効化を行います。これにより、MFAデバイスを持った管理者のみがルートユーザでログイン可能となります。MFAデバイスは物理と仮想の2種類ありますが、物理デバイスの準備が難しい場合はスマートフォンアプリ等で設定可能な仮想MFAデバイスを使用します。

図1:MFA 設定画面

コストの可視化

AWSのようなクラウド環境では、利用量に応じて料金が発生するため、リソースの削除漏れや設定ミス等により利用料が想定以上に大きくなってしまう可能性があります。そのため、利用料(コスト)の状況はすぐに確認できるように可視化しておき、一定以上の利用料になった場合は検知する仕組みが必要となります。最低限以下の設定を実施しておきましょう。

作業3. IAMユーザーの請求情報アクセス許可 [ MUST ]

デフォルト状態では、IAMユーザーは請求情報のページへアクセスすることができません。ルートユーザは基本的に使用しない方針とするため、IAMユーザーがこのページを確認できるように、アカウント設定のページから設定しておく必要があります。アクセス許可の設定はルートユーザのみ可能なので、アカウント開設直後に設定しましょう。アカウント設定ページは、マネジメントコンソールログイン後、右上のアカウント名>マイアカウントを順に選択することで遷移が可能です。ページ下部にある「 IAM ユーザー/ロールによる請求情報へのアクセス」をアクティブ化することで、IAMユーザーが参照可能になります。

図2:IAM ユーザー/ロールによる請求情報へのアクセス 設定画面

作業4. Cost Explorerの有効化 [ SHOULD ]

Cost Explorerは、AWS利利用を月別、日別やサービス別で確認できるツールです。こちらもルートユーザで請求情報のページから有効にする必要があるため、上記IAMユーザーのアクセス許可設定と合わせて実施しましょう。

図3:Cost Explorer

作業5. 予算およびアラートの設定 [ MUST ]

AWS Budgets(予算)の画面で、あらかじめ想定した利用料を決めておき、予算として設定が可能です。利用料が予算額に達した場合や、「予算額の何%になったらメール通知を行う」といった設定も可能です。意図しない利用料の増加に気づくためにも必ず設定するようにしましょう。他にもCloud Watch アラームを使用して利用料増加の検知を行うことも可能です。どの方法でも良いので、利用料の増加に気づく仕組みは必ず用意しておくようにしましょう。

図4:予算の設定画面

IAMユーザーの作成

操作を行った個人を特定でき、操作権限の設定が可能なIAMユーザーを作成します。

作業6. 管理者IAMユーザーの設定[ MUST ]

まずは全ての操作が可能な管理者用のIAMユーザーを作成します。ユーザーごとに権限を付与するのは手間になるため、IAMグループを作成し、そのグループに全ての操作が可能なIAMポリシー「AdministratorAccess」を付与します。その後必要な人数分のIAMユーザーを作成し、このIAMグループに所属させます。

作業7. 利用者IAMユーザーの設定 [ SHOULD ]

アカウントの利用用途(例えばVPCとEC2のみ使用するなど)が決まっていれば、利用用途の権限のみ付与したIAMユーザーも作成します。全ての利用者に管理者権限を付与するのではなく、必要最低限の権限だけを付与することが大切です。

図5:IAMユーザーの運用例

CloudTrail

CloudTrailにはAWS上の操作履歴が保存されます。デフォルトでは特に追加作業も不要で、90日間保存され、CloudTrailの画面から確認することが可能です。

作業8. CloudTrail証跡情報の作成 [ MUST ]

証跡情報を作成しS3に保存しておくことで、全ての操作履歴を残しておくことが可能です。比較的簡単に設定ができるため、必ず実施するようにしましょう。

図6:CloudTrail証跡情報 設定画面

(参考)CloudTrailの利用料金

CloudTrail自体の利用は無料で、S3の証跡データ保存分のみ発生します。 S3は東京リージョンで0.025USD/GB(~50TB)の料金が発生し、利用状況によりデータ量は異なりますが、しばらくの間は$1以下(40GB以下)になると考えて良いでしょう。

AWS Config

作業9. Configの有効化 [ MUST ]

AWS Config(以下、Config)を有効にすることで、AWSリソースの設定変更履歴を保存することができます。CloudTrailでは誰がどの操作を行ったのかという履歴を保存しますが、Configでは対象のAWSリソースがいつ、どのように変更されたのかという観点で履歴が保存されます。

図7:Config 設定画面

以下の例では、セキュリティグループの設定履歴を表示しています。

図8:Config 設定履歴参照(セキュリティグループ)

作業10. Config ルールの設定[ BETTER ]

Configを有効にすることで、設定履歴を保存することができますが、それに加えConfigの機能であるConfigルールを使用することで、AWSリソースが設定したルールに準拠しているかチェックすることが可能です。例えば以下のようなルールを設定してチェックを行うことができます。

・ CloudTrailが有効になっているか

・ S3バケットがパブリック読み書き可能になっていないか

・ Security GroupでSSHポート(22)がパブリック公開されていないか

また、Config ルールと合わせて修復アクションを設定することで、SNS通知や自動修復処理も実装することが可能です。基本的にアカウント開設時はConfigを有効化するだけでOKですが、より厳しい運用が必要なAWSアカウントや、実装知識のある方はConfig ルールの運用も合わせて検討するようにしましょう。

(参考)Configの利用料金

CloudTrail自体の利用は無料で、S3の証跡データ保存分のみ発生します。 S3は東京リージョンで0.025USD/GB(~50TB)の料金が発生し、利用状況によりデータ量は異なりますが、しばらくの間は$1以下(40GB以下)になると考えて良いでしょう。

まとめ

今回はAWS利用開始時のアカウント登録作業全16種類のうち、認証・コスト・証跡設定を中心に10種類の作業を紹介しました。次回はセキュリティ関連の設定が中心となる、残り6種類の作業を紹介します。

上野史瑛

執筆者 上野史瑛

AWSを中心としたクラウドの導入、最適化を専門に行っています。

お問い合わせ

当社のサービス・製品に関するご相談やご質問、お見積りのご依頼など、こちらからお問い合わせください。