LoginSignup
0
2

More than 3 years have passed since last update.

AWSのやっておくべきセキュリティ対策

Last updated at Posted at 2020-09-18

AWSのやっておくべきセキュリティ対策として、基本的なことだが 大事なことなのでまとめておこうと思います。

AWS Identity and Access Management

IAMによる認証

  • rootユーザには、強力なパスワードと多要素認証(MFA)を設定
  • 基本的には、rootユーザを使用しない
  • rootユーザのAccess Keyが発行されていた場合は削除する
  • IAMユーザのパスワードポリシーには強力なものを設定
  • IAMユーザのパスワードやAccess Key/Secret Access Keyは定期的にローテーションする
  • 認証情報の利用状況はIAMのCredential Report機能で定期的に確認

IAMによる権限設定

  • 全てのアクセスはデフォルトで拒否(Deny)となっているため、必要な権限のみ明示的に許可(Allow)設定を行う
  • アクセス権限の優先度は 暗黙的なDeny(デフォルトDeny) < 明示的なAllow < 明示的なDeny
  • IAMポリシーは最小限のアクセス権を付与

監査

  • AWS CloudTrailによる証跡取得を行う
    • 誰が、いつ、どのような操作(AWS Console、CLI、API等)したかを記録
    • AWS CloudTrail自体の料金は無料
  • AWS ConfigによるAWSリソースの設定を記録し評価を行う
    • AWSリソースの変更履歴、構成情報を管理
  • AWS Config RulesでAWSリソースがあるべき状態になっているかを自動評価
    • 例)Security GroupでSSHをフルオープンにしていないか
    • 例)公開状態になっているS3はないか
    • 例)全てのIAMユーザでMFAが有効になっているか

IAMロール

  • EC2にはIAMロールを利用する
    • AWSサービスに対してAWS操作権限を付与し、IAMユーザの認証情報をOSやアプリに持たせる必要がなく、認証情報の漏洩リスクを低減
    • 自動的に認証情報(Access Key/Secret Access Key)がローテーションされる
    • 認証情報はAWS Security Token Service(STS)により生成
  • IAMロールを使えるものは全てIAMロールを利用
  • オンプレからAWSリソースを操作する場合等、致し方ない場合のみIAMユーザを利用
  • IAMユーザやアクセスキーは共有しない
  • git-secretsを使用しクレデンシャル情報の漏洩防止

S3 Access Management

  • 必要以上に公開範囲の広いポリシーやACLを設定しない
    • EC2やAWSサービスからのアクセスはIAMロールで行う
  • 外部へ開放されているバケットを定期的にチェックする
    • AWS Trusted Advisor
    • AWS IAM Access Analyzer(Access Analyzer for S3)

発見的統制

  • 各種AWSサービスのログを有効化する
    • CloudTrail:誰が、いつ、どのような操作(AWS Console、CLI、API等)したかを記録
    • VPC Flow Logs:VPCのネットワークインタフェース間のIPトラフィックをキャプチャ
    • Lambda:Lambda Functionに関するエラー出力、標準出力等のログを収集
    • CloudWatch Logs Agent:EC2上で動作するOS、ミドルウェア、アプリケーション等のログをCloudWatchへ収集

データ保護

  • 保存時のデータ暗号化(Encryption at Rest)
    • サーバサイド暗号化(SSE)ではAWS Key Management Service(KMS)キーを使用し暗号化
    • クライアントサイド暗号化(CSE)ではKMSでCustomer Master Key(CMK)を使用し暗号化
  • 通信の暗号化(Encryption in Transit)
    • SSL通信を利用
    • AWS Certificate Managerで証明書を発行(無料)、自動管理
    • CloudFrontとELB間をHTTPSにし、ELBをSSH Terminationとする
  • DB接続情報やクレデンシャル等はセキュアに保管する
    • AWS Systems Manager Parameter Store
    • AWS Secrets Manager
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2