Upgrade to Pro — share decks privately, control downloads, hide ads and more …

S3の情報漏洩からデータを守るには?CloudFormationで作るS3標準テンプレートのご紹介

 S3の情報漏洩からデータを守るには?CloudFormationで作るS3標準テンプレートのご紹介

Security-JAWS #31の登壇資料です。

Chiharu-Tsuboi

November 15, 2023
Tweet

More Decks by Chiharu-Tsuboi

Other Decks in Technology

Transcript

  1. 自己紹介 名前: 坪井 千春 所属: 株式会社セゾン情報システムズ 仕事: アーキテクト、CCoE 好きなAWSサービス: Amazon

    ECS(Amazon Elastic Container Service) 経歴: ・SIerとしてJAVAメインのアプリ開発を19年 ・直近6年程度AWSを利用 ・2022年4月からアプリを離れてAWSエンジニアとして活動 2
  2. 情報漏洩の事例 5 意図せず公開状態となる事例が絶えない ◆2022年7月 海外 最大3TBの個人情報 空港の従業員が所有する機密データが流出。約3TBのデータを含むAWS S3バ ケットが認証不要な公開状態となっていた。2018年までさかのぼる空港従業員 の記録、IDカードの写真、氏名、写真、職業、国民ID番号などの個人を特定で

    きる情報(PII)で構成されていた。 ◆2022年6月 国内 622人の個人情報 旧サーバから AWSサーバへのデータ移行時に、AWS S3バケットにお客様情報を バックアップとして保管していたが、S3バケットを公開設定としていたために 第三者が閲覧可能な状態となっていた
  3. 最近の統計 7 ミスコンフィギュレーションに起因した事故が多い OWASP TOP10 2023年6月に発表された「OWASP API セキュリティリスクトップ 10 –

    2023」に おいて「セキュリティの設定不備」が8位 1.オブジェクトレベルの認可の不備 2.認証の不備 3.オブジェクトプロパティレベルの認可不備 4.無制限なリソース消費 5.機能レベルの認可の不備 6.機密性の高いビジネスフローへの無制限アクセス 7.サーバーサイドリクエストフォージェリ 8.セキュリティの設定不備 9.不適切な資産管理 10.安全でないAPIの使用 https://owasp.org/API-Security/editions/2023/en/0x11-t10/
  4. なぜ? 8 S3は設定誤りがおきやすいと思われる • S3は簡単に利用でき、多機能であるがゆえに設定ミスが起こりやすい • 静的ウェブサイトホスティング • パブリックアクセスの許可 •

    デフォルトではバケットポリシーが無い • 2023年4月から全ての作成方法でS3パブリックアクセスブロック有効、ACL無効を デフォルト化 • セキュリティ対策 • AWS Config • Amazon Guard Duty • Amazon Macie など多層防御として方法は多々あるが、今回は・・
  5. 主な機能①:アクセスコントロール 15 リソースベースポリシーによる明確なアクセス制御 ⚫パブリックアクセスブロック設定 ⚫指定により、VPC Endpoint経由限定 ⚫アクセス可能なIAMロールを限定 暗黙拒否を利用しない明示的アクセスコントロール ・必要最低限のアクセスを明示的に許可 ・それ以外のアクセスを明示的に拒否

    ↓ 指定が無ければ「AdministratorAccess」ポリシーが 付与されたロールも拒否 許可 拒否 指定なし 許可 許可 拒否 許可 拒否 拒否 拒否 拒否 指定 なし 許可 拒否 拒否 (暗黙的拒否) アイデンティティベースポリシー リソースベースポリシー 利用しない
  6. アクセス可能なIAMロールを限定 最小権限の原則に従って権限を分割 Admin • バケット自体に対する管理権限を有する • バケット内のオブジェクトは書き込みできない Writable • バケット内のオブジェクトに対する管理権限を有する

    • バケット自体の設定(バケットポリシー等)は書き込みできない ReadOnly • オブジェクトの参照専用 • バケット自体の設定やオブジェクトの書き込みはできない 16 バケット自体 オブジェクト Admin Read/Write × Writable × Read/Write ReadOnly × Read アプリ(EC2等)は「Writable」とすることで、万が一マルウェアに乗っ取ら れた場合もバケットポリシーの変更はできず、被害の拡大を防ぐことができる
  7. IAMロールによるアクション制限 17 各ロール権限範囲のアクションを定義 権限一覧(一部を抜粋) • S3のアクションは130種類 • リソースベースポリシーで記載できないア クション49件を除く81件に対し、各ロール に権限を定義

    ・ ・ ×81件 No アクション Admin Writable ReadOnly 1 AbortMultipartUpload ◦ 2 BypassGovernanceRetention ◦ 3 DeleteBucket ◦ 4 DeleteBucketPolicy ◦ 5 DeleteBucketWebsite ◦ 6 DeleteObject ◦ 7 DeleteObjectTagging ◦ 8 DeleteObjectVersion ◦ 9 DeleteObjectVersionTagging ◦ 10 GetAccelerateConfiguration ◦ ◦ ◦ https://docs.aws.amazon.com/ja_jp/service-authorization/latest/reference/list_amazons3.html
  8. バケットポリシー概要 Not〇〇により想定外アクセスを明示拒否 1. 想定外アクセスを全拒否 • Admin,Writable,Readonlyロール以外(StringNotEquals)の全 てのプリンシパルに対して全てのアクションを拒否 2. Adminロールに対するポリシー設定 •

    権限を有するアクションを許可 • 上記以外(NotAction)を拒否 3. Writableに対するポリシー設定 • 権限を有するアクションを許可 • 上記以外(NotAction)を拒否 4. Readonlyに対するポリシー設定 • 権限を有するアクションを許可 • 上記以外(NotAction)を拒否 18