AWSアカウントのセキュリティを改善するための10か条 

この記事を書いたチーム:chocochip
AWSアカウントのセキュリティを改善するための10か条 

目的:

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

クラウドセキュリティの向上 

背景:

かつてはオモチャと揶揄されたクラウド技術ですが、今や世界中のあらゆる企業・公的機関がAWSをはじめとするクラウド技術を採用するというのが現状です。 

クラウド技術なくしてITインフラは成り立たないとも言えます。 そこでクラウド技術、今回はAWSに特化して、セキュリティを改善するためにやるべきこと、考えておく必要があることについて述べていきます。 

 

1.アカウント情報の正しい保持

  •  AWSはAWSアカウントについて連絡が必要なとき、AWSマネジメントコンソールで設定されたEメールアドレス、代替連絡先の中で指定されたEメールアドレスになる
  • 全てのEメールアドレスはエイリアスのアドレスにするべき
    (個人に依存しないように)
  • AWSからEメールが届いたときに返信可能であるか確認するプロセスも必要
    (指定しているEメールアドレスが有効かどうかの確認の意味で) 

 

2.多要素認証(MFA)の利用 

  • ルートユーザーおよびIAMユーザーにMFAを設定する
  • AWSへのアクセス制御にAWS IAMアイデンティティセンターを使っていたり、企業内IDストアとフェデレーションを指定しているときには、MFAを Identity Provider(IdP)側で設定する 

3.認証情報等をハードコードしない 

  • 認証情報・シークレット情報の一時的な利用にはIAMロールを使う
  • 長時間利用時には、認証情報等をハードコードしたり、ソースコードの中に埋め込んだりしない
  • 長時間のシークレット情報管理には、AWS Secret Managerが利用可能 

4.セキュリティグループに制限をかける 

  • セキュリティグループはAWS上にプロビジョニングされたリソースに対する ネットワークアクセス制御の重要な方法
  • 最低限必要なポートのみが開いていることを確認することが、セキュリティ観点の基本的なアプローチ
  • AWS Firewall Managerを使用することで、自動的にAWS WAFのルールをインターネットに接続可能なAWSアカウント内のリソースに適用することが可能 

5.明確なデータポリシーを持つ 

  • セキュリティにとってデータの分類は非常に重要
    (全てのデータの価値が同じというわけではないから)
  • Amazon S3ブロックパブリックアクセスを全てのアカウントで設定して、 S3からデータが共有されることを禁止する
  • 2つの異なるIAMロールをKMSによる暗号化用と複合用に設定する
    (これによりデータの作成「暗号化」とデータのレビュー「複合」を分離できる) 

6.CloudTrailログの集約化 

  • 強固なセキュリティ計画にとって、ロギングとモニタリングは重要な部分
  • 予期せぬ環境の変化を調査したり、セキュリティ改善のための継続的な分析はデータにアクセスできてこそ実現可能になる
  • AWSはログを書き出して保存することを推奨している
    (特にCloudTrailをAWSアカウントのS3バケットにロギングすること)
  • CloudTrailログが集約化されたら、ログアーカイブ専用のアカウントを使ってCloudWatch LogsやAWSロードバランサーからのログの集約化も可能  

7.IAMロールを確認する 

  • AWS環境において継続的に構築を続けていると、後から確認したときに 不要と気づくIAMロールを複数作成してしまっていることがある
  • AWS IAM Access Analyzerにより自身のAWSアカウントの外部に共有されているAWSリソースを見つけ出すことが可能
  • SecurityHubやオープンソースのProwlerなどを利用して定期的にIAMロールと権限を確認することで、組織のガバナンス、リスク、コンプライアンスポリシーに適合しているか可視化することが可能になる   

8.Findings/結果に対してアクションをとる 

  • Security Hub、GuardDuty、IAM Access AnalyzerはAWSアカウント上の対応可能なFindings/結果を提供するマネージドなAWSサービス
  • これらのサービスの有効化は簡単で、複数のアカウントの情報を統合することが可能だが、有効化するのは最初のステップに過ぎない
  • 検出されるFindings/結果に対してどのようなアクションをとるべきか確認しておくことが必要     

9.キーをローテーションする 

  • Security Hubが提供する機能のひとつが、AWSアカウントのコンプライアンス状況をCISベンチマークを使用して可視化すること
  • 上記の機能の例として、作成されてから90日以上経過したアクセスキーを持つIAMユーザーを見つけて、定期的にローテーションすることが可能 
  • ユーザーがフェデレーション経由でAWSにアクセスしている場合は、ユーザーにアクセスキーを発行して与える必要がなくなる 
    (ユーザーはIdPで認証されてAWSアカウント上のIAMロールを引受ける) 
  • 上記の結果、長期間有効な認証情報が必要なければ、ユーザーはIAMロールに紐づいた短期間のみ有効な認証情報を利用することができる 

10.セキュリティに関する開発サイクルに参加する 

  • ビジネスソリューションを安全に立ち上げることは、組織の中で全ての部門のスタッフの役割
  • セキュリティは全てのスタッフの仕事
  • セキュリティに関するアクションを最も確実に進めていく方法は、全ての組織におけるセキュリティ専門家ができること、作っていくこと
  • これは、AWS、クラウドに限らず、IT関連業務に携わる全ての人にあてはまる 

      

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス