- 記事一覧/
AWSアカウントを作成したら最初にやるべきこと
目次
みなさん、こんにちは。今回はAWSアカウントを新たに作成した後にどのようなシステムを構築するとしても、実際にシステムを構築していく前にかならず設定しておくべき、設定しておいた方がよい項目について紹介していきたいと思います。
今回紹介する項目の中には、セキュリティなどの強化のために有償サービスの活用をオススメする項目もありますが、無理にすべての項目へ準拠してほしいというわけではございません。あくまで本資料に掲載するベストプラクティスを理解した上で、システム特性に合わせたビジネス的な判断を行うことをゴールとし、その判断材料として本資料をご活用ください。
なお、本資料はシングルアカウント構成を前提とし、AWS Organizationsを活用したマルチアカウント構成でのみ利用可能な機能1については除外して紹介しています。
セキュリティ観点 #
1. ルートユーザの保護 #
AWSアカウント作成時に登録したメールアドレスとパスワードでログインするルートユーザは、契約情報の参照などを含めたすべてのAWS上の操作ができる非常に強力な権限を持っています。
ルートユーザが不正利用されてしまうととても大きな事故につながってしまうため、セキュリティ対策として多要素認証(MFA)の有効化、およびアクセスキーの削除を行った上で原則ルートユーザの使用はしないことを強くオススメします。
絶対にやるべきこと
- ルートユーザのアクセスキー削除
- ルートユーザの代わりにIAMユーザの作成
- ルートユーザの普段使い禁止
ぜひやってほしいこと
- ルートユーザに対する多要素認証(MFA)の有効化
2. IAMユーザの作成と保護 #
AWS操作を行うIAMユーザは、操作をした個人を特定しやすくするためにも利用者ごとにIAMユーザを作成し、セキュリティ対策として多要素認証(MFA)の有効化をオススメします。また、パスワードポリシーをより堅牢なルールへ変更することでセキュリティ強化を図ることも可能なため必要に応じて設定することをオススメします。
また、個人ごとにIAMユーザを作成する場合は利用者の追加/削除時の操作ミスを低減するため、アクセス権限はIAMユーザごとに付与するのではなく、IAMグループごとに付与を行った後に適切なIAMグループへIAMユーザを所属させるといった方法をオススメします。
ぜひやってほしいこと
- 個人ごとのIAMユーザの作成
- IAMユーザに対する多要素認証(MFA)の有効化
- IAMユーザ単位ではなくIAMグループ単位の権限管理
必要に応じてやってほしいこと
- IAMユーザのパスワードポリシー強化
3. AWS CloudTrailの設定 #
CloudTrailは、AWSに対するAPIコールイベントの履歴を記録するサービスです。いつ/だれが/なにに/どんな操作をしたのかが記録されているため監査証跡やトラブル発生時の解析に活用できます。デフォルトでも90日間の履歴を参照することは可能ですが、S3への長期保存の設定(1つのS3へのデータコピーまでは無料で、2つ以上のS3へコピーする際は有料)をしておくことをオススメします。
また、CloudTrail Insightsを有効化することで機械学習を用いた異常なアクティビティの検出ができるようになります。有料ではありますがセキュリティ強化のために有効化しておくことをオススメします。
絶対にやるべきこと
- CloudTrailをS3に長期保存(1つのS3までは無料)
ぜひやってほしいこと
- CloudTrail Insightsの有効化(有料)
4. AWS Configの有効化 #
Configは、AWSリソースに対する設定変更の履歴を記録するサービスです。インシデント発生時などの調査に有用なため有効化することを強くオススメします。また、Configルールの活用によってAWSリソースがあらかじめ設定したルールに準拠しているか(例: 特定タグ情報が設定されているかなど)を検知することが可能となります。さらに修復アクションも設定することで準拠していないリソースに対して自動で修復する機能を実装することもできるため必要に応じて設定しておくことをオススメします。
なお、セキュリティ面の脆弱な設定に対するチェック機構は後述するSecurity Hubの方に任せるケースも最近は多くなってきており、Security Hubとの使い分けとしてConfigルールではタグ運用などの社内/組織内ルールへの準拠という形での活用としているケースもあります。
ぜひやってほしいこと
- Configの有効化(有料)
必要に応じてやってほしいこと
- Configルールおよび修復アクションの設定(有料)
5. AWS Security Hubの有効化 #
Security Hubは、各種セキュリティサービス(Config、GuardDuty、IAM Access Analyzerなど)の検出結果を取り込み、PCI DSSなどのセキュリティ基準への準拠状況などを1か所で確認することができるサービスです。非常に大きな組織ではない限りは1アカウント、1リージョン、1か月10,000件までの各種セキュリティサービスの検出結果の取り込み無料枠で十分であり、各種セキュリティサービスの検知結果を一か所で確認できるようにするだけでも有用なことからSecurity Hubの有効化まではしておくことをオススメします。
セキュリティ基準に準拠しているかのチェック機能の有効化や、EventBridge経由で修復アクションを起動するといった設定については必要に応じて活用してください。
ぜひやってほしいこと
- Security Hubの有効化
必要に応じてやってほしいこと
- セキュリティ基準の有効化(有料)
- EventBridge通知および修復アクションの作りこみ(有料)
6. Amazon GuardDutyの有効化 #
GuardDutyは、各種イベントログ(CloudTrail、VPCフローログ、DNSクエリログなど)を元に悪意のある操作や不正な動作を検出してくれるサービスです。有料サービスですが最初の30日間は無料で利用できますのでセキュリティ対策として有効化しておくことをオススメします。無料期間中のGuardDuty画面から、無料期間終了後にどの程度の費用が発生するかを確認することができるため、価格に見合わないと判断した場合は無効化してください。
なお、GuardDutyでは不正なイベントを検知した際はマネジメントコンソールから確認できるものの、メールなどでの通知が必要な場合はEventBridgeからSNSをキックするなどの作りこみが必要となります。
ぜひやってほしいこと
- Amazon GuardDutyの有効化(初回の30日間は無料)
- GuardDuty画面から無料期間終了後の費用を確認
必要に応じてやってほしいこと
- アラート通知の作りこみ(有料)
7. Amazon Detectiveの有効化 #
Detectiveは、前述したGuardDutyの有効化を前提としたセキュリティインシデントの調査をより迅速かつ効率的にするためのサービスです。有料サービスですが最初の30日間は無料で利用できますのでセキュリティ対策として有効化しておくことをオススメします。無料期間中のDetective画面から、無料期間終了後にどの程度の費用が発生するかを確認することができるため、価格に見合わないと判断した場合は無効化してください。
ぜひやってほしいこと
- Amazon Detectiveの有効化(初回の30日間は無料)
- Detective画面から無料期間終了後の費用を確認
8. AWS IAM Access Analyzerの有効化 #
IAM Access Analyzerは、外部のAWSアカウントと共有しているIAMロールやS3バケットなどのAWSリソースを一覧で確認できるようにするサービスです。本機能は追加料金なしで利用できるため、意図しない外部への許可設定を検知できるようにするためにも有効化しておくことをオススメします。
ぜひやってほしいこと
- システムを構成する対象リージョンのIAM Access Analyzerの有効化
必要に応じてやってほしいこと
- 上記以外のリージョンのIAM Access Analyzerの有効化
9. デフォルトVPCの削除 #
AWSアカウントにはデフォルトVPCが各リージョンに1つずつ用意されており、デフォルトVPCにはサブネットやセキュリティグループも用意されています。誤ってこれらを活用してしまうことで意図しない通信を許可してしまうリスクがあることから、利用しないデフォルトVPCは削除しておくことをオススメします。
ぜひやってほしいこと
- システムを構成する対象リージョンのデフォルトVPCの削除
必要に応じてやってほしいこと
- 上記以外のリージョンのデフォルトVPCの削除
コストの管理/最適化観点 #
1. IAMユーザに対するコスト情報へのアクセス有効化 #
コストに関するサービスの一部は、デフォルトだとルートユーザにしかアクセスする権限がありません。一方で、セキュリティ観点からルートユーザの使用は原則しない方針とすべきであることから、IAMユーザからもコストを確認できるようにルートユーザのマイアカウント画面から有効化しておくことを強くオススメします。
絶対にやるべきこと
- IAMユーザに対するコスト情報へのアクセス有効化
2. AWS Cost Explorerの有効化 #
Cost ExplorerはAWSの利用コストを可視化するサービスで、マネジメントコンソールを介してルートユーザがはじめてCost Explorerの画面にアクセスすることで、本AWSアカウントに対するCost Explorer機能が有効化されるようになっています。サービスごとの月別、日別のコストを確認する分には無償で利用することができるため、 IAMユーザに対するコスト情報へのアクセス有効化設定と併せて実施しておくことをオススメします。
絶対にやるべきこと
- Cost Explorerの有効化
3. 予算の設定とアラートの有効化 #
AWS BudgetsはAWSコストに対する予算を設定し、その実績値や予測値があらかじめ定めた閾値を超えた際にメールで通知するためのサービスです。
2つの予算設定までは無料となるため、意図しない利用料の増加などの検知のためにも少なくとも1つは予算の設定と、いくつかのチェックポイント(たとえば、実際の支出が予算に対して50%、80%、100%を超えた時点や月末時点の支出予測値が予算に対して100%を超えるだろうと判断した時点でアラートをあげるなど)を設定しておくことをオススメします。
絶対にやるべきこと
- 少なくとも1つの予算の登録(2つの予算設定までは無料)
- アラート閾値の設定
- 通知先メールアドレスの登録
4. Cost Anomaly Detectionの有効化 #
Cost Anomaly Detection(コスト異常検出)は機械学習を用いて通常のパターンとは違う異常なコストの発生を検知するサービスで、異常と判断されたコストの量や比率があらかじめ定めた閾値を超えた際にアラートをあげることが可能です。
追加料金なしで利用することが可能なため、誤った操作やアカウント乗っ取りなどによる異常なコスト発生をいち早く検知できるようにするためにも有効化しておくことをオススメします。
ぜひやってほしいこと
- Cost Anomaly Detectionの有効化
5. Compute Optimizerの有効化 #
Compute Optimizerは稼働するEC2インスタンスの統計データを分析して、過剰なスペックを搭載しているインスタンスやリソース不足によりパフォーマンスに影響が出ているインスタンスを検出し、最適なインスタンスタイプやインスタンスサイズの提案を実施してくれるサービスです。
過去14日間の統計データをベースにした提案であれば、追加料金なしで利用することが可能なため有効化しておくことをオススメします。
ぜひやってほしいこと
- Compute Optimizerの有効化
ご参考)料金 - AWS Compute Optimizer
その他 #
1. AWSサポートへの加入 #
デフォルトでは無料のベーシックサポートが付与されており、料金やアカウントに対する問い合わせを平日9時~18時で実施することができるものの、ベーシックサポートでは障害対応や技術的なサポートを受けることはできません。もしこれらのニーズがある場合は、ニーズに合った有償プランのサポート加入をオススメします。
必要に応じてやってほしいこと
- 有償プランのサポートへの加入
終わりに #
本資料ではAWSアカウントを新たに作成した後にどのようなシステムを構築するとしても、 実際のシステム構築前にかならず設定しておくべき/設定した方がよい項目について紹介してきました。
なお、本資料では触れておりませんが、AWS環境の設定以外にも実際のシステム環境前にAWSリソースの命名規則やタグ付け戦略などについても、あらかじめおおまかに検討しておくと後続フェーズが楽になりますのでこの段階で検討しておくのもオススメです。
最後に、本資料に記載の内容は実際のシステムを構築する前にやっておくべき項目であり、あくまでここからがスタートラインとなります。実際にシステムを構築する際には、たとえば、必要最低限のポート番号のみを許可するようにセキュリティグループを設定するなどを引き続き検討していく必要がございます。その点ご承知おきください。
参考文献 #
- AWS は、米国その他の諸国における Amazon.com, Inc. またはその関連会社の商標です。
- その他、記載されている会社名および商品・製品・サービス名は、各社の商標または登録商標です。
Service Control Policy(SCP)、Control Towerなど ↩︎