awsでkubernetesの導入を検討するにあたり ...€¦ ·...

24
マスター タイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき セキュリティ対策とは! 2020/2/25 プラットフォームサービス本部クラウド基盤ソリューション部 ソリューションアーキテクトチーム

Upload: others

Post on 28-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定

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

2020/2/25

プラットフォームサービス本部クラウド基盤ソリューション部ソリューションアーキテクトチーム

Page 2: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定目次

1

• AWSでコンテナを動かす選択肢

• CNCF セキュリティ対策ツールの紹介

• k8s環境でのセキュリティの整理

• まとめ

Page 3: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定

AWSでコンテナを動かす選択肢

2

Page 4: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定AWSでコンテナを動かす選択肢

AWSマネージド利用するAWSマネージド利用しない

Amazon ECS Amazon EKS k8s

Open Shift

EC2 Fargate EC2 Fargate EC2

ECR Docker hubなど

Orchestration

ComputeResource

ImageRegistry

など

3

Page 5: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定AWSでコンテナを動かす場合も「責任共有モデル」は従来通り

4

「セキュリティとコンプライアンスは、クラウドベンダーと利用者の間で共有」

https://aws.amazon.com/jp/compliance/shared-responsibility-model/

Page 6: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定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の責任範囲

Page 7: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定

CNCFセキュリティ対策ツールの紹介

6

Page 8: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定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日時点)

Page 9: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定AWS / k8s レイヤにおけるセキュリティ対策ツール

認可

ワークロード分離(物理/論理)

ファイアウォール

認証

シークレット管理

脆弱性対策

モニタリング

暗号化(通信/データ)

バックアップ

ガバナンス/コンプライアンス

セキュリティカテゴリ AWS k8s

IAM

KMSSecretManager

KMS

kubesecKubernetes-External-secret

Sealed-secretes

Inspector

EC2

CNCFエコシステム

K8s dashboard

GuardDuty

ACM

Backup SystemManager

Cloudwatch

ES

ECR

Account VPC

NW ACLSG

EKS

WAF Shield

Cognito Directory

MacieSecurity HUb Admission

Controlkubeaudit

8

Page 10: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定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開発者が創立

Page 11: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定

k8s環境でのセキュリティの整理

10

Page 12: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定AWS / k8s 環境でのセキュリティ整理

11

認可

ワークロード分離

(物理/論理)

脆弱性対策

暗号化

(通信/データ)

バックアップ

ファイアウォール

モニタリング

認証

ガバナンス/コンプライアンス

セキュリティカテゴリ セキュリティ境界

Public Cloud

k8s Cluster

Worker NodeMaster Node

Namespace

Pod

Container

Pod

Container

Application Application

シークレット管理

Page 13: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定認証 / 認可 / 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用

AdmissionControl

認証 認可

k8s cluster Guard rail

• ResourceQuota

• LimitRange

• AlwaysPullImages

• NamespaceLifecycle

• Priority

• Pod Security Policy

***

IAM

OpenID Connect

IAM Role for Service Account

IAM

aws-auth

Page 14: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定ワークロード分離のパターン

13

Public Cloud

k8s Cluster

Namespace

Pod

Container

Pod

⑤サービス

K8s Cluster

Worker NodeWorker Node

③サービス ③サービス

Namespace

②サービス

④サービス ④サービス

②サービス

①サービス ①サービス

Container

⑤サービス

⑥サービス

⑥サービス

ワークロードの分離パターン

①Cluster

②Namespace

③Node

④Pod

⑤Container

⑥Volume

• MasterNodeでサービスワークロードは通常動かさないと思うので割愛。

Page 15: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定ファイアーウォール / 暗号化(通信)の考慮すべき箇所

14

Public Cloud

k8s Cluster

WorkerNodeMaster Node

SaaSClientなど

コンテナレジストリ(ECRなど)

k8s cluster外部サービス(RDSなど)

Container

Container

Private subnet Network

通信用途

サービス・アプリワークロード

K8運用・保守ワークロード

• 複数MasterNode同士や複数WokerNode同士の通信は割愛。

• MasterNodeもPrivate subnet Network内に作れる場合は、それに越したことなし。

保守/運用(EC2など)

ELB

参考) https://github.com/cncf/financial-user-group/tree/master/projects/k8s-threat-model

Page 16: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定

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など

Page 17: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定

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

Page 18: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定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/

Page 19: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定脆弱性対策 ※コンテナライフサイクル視点

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

Page 20: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定モニタリング ※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、マイクロサービス間の処理や呼び出しタイムの計測と追跡

Page 21: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定

20

ガバナンス / コンプライアンス

20

Public Cloud

k8s Cluster

Master Node Woker Node

AdmissionController

AuthZ Webhook

CloudWatch

アプリコンテナ Query

Data

Policy(Rego)

Rule

AdmissionReview

AuthZgatekeeper

Rule

・監査用途

・AdmissionControllerの拡張

gatekeeper

・認証/認可のオフロード

Page 22: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定

まとめ

21

Page 23: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定まとめ

22

• 企業 or プロジェクト or システムにおいて、ガバナンス/コンプライアンスの整理が必要

• 検証/開発/本番の実運用において、どこまでセキュリティ対策を行うべきか継続した検討が必要

• AWS、k8s、CNCFエコシステムのセキュリティソリューションの継続したキャッチアップが必要

Page 24: AWSでkubernetesの導入を検討するにあたり ...€¦ · マスタータイトルの書式設定 AWSでkubernetesの導入を検討するにあたり コンテナプラットフォーム特有の考慮すべき

マスター タイトルの書式設定

ご清聴ありがとうございました

23