[レポート]STG303:Deep Dive on Amazon S3 セキュリティーとマネージメント #reinvent

STG303 - Deep Dive on Amazon S3 Security and Management に参加したレポートをお届けします。
2018.12.17

こんにちは。コンサルティング部の崔です。

STG303:Deep Dive on Amazon S3 Security and Management に参加し、S3についておさらいしてきましたのでレポートをお届けします。

セッション概要

In this session, learn best practices for data security in Amazon S3.

We discuss the fundamentals of Amazon S3 security architecture and dive deep into the latest enhancements in usability and functionality.

We investigate options for encryption, access control, security monitoring, auditing, and remediation.

このセッションでは、Amazon S3のデータセキュリティのベストプラクティスについて学びます。

Amazon S3のセキュリティアーキテクチャの基本について議論し、使いやすさと機能性に関する最新の強化について深く掘り下げます。

私たちは、暗号化、アクセス制御、セキュリティ監視、監査、修復のオプションを調査します。

スピーカー

  • PD Dutta - Sr. Product Manager, Amazon Web Services

  • Christopher Schultz - Director, Software Engineering, Capital One

資料

スライド

動画

セッションメモ

アジェンダ

  • S3 アクセスコントロールのメカニズム
  • S3 ブロックパブリックアクセス
  • どのようにしてS3はリクエストを認証しているか
  • S3暗号化
  • S3におけるセキュリティモニタリング
  • Capital One社よりスペシャルゲスト

どのようにすればS3上のファイルが安全だと保証できるのか

  • 最小の権限 - セキュリティのベストプラクティス
    • 最小の権限でスタート
    • 必要に応じて追加の権限を与える
  • 適切な権限をセットするには、いくつかの調査が必要
    • 特定のサービスはどのactionsをサポートしているか
    • 特定のtaskのために何が要求されるか
    • これらのactionsを実行するためにどのようなpermissionsが要求されるか

S3 アクセスコントロールのメカニズム

  • IAM ポリシー
  • S3 バケットポリシー
  • S3 ACL
  • S3 VPCエンドポイントポリシー
  • Pre-Signed URL

IAM ポリシーとバケットポリシー

  • IAM ユーザーポリシー
    • このIAM ユーザーは何が出来る?
    • IAM 環境でアクセスコントロールが出来る
    • すべてのAWSサービスに対して制御可能
  • S3 バケットポリシー
    • S3 バケットに対して、誰がアクセス出来る?
    • S3 環境でアクセスコントロールが出来る
    • IAM ロールを使わずに、S3 バケットに対してクロスアカウントアクセスが可能

S3 ACL

  • ACLはアクセス許可を設定
  • XMLフォーマット
  • ポリシーと比較した場合、有限の権限セット

VPC Endpoint

  • NATゲートウェイ等を使わずにアクセス可能
  • VPC外部からのS3バケットへのアクセスを制御

Pre-signed URLs

  • IAM ユーザーやIAM ロールの許可権限を利用
  • バケット名やオブジェクト、GET or PUT、有効期限を付与したURLを生成
  • 有効期限まで利用可能
  • 注意点:URLを知る人なら誰でもアクセス可能

S3 ブロックパブリックアクセス

  • 新規のACLの公開設定をブロック
  • 既存の公開設定のACLを削除
  • 新規の公開設定のバケットポリシーをブロック
  • 既存の公開設定及びクロスアカウントアクセスのバケットポリシーをブロック

S3 ブロックパブリックアクセスAPI

  • PUT PublicAccessBlock
  • GET PublicAccessBlock
  • DELETE Public AccessBlock
  • GET BucketPolicyStatus

S3 暗号化

  • サーバーサイド暗号化
    • SSE-S3
    • SSE-KMS
    • SSE-C
  • クライアントサイド暗号化
  • S3暗号化
    • バケットレベルで一度設定
    • 新しいオブジェクトには自動で暗号化
    • シンプルなコンプライアンス
    • SSE-S3とSSE-KMS
    • S3への暗号化をサポートしていないアプリケーションに対して、暗号化をサポート

S3におけるセキュリティモニタリング

  • バケットアクセスコントロール
  • Trusted Advisor
  • AWS Config rules
  • Amazon Macie
  • S3 インベントリー
  • S3 サーバーアクセスログ
  • AWS CroudTrail

Capital Oneの事例

  • Why Amazon S3 ?
    • たいていのユースケースでS3が開発者にとって、利用しやすく理解しやすい
    • 必要に応じていすケース可能
    • 低い障壁
    • ロギング
  • マルチアカウントアクセスパターン
    • どのようにしてPCI-DSS標準のデータをS3に置くか

ベストプラクティス

  • 常に最小権限の原則に従うこと
  • 大抵のユースケースで公開設定は要求されない。ブロックパブリックアクセスを有効にすることをお薦め
  • Deny設定からはじめる。明示的なDenyは許可より優先される
  • データを守るために暗号化を行う
  • AWS Trusted Advisor, AWS Config, AWS CloudTrail, S3 Inventory といったツールを利用して監視/監査を行うこと

感想

Amazon S3を利用する場合、公開設定等を間違えるととんでもないセキュリティインシデントになるケースがあります。

re:Invent前に発表されたS3 Block Public Accessを利用することや、常に最小権限の付与に留めること、暗号化を行うこと、AWSが提供するサービスを利用して監視/監査を行うことなどをベストプラクティスとして、正しく権限設定を行うようにしましょう。

以上です。