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

AWSでk8sの導入を検討するにあたりコンテナプラットフォーム特有の考慮すべきセキュリティ対策...

hiropinponpan
February 25, 2020

 AWSでk8sの導入を検討するにあたりコンテナプラットフォーム特有の考慮すべきセキュリティ対策とは.pdf

hiropinponpan

February 25, 2020
Tweet

More Decks by hiropinponpan

Other Decks in Business

Transcript

  1. マスター タイトルの書式設定 AWSでコンテナを動かす選択肢 AWSマネージド利用する AWSマネージ ド利用しない Amazon ECS Amazon EKS

    k8s Open Shift EC2 Fargate EC2 Fargate EC2 ECR Docker hubなど Orchestration Compute Resource Image Registry など 3
  2. マスター タイトルの書式設定 AWSコンテナサービスのスタック 5 AWSマネージド利用する AWSマネージド利 用しない Amazon ECS Amazon

    EKS(k8s) k8s、 Open Shiftなど EC2 Fargate EC2 Fargate App App App App App Container Container Container Container Container OS・MW OS・MW OS・MW OS・MW OS・MW EC2 EC2 EC2 EC2 EC2 HW・NW HW・NW HW・NW HW・NW HW・NW  コンテナを動かす際のセキュリティに対するAWSの責任範囲
  3. マスター タイトルの書式設定 CNCF Landscape > Security & Compliance 7 

    「sysdig」・・ Landscape>Monitoring でもカテゴライズされていてモニタリング機能あり。  「Falco」・・ sysdigやSumologicでも利用されている。コロプラも監査用途で使っているらしい。  「anchore」・・ sysdigの内部で利用されている。  「kube-bench」「kube-hunter」・・ AquaSecurityの製品群。最近Aquaが買収した「trivy」も仲間入りした。  「clair」・・ AWS ECRのコンテナイメージ脆弱性チェックで利用されている。  「StackRox」・・ k8sセキュリティソリューション企業。個人的に情報のキャッチアップで参考にしている。  「SONOBUOY」・・ vmware-tanzuプロジェクト。個人的にこのプロジェクトには注目している。  「paloalto」・・ twistlockを買収してここにいる模様。  「Open Policy Agent」・・ ガバナンス/コンプライアンス効かせるには有力候補か。Anthos Config Managementでも利用されている。 (2020年2月26日時点)
  4. マスター タイトルの書式設定 AWS / k8s レイヤにおけるセキュリティ対策ツール 認可 ワークロード分離 (物理/論理) ファイアウォール

    認証 シークレット管理 脆弱性対策 モニタリング 暗号化(通信/デー タ) バックアップ ガバナンス/コン プライアンス セキュリティカテゴリ AWS k8s IAM KMS Secret Manager KMS kubesec Kubernetes- External-secret Sealed- secretes Inspector EC2 CNCFエコシステム K8s dashboard Guard Duty ACM Backup System Manager Cloud watch ES ECR Account VPC NW ACL SG EKS WAF Shield Cognito Directory Macie Security HUb Admission Control kubeaudit 8
  5. マスター タイトルの書式設定 k8sセキュリティソリューション 3大ベンダー ※あくまで私の視点です 9  3製品ともコンテナやノードスキャン機能あり。スキャン精度は日進月歩なので〇×つけられないという意見あり。  DeepSecurityとかの併用有無は、販売代理店で見解が分かれたりしている。いずれせよライセンス費用がどれも高額なのは悩ましい。

    項目 Aqua Twistlock Sysdig 起源 イスラエル(2015年~) アメリカ(2015年~) アメリカ(2013年~) マネージャ k8sクラスタ環境に導入 • k8sクラスタ環境に導入 • マネージャのSaaS版は2019年度内中に提供予定 • K8sクラスタ環境に導入 • マネージャのSaaS版も提供 クライアント (k8s環境導入) Sidecar • DaemonSet(コンテナランタイムにモジュール実装) • Sidecar(AWS Fargate形式の場合) • DaemonSet (カーネルモードでシステムコー ルをフック) 特徴・差別化 vShield(バーチャルパッチ) WAF機能(AquaやSysdigには無いとの事) 元々モニタリングツールから開発され、セキュリティ 領域に機能拡張 国内販売代理店 SB C&S、クリエーションライン マクニカネットワークス SCSK ※Sysdig日本法人いるが直販無し 内包OSSツール • Kube-bench(CIS benchmark) • Kube-hunter(ペネトレーションテスト) ー • sysdig(I/O + system call caputure) • Prometheus(monitoring) • Inspect(visualize) • falco(behavior rule) • anchore(security check) 国内公開事例 カカクコム、Paidy クックパッド メルカリ ライセンス形態 どれも年間サブスクモデルで最小 数百万円からの提供 その他 Trivy(コンテナイメージスキャン)を最近買 収 • NIST著者が在籍 • 2019年パロアルトがTwistlockとPureSecを買収し た事によりパロアルトのクラウドセキュリティ製品群 (Prisma)に統合予定 Wireshark開発者が創立
  6. マスター タイトルの書式設定 AWS / k8s 環境でのセキュリティ整理 11 認可 ワークロード分離 (物理/論理)

    脆弱性対策 暗号化 (通信/データ) バックアップ ファイアウォー ル モニタリング 認証 ガバナンス/コ ンプライアンス セキュリティカテゴリ セキュリティ境界 Public Cloud k8s Cluster Worker Node Master Node Namespace Pod Container Pod Container Application Application シークレット管 理
  7. マスター タイトルの書式設定 認証 / 認可 / Admission Control ※AWS EKSを意識

    12 Public Cloud k8s Cluster Master Node 参考) https://kubernetes.io/docs/reference/access-authn-authz/ https://medium.com/better-programming/k8s-tips-using-a-serviceaccount-801c433d0023  API Version • Extension • Core • Apps ***  Resources • Deployment • Node • Pod ***  Action • Create • Get • List *** Human Namespace縛り Pod用 User用 Admission Control 認証 認可  k8s cluster Guard rail • ResourceQuota • LimitRange • AlwaysPullImages • NamespaceLifecycle • Priority • Pod Security Policy *** IAM OpenID Connect IAM Role for Service Account IAM aws-auth
  8. マスター タイトルの書式設定 ワークロード分離のパターン 13 Public Cloud k8s Cluster Namespac e

    Pod Container Pod ⑤サービス K8s Cluster Worker Node Worker Node ③サービス ③サービス Namespace ②サービス ④サービス ④サービス ②サービス ①サービス ①サービス Container ⑤サービス ⑥サービス ⑥サービス ワークロードの分離 パターン ①Cluster ②Namespace ③Node ④Pod ⑤Container ⑥Volume • MasterNodeでサービスワークロードは通常 動かさないと思うので割愛。
  9. マスター タイトルの書式設定 ファイアーウォール / 暗号化(通信)の考慮すべき箇所 14 Public Cloud k8s Cluster

    WorkerNode Master Node SaaS Client など コンテナレジストリ(ECR など) k8s cluster外部 サービス(RDSなど) Container Container Private subnet Network  通信用途 サービス・アプリワークロード K8運用・保守ワークロード • 複数MasterNode同士や複数WokerNode同士 の通信は割愛。 • MasterNodeもPrivate subnet Network内に作 れる場合は、それに越したことなし。 保守/運用(EC2など) ELB z 参考) https://github.com/cncf/financial-user-group/tree/master/projects/k8s-threat-model
  10. マスター タイトルの書式設定 15 暗号化(データ)の考慮すべき箇所 Public Cloud k8s Cluster Master Node

    Woker Node EBS EFS ECRなどの コンテナレジストリ CodeCommitなどの Gitリポジトリ S3 AWS上でのk8s pv確保の 選択肢はEBSかEFS 利用するAWSサービスのデータ暗号化(サーバサイド)は従来通り EBS 参考) https://aws.amazon.com/premiumsupport/knowledge-center/eks-pods-efs/ RDSなど
  11. マスター タイトルの書式設定 16 シークレット管理で考慮すべきこと  過去に話した「Kubernetes(k8s)でシステム運用する際のシークレット情報の管理について調べてみた」もよければ参照下さい https://speakerdeck.com/hiropinponpan/kubernetes-k8s-desisutemuyun-yong-suruji-falsesikuretutoqing-bao-falseguan-li-nituitediao-betemita  K8s secretリソース

    • k8sではデータベースなどに接続する際のユーザ名やパスワードなどの機密情報を、アプリコンテナなどのPodに環境変 数やVolumeとして渡す際に利用するk8s secretリソース機能が提供されている  懸念点 • K8s secretリソースを生成するマニフェストファイル(例:secret.yml)は、base64でエンコードされているが暗号化さ れている訳ではないのでマニフェストファイルをgithubなどにそのままpushするのはNG  シークレット情報をセキュアに管理する為のツール群を いくつか紹介 • Kubesec • Kubernetes-external-secrets • Sealed-secrets • HashiCorp社 vault
  12. マスター タイトルの書式設定 k8sレイヤのバックアップ Public Cloud k8s Cluster S3 Woker Node

    backupData Backup Backup /Restore ユースケース ※veleroいわく • Backup/restore • Disaster recovery • Cluster migrationなど バックアップデータ保存先 • AWS S3 • Azure Blob Storage • Google Cloud Storage • その他、互換ベンダーストレージ backupData など 17 参考) https://velero.io/docs/master/
  13. マスター タイトルの書式設定 脆弱性対策 ※コンテナライフサイクル視点 Public Cloud k8s Cluster Master /

    Woker Node コンテナレジストリ(ECRなど) Gitリポジトリ (codeCommitなど) OS・MW K8s・コンテナランタイム K8s manifest コンテナイメージ コンテナ 運用/保守端末 (EC2など) GitHub、プライベート、コーポ レートなどのレジストリ (redhat / googleなど) コンテナイメージ Build Ship Run CIツール (CodeBuild、S3など) Buildツール (docker、Bazelなど) CDツール (CodeDeployなど) ペネトレーション テスト コンテナイメージスキャン コンテナイメージスキャン コンテナライフサイクルにおいて、シフトレフトでの脆弱性対策が重要 kubeaudit CIS k8s Benchmark チェック K8sセキュリ ティチェック 18
  14. マスター タイトルの書式設定 モニタリング ※Observabilityの視点 19  過去に話した「Cloud NativeなテクノロジーにおけるObservability(可観測性)とは?」もよければ参照下さい https://speakerdeck.com/hiropinponpan/cloudnativenatekufalseroziniokeruobservability-ke-guan-ce-xing-toha 1.

    Metrics • CPU/MEM/Diskなどのリソース使用率 • APIリクエスト数、NWトラフィック、キャッシュヒット率、ページロードタイムなど 2. Logs • Syslog(サーバ、コンテナOSなど)、ミドルウェアやアプリケーションのログ • NWパケット、DBクエリ、構成変更、API操作、クラウド監査ログなど 3. Traces • アプリケーション、データベース、外部API、マイクロサービス間の処理や呼び出しタイムの計測と追跡
  15. マスター タイトルの書式設定 20 ガバナンス / コンプライアンス 20 Public Cloud k8s

    Cluster Master Node Woker Node AdmissionController AuthZ Webhook CloudWatch アプリコンテナ Query Data Policy(Rego) Rule AdmissionReview AuthZ gatekeeper Rule ・監査用途 ・AdmissionControllerの 拡張 gatekeeper ・認証/認可のオフロード
  16. マスター タイトルの書式設定 まとめ 22 • 企業 or プロジェクト or システムにおいて、ガバナンス/コンプライアンスの整理が必要

    • 検証/開発/本番の実運用において、どこまでセキュリティ対策を行うべきか継続した検討が必要 • AWS、k8s、CNCFエコシステムのセキュリティソリューションの継続したキャッチアップが必要