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

閉域要件におけるEC2のアクセス制御 ~SaaS・PrivateLinkの罠とNetwork ...

閉域要件におけるEC2のアクセス制御 ~SaaS・PrivateLinkの罠とNetwork Firewallの活用~

Security-JAWS第25回での登壇資料です。
イベントURL:https://s-jaws.doorkeeper.jp/events/137234
登壇動画URL:https://youtu.be/QFIadED_R_o?t=7596

More Decks by みずほリサーチ&テクノロジーズ株式会社 先端技術研究部

Other Decks in Technology

Transcript

  1. 閉域要件におけるEC2のアクセス制御 ~SaaS・Private Link の罠と Network Firewall の活用~ 2022.5.30 Security-JAWS 第25回

    Copyright (c) Mizuho Research & Technologies, Ltd. All Rights Reserved. (免責事項) 当資料は情報提供のみを目的として作成されたものであり、商品の勧誘を目的としたものではありません。 本資料は、当社が信頼できると判断した各種データに基づき作成されておりますが、その正確性、確実性を 保証するものではありません。また、本資料に記載された内容は予告なしに変更されることもあります。
  2. 自己紹介  氏名:松尾 優成(まつお ゆうせい)  所属:みずほ RT 先端技術研究部 兼

    プロジェクト推進部  役割:  AWS社内案件の設計・構築サポート  みずほグループ横断コミュニティ ”コクリエ” の運営
  3. 本日話すこと  SaaS・Private Link の罠と Network Firewall の活用  閉域構成での

    EC2 アクセス制御(Session Manager 利用)  IAM ポリシー  IAM ロールの信頼ポリシー  VPC エンドポイントポリシー
  4. 本日話すこと(前半戦)  SaaS・Private Link の罠と Network Firewall の活用  閉域構成でのEC2アクセス制御(Session

    Manager利用)  IAMロールの信頼ポリシー  VPCエンドポイントポリシー  IAMポリシー
  5. AWS Network Firewall とは・・・  URL フィルタリングなど N/W 保護の 機能をもつマネージドサービス

     専用の Firewall Endpoint を サブネットに設置して利用  柔軟にルールを設定でき、 様々な通信を監査可能 https://aws.amazon.com/jp/blogs/news/networking-and- content-delivery-deployment-models-for-aws-network-firewall/
  6. 構成概要 VPC Corporate data center ENI EC2 VPC Transit Gateway

    Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway SaaS Manager Server Security Patches Rule Allowed URLs Direct Connect Anti-virus Agent
  7. 構成概要 VPC Corporate data center ENI EC2 VPC Direct Connect

    Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway SaaS Manager Server Security Patches Rule Allowed URLs Anti-virus Agent  オンプレミスから渡された機微情報を EC2 で分析して還元するシステム (インターネットからのインバウンドアクセスなし) Direct Connect Transit Gateway
  8. 構成概要  EC2 にウィルス対策ソフトのエージェントを導入。  エージェントは定義ファイルの更新など、マネージャーサーバーとの通信が必須。 VPC ENI EC2 VPC

    Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate data center Direct Connect
  9. 構成概要  エージェントは Firewall Endpoint を経由して、 インターネット上のマネージャーサーバーと通信。 VPC ENI EC2

    VPC Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway SaaS Manager Server Security Patches Rule Allowed URLs Corporate data center Direct Connect Anti-virus Agent
  10. 構成概要  ステートフルドメインリストフィルタで、宛先ドメインを制限。  リストにないドメインに対しては、アクセス拒否。(ホワイトリスト形式) VPC ENI EC2 VPC Transit

    Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway SaaS Manager Server Security Patches Rule Allowed URLs Anti-virus Agent Corporate data center Direct Connect
  11. 当初想定していた構成 ※オンプレ部分は割愛 VPC SaaS VPCe EC2 VPC Transit Gateway SaaS

    Manager Server VPC VPC Anti-virus Agent PrivateLink North Virginia Region Tokyo Region VPC Peering Private Hosted zone
  12. 当初想定していた構成 VPC SaaS VPCe EC2 VPC Transit Gateway SaaS Manager

    Server VPC VPC Anti-virus Agent PrivateLink North Virginia Region Tokyo Region VPC Peering Private Hosted zone  マネージャーサーバーとの閉域接続を実現するため、Private Link を利用。
  13. 当初想定していた構成 VPC SaaS VPCe EC2 VPC Transit Gateway SaaS Manager

    Server VPC VPC Anti-virus Agent PrivateLink North Virginia Region Tokyo Region VPC Peering Private Hosted zone  マネージャーサーバーとの通信用に、バージニア北部リージョンで サービス側が VPC エンドポイントを提供。
  14. 当初想定していた構成 VPC SaaS VPCe EC2 VPC Transit Gateway SaaS Manager

    Server VPC VPC Anti-virus Agent PrivateLink North Virginia Region Tokyo Region VPC Peering Private Hosted zone  本来は国内リージョンのみを利用したかったものの、 SaaS Private Linkの制約により、やむなく海外リージョンも利用。
  15. 当初想定していた構成 VPC SaaS VPCe EC2 VPC Transit Gateway SaaS Manager

    Server VPC VPC Anti-virus Agent PrivateLink North Virginia Region Tokyo Region VPC Peering Private Hosted zone  リージョン間接続は、VPC Peering を採用。
  16. 当初想定していた構成 VPC SaaS VPCe EC2 VPC Transit Gateway SaaS Manager

    Server VPC VPC Anti-virus Agent PrivateLink North Virginia Region Tokyo Region VPC Peering Private Hosted zone  Transit Gateway のクロスリージョン接続も検討したものの、 僅かにコストが嵩むため、 断念。(ペストプラクティスでない実感はあった・・・)
  17. 当初想定していた構成 VPC SaaS VPCe EC2 VPC Transit Gateway SaaS Manager

    Server VPC VPC Anti-virus Agent PrivateLink North Virginia Region Tokyo Region VPC Peering Private Hosted zone  上記構成で検証し、問題なく利用できることを確認!
  18. SaaS の仕様変更が発生していた  マネージャーサーバーのエンドポイント URL が変更。  新 URL は

    Private Link に未対応※で、インターネット経路が必須。 検証済みと油断していたため、気づくのが遅れた・・・ ※2021年4月時点 SaaS Manager Server PrivateLink 旧 URL 新 URL Internet Gateway 必須!
  19. 構成概要(再掲) 無事に構築できました! VPC ENI EC2 VPC Transit Gateway Direct Connect

    Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate data center Direct Connect
  20. 構成概要(再掲) 無事に構築できました! VPC ENI EC2 VPC Transit Gateway Direct Connect

    Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs 構成変更について、 担当者が良い感じに 社内説明してくれました! Corporate data center Direct Connect
  21. Network Firewall 導入の嬉しい点① 基本構成が東京リージョンのみで完結した!※バックアップのみ大阪を利用 VPC ENI EC2 VPC Transit Gateway

    Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Tokyo Region Corporate data center Direct Connect
  22. Network Firewall 導入の嬉しい点② アウトバウンドが集約され、ハブ & スポーク型の N/W 構成になった! VPC ENI

    EC2 VPC Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Tokyo Region Corporate data center Direct Connect
  23. Network Firewall 導入の嬉しい点③ 運用課題だった閉域要件の OS パッチ適用が、楽になった! VPC ENI EC2 VPC

    Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Tokyo Region Corporate data center Direct Connect
  24. AWS API のアクセスも Network Firewall 経由? VPC ENI EC2 VPC

    Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent Rule Allowed URLs Tokyo Region VPCe ? ? ? ? Corporate data center Direct Connect
  25. AWS API のアクセスも Network Firewall 経由? VPC ENI EC2 VPC

    Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent Rule Allowed URLs Tokyo Region VPCe ? ? ? ? Corporate data center Direct Connect S3 など通信量が大きくなる場合は VPCe 経由がお得
  26. AWS API のアクセスも Network Firewall 経由? VPC ENI EC2 VPC

    Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent Rule Allowed URLs Tokyo Region VPCe ? ? ? ? Corporate data center Direct Connect 通信量が少なければ Network Firewall 経由にする?
  27. AWS API のアクセスも Network Firewall 経由? VPC ENI EC2 VPC

    Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent Rule Allowed URLs Tokyo Region VPCe ? ? ? ? { "Effect": "Deny", "Principal": {"AWS": "*"}, "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "アカウントA-ID" } } }, { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } #secjaws23 VPCe ポリシー例 Corporate data center Direct Connect
  28. AWS API のアクセスも Network Firewall 経由? VPC エンドポイントポリシーでアクセス先 AWS アカウントを制限

    VPC ENI EC2 VPC Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent Rule Allowed URLs Tokyo Region VPCe ? ? ? ? { "Effect": "Deny", "Principal": {"AWS": "*"}, "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "アカウントA-ID" } } }, { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } #secjaws23 VPCe ポリシー例 Corporate data center Direct Connect 利用アカウントを自社アカウントのみに制限
  29. AWS API のアクセスも Network Firewall 経由? 社外クレデンシャルを持ち込まれた場合、 社外アカウントへのデータ流出リスクあり VPC ENI

    EC2 VPC Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent Rule Allowed URLs Tokyo Region 社外アカウント 流出! 社外 Credential Corporate data center Direct Connect Firehose
  30. AWS API のアクセスも Network Firewall 経由? クレデンシャル持ち込みの防止手段として VPC エンドポイントの利用を継続 VPC

    ENI EC2 VPC Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent Rule Allowed URLs Tokyo Region VPCe Keep Corporate data center Direct Connect AWSサービスの 宛先は未許可
  31. 本日話すこと(後半戦)  SaaS・Private Link の罠と Network Firewall の活用Network  閉域構成での

    EC2 アクセス制御(Session Manager 利用)  IAM ポリシー  IAM ロールの信頼ポリシー  VPC エンドポイントポリシー
  32. 社内で新規導入予定の CloudHub で 予期せぬ事態が発生した ※CloudHub・・・マルチクラウドの閉域接続サービス (CloudHub はサードパーティで、AWS サービスとは別) VPC ENI

    EC2 VPC Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate data center Direct Connect Cloud Hub
  33. 開発者 Direct Connect と Transit G/W の接続用に Transit VIF の提供をお願いします。

    https://d1.awsstatic.com/webinars/jp/pdf/services/ 20210209-AWS-Blackbelt-DirectConnect.pdf 社内 N/W 担当者
  34. 開発者 Direct Connect と Transit G/W の接続用に Transit VIF の提供をお願いします。

    Transit VIF は単一であり、 個別案件に払い出せません! 社内 N/W 担当者
  35. 開発者 Direct Connect と Transit G/W の接続用に Transit VIF の提供をお願いします。

    Transit VIF は単一であり、 個別案件に払い出せません! https://d1.awsstatic.com/webinars/jp/pdf/services/ 20210209-AWS-Blackbelt-DirectConnect.pdf 社内 N/W 担当者
  36. 開発者 Direct Connect と Transit G/W の接続用に Transit VIF の提供をお願いします。

    Transit VIF は単一であり、 個別案件に払い出せません! ST 直前で急いでいるのですが・・・ なんとかなりませんか?? 社内 N/W 担当者
  37. 開発者 Direct Connect と Transit G/W の接続用に Transit VIF の提供をお願いします。

    Transit VIF は単一であり、 個別案件に払い出せません! 残念ですが、新規の社内共通基盤に VIF を払い出す予定ですので・・・ ST 直前で急いでいるのですが・・・ なんとかなりませんか?? 社内 N/W 担当者
  38. 開発者 Direct Connect と Transit G/W の接続用に Transit VIF の提供をお願いします。

    Transit VIF は単一であり、 個別案件に払い出せません! 残念ですが、新規の社内共通基盤に VIF を払い出す予定ですので・・・ えっと・・・(詰んだ?) ST 直前で急いでいるのですが・・・ なんとかなりませんか?? 社内 N/W 担当者
  39. Direct Connect Gatewayと Transit Gatewayが接続できないため、代替案を模索 VPC ENI EC2 VPC Transit

    Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate data center Direct Connect Cloud Hub
  40. 【代替案①】 VPC を挟む? VPC ENI EC2 VPC Transit Gateway Direct

    Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate data center Direct Connect Cloud Hub VPC 直接経路伝播できず、 EC2・NLBなどが必要
  41. VPC ENI EC2 VPC Transit Gateway Direct Connect Gateway ENI

    Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate data center Direct Connect Cloud Hub VPC 直接経路伝播できず、 EC2・NLBなどが必要 運用負担になる踏み台リソースを置きたくなかったので、不採用 【代替案①】 VPC を挟む?
  42. 【代替案②】 Direct Connect GW を各 VPC に繋ぐ? VPC ENI EC2

    VPC Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate data center Direct Connect Cloud Hub VGW 各 VPC では VGW の追加・ ルート変更が必要
  43. 【代替案②】 Direct Connect GW を各 VPC に繋ぐ? VPC ENI EC2

    VPC Transit Gateway Direct Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate data center Direct Connect Cloud Hub 各 VPC では VGW の追加・ ルート変更が必要 VGW ネットワーク変更が大きく、ハブ & スポーク型でなくなるため、不採用
  44. Session Manager 案を採用! VPC ENI EC2 VPC Transit Gateway Direct

    Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate Cloud Hub VPC VPCe Session Manager 閉域用 Direct Connect ネットワーク変更が少なく 踏み台リソースも不要!
  45. アカウント A Session Manager の利用イメージ VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role
  46. アカウント A Session Manager の利用イメージ ① 運用者が閉域端末から、アクセス先アカウントの IAM ロール「ssm-role」を引き受け VPC

    Corporate data center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI aws sts assume-role --role-arn “arn:aws:iam::[アカウントB]:role/ssm-role” … ssm-role
  47. アカウント A Session Manager の利用イメージ ② 閉域端末で引き受けたロールのクレデンシャルを使い、ポートフォワーディングを実行 VPC Corporate data

    center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI aws ssm start-session --document-name AWS-StartPortForwardingSession --target [instance-id] --parameters portNumber=“22",localPortNumber=“10022"… ssm-role
  48. アカウント A Session Manager 閉域利用の注意点① VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role VPC エンドポイント ・ssm ・ssmmessages ・ec2messages ・ ...
  49. アカウント A Session Manager 閉域利用の注意点① VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role VPC エンドポイント ・ssm ・ssmmessages ・ec2messages ・ ... VPC エンドポイント ・ssm ・ssmmessages ・(ec2messages) ・sts ... リクエスト元にも 複数の VPCe が必要!→
  50. アカウント A Session Manager 閉域利用の注意点② VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Network ACL を制御している場合、 Port 443 のインバウンドアクセス開放が必要 (Security Group の Port 22 は開放不要)
  51. アカウント A Session Manager では、きちんと対策しないと・・・ VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role
  52. アカウント A Session Manager では、きちんと対策しないと・・・ VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI アカウントC(社外) 流出! C データ流出リスクがある!→ EC2 VPC Session Manager VPCe STS C ssm-role
  53. アカウント A Session Manager では、きちんと対策しないと・・・(その②) VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role
  54. アカウント A Session Manager では、きちんと対策しないと・・・(その②) VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI 社外からのアクセスリスクがある!→ ssm-role
  55. アカウント A Session Manager の利用で着目するポリシーは 4 つ VPC Corporate data

    center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI Ⅰ Ⅳ Ⅲ Ⅰ. アクセスキーの IAMポリシー Ⅱ. VPC エンドポイント ポリシー Ⅲ. IAM ロールの 信頼ポリシー Ⅳ. IAM ロールの IAM ポリシー Ⅱ ssm-role
  56. アカウント A Ⅰ. アクセスキーの IAM ポリシー ※実態は、IAM グループに紐づくポリシー VPC Corporate

    data center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI Ⅰ ssm-role
  57. アカウント A Ⅰ. アクセスキーの IAM ポリシー ※実態は、IAM グループに紐づくポリシー VPC Corporate

    data center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI Ⅰ ssm-role { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::${AccountB-ID}:role/ssm-role" }
  58. アカウント A Ⅰ. アクセスキーの IAM ポリシー ※実態は、IAM グループに紐づくポリシー VPC Corporate

    data center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI Ⅰ { "Effect": "Allow", "Action": "sts:AssumeRole", "Resource": "arn:aws:iam::${AccountB-ID}:role/ssm-role" } ssm-role スイッチ先を自社内に制限する ため、最小権限を設定! (キー漏えい時の影響も抑えたい)
  59. アカウント A Ⅱ. VPC エンドポイントポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI Ⅱ ssm-role
  60. アカウント A Ⅱ. VPC エンドポイントポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI Ⅱ ssm-role { "Effect": "Deny", "Principal": {"AWS": "*"}, "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "AccountIDs" } } }, { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" }
  61. アカウント A Ⅱ. VPC エンドポイントポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI Ⅱ ssm-role { "Effect": "Deny", "Principal": {"AWS": "*"}, "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "AccountIDs" } } }, { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } アカウントC (社外) C C 社外アカウントのクレデンシャルを持ち込み、 社外 EC2 へのアクセスを試みる EC2
  62. アカウント A Ⅱ. VPC エンドポイントポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI Ⅱ ssm-role { "Effect": "Deny", "Principal": {"AWS": "*"}, "Action": "*", "Resource": "*", "Condition": { "StringNotEquals": { "aws:PrincipalAccount": "AccountIDs" } } }, { "Effect": "Allow", "Principal": "*", "Action": "*", "Resource": "*" } aws:PrincipalAccount で クレデンシャル持ち込みを禁止! C アカウントC (社外) C EC2
  63. アカウント A Ⅲ. IAM ロールの信頼ポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅲ
  64. アカウント A Ⅲ. IAM ロールの信頼ポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅲ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::${UserAccount}:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceVPCe": "${STS-VPCe-ID}" }, "Bool": { "aws:MultiFactorAuthPresent": "true" }, "StringLike": { "sts:RoleSessionName": "${aws:username}" } } }
  65. アカウント A Ⅲ. IAM ロールの信頼ポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅲ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::${UserAccount}:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceVPCe": "${STS-VPCe-ID}" }, "Bool": { "aws:MultiFactorAuthPresent": "true" }, "StringLike": { "sts:RoleSessionName": "${aws:username}" } } } 流出したアクセスキー 社外から スイッチロールを試みる
  66. アカウント A Ⅲ. IAM ロールの信頼ポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅲ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::${UserAccount}:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceVPCe": "${STS-VPCe-ID}" }, "Bool": { "aws:MultiFactorAuthPresent": "true" }, "StringLike": { "sts:RoleSessionName": "${aws:username}" } } } aws:SourceVPCe で 社外からのスイッチロールを禁止! 流出したアクセスキー
  67. アカウント A Ⅲ. IAM ロールの信頼ポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅲ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::${UserAccount}:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceVPCe": "${STS-VPCe-ID}" }, "Bool": { "aws:MultiFactorAuthPresent": "true" }, "StringLike": { "sts:RoleSessionName": "${aws:username}" } } } ← MFA を強制
  68. アカウント A Ⅲ. IAM ロールの信頼ポリシー VPC Corporate data center Direct

    Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅲ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::${UserAccount}:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceVPCe": "${STS-VPCe-ID}" }, "Bool": { "aws:MultiFactorAuthPresent": "true" }, "StringLike": { "sts:RoleSessionName": "${aws:username}" } } } ← CloudTrail でロール使用者を追跡するため STS のセッション名を IAM ユーザー名と 一致させるように強制
  69. アカウント A Ⅳ. IAM ロールの IAM ポリシー(スイッチロール後の話) VPC Corporate data

    center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅳ
  70. アカウント A Ⅳ. IAM ロールの IAM ポリシー(スイッチロール後の話) VPC Corporate data

    center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅳ { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": [ "arn:aws:ec2:${Region}:${AccountId}:instance/*", "arn:aws:ssm:::document/AWS-StartPortForwardingSession" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" }, "StringEquals": { "aws:SourceVPCe": "${SSM-VPCe-ID}" } } }, …
  71. アカウント A Ⅳ. IAM ロールの IAM ポリシー(スイッチロール後の話) VPC Corporate data

    center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅳ { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": [ "arn:aws:ec2:${Region}:${AccountId}:instance/*", "arn:aws:ssm:::document/AWS-StartPortForwardingSession" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" }, "StringEquals": { "aws:SourceVPCe": "${SSM-VPCe-ID}" } } }, … 流出した ssm-role の 一時クレデンシャル (スイッチロール後) 社外から Session Manager 経由で EC2 へ侵入を試みる
  72. アカウント A Ⅳ. IAM ロールの IAM ポリシー(スイッチロール後の話) VPC Corporate data

    center Direct Connect VPCe 閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI ssm-role Ⅳ { "Effect": "Allow", "Action": "ssm:StartSession", "Resource": [ "arn:aws:ec2:${Region}:${AccountId}:instance/*", "arn:aws:ssm:::document/AWS-StartPortForwardingSession" ], "Condition": { "BoolIfExists": { "ssm:SessionDocumentAccessCheck": "true" }, "StringEquals": { "aws:SourceVPCe": "${SSM-VPCe-ID}" } } }, … aws:SourceVPCe で 社外からの Session Manager を禁止! 流出した ssm-role の 一時クレデンシャル (スイッチロール後)
  73. アカウント A ポリシー関連をまとめてみる VPC Corporate data center Direct Connect VPCe

    閉域用 EC2 運用者 Cloud Hub Direct Connect Gateway VPC アカウント B Session Manager VPCe Transit Gateway ENI Ⅰ Ⅳ Ⅲ Ⅰ. アクセスキーの IAMポリシー: 最小権限に制限 (スイッチ先を絞る) Ⅱ. VPC エンドポイント ポリシー: aws:PrincipalAccount で クレデンシャルの持込を Deny Ⅲ. IAM ロールの信頼ポリシー Ⅳ. IAMポリシー: aws:sourceVpce (sts, ssm)で 社外からのアクセスを Deny Ⅱ ssm-role
  74. (再掲!)Network Firewall 導入しました VPC ENI EC2 VPC Transit Gateway Direct

    Connect Gateway ENI Network Firewall NAT Gateway Firewall Endpoint Internet Gateway Anti-virus Agent SaaS Manager Server Security Patches Rule Allowed URLs Corporate Cloud Hub VPC VPCe Session Manager 閉域用 Direct Connect
  75. まとめ  プロジェクトリスクとして、SaaS の仕様変更を想定しよう  Network Firewall と VPCe の併用で緻密なアウトバウンド制御可

     閉域で Session Manager 利用時の注意点は・・・ • 最小権限を遵守しているか • クレデンシャルの持込を対策できているか • 社外からのアクセスを防いでいるか