SlideShare a Scribd company logo
1 of 18
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon Web Service Japan K.K.
Specialist Solutions Architect, Containers
林 政利
コンテナセキュリティ⼊⾨
AWS Black Belt Online Seminar
2021/10
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アジェンダ
• イメージの開発とビルド
• サプライチェーン
• オーケストレータの保護
• ホストのセキュリティ
• 実⾏時のセキュリティ
ソースコード
Dockerfile
イメージのビルド
レジストリ
(Amazon ECR)
Hypervisor
Kernel
VM
Container
Container
Container
オーケストレータ
(ECS / k8s / etc)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コンテナホストについて
仮想マシンより低いコンテナの分離レベル
Hypervisor
Kernel
VM
Hypervisor
Kernel
VM
Container
Container
Container
Kernel
VM • コンテナはカーネルを共有
• カーネルに脆弱性 -> コンテナから
「エスケープ」できるリスク
• コンテナのサンドボックス機能を強化
• コンテナやホストの危殆化対策
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
seccomp による分離レベルの強化
コンテナプロセスが実⾏できるシステムコールを制限する
Hypervisor
Kernel
VM
Container
Container
Container
• コンテナには不要なシステムコール
• clock_adjtime, clock_settime
• create_module, delete_module, init_module
• Dockerデフォルトプロファイルが有⽤
• 40以上のシステムコールをブロック
seccomp
kind: Pod
spec:
securityContext:
seccompProfile:
type: RuntimeDefault
containers:
- image: busybox
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Linux Security Module による分離レベルの強化
SELinux, AppArmor でコンテナがアクセス出来るリソースを制限する
Hypervisor
Kernel
VM
Container
Container
Container
• アクセス不要なリソースへのアクセス
• /proc, /etc など
• AppArmor の場合 Docker デフォルトプロファイルが有⽤
• /proc などへのアクセスを防ぐ
• SELinux を有効化すると、デフォルトでは
コンテナプロセスに container_t ラベルが付く
SELinux, AppArmor
kind: Pod
annotations:
container.apparmor.security.beta.kubernetes.io/<contain
er_name>: runtime/default
spec: ...
seccomp
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
カーネル分離による分離レベルの強化
コンテナをカーネルレベルで分離する
Hypervisor
Kernel
VM
Container
• カーネルの共有をしないという考え⽅
• Kata Container
• コンテナ起動をプロキシして VM 内でコンテナ
を実⾏
• AWS Fargate
• AWS で簡単にカーネルの分離を実現する
Kernel
VM
Container
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
アジェンダ
• イメージの開発とビルド
• サプライチェーン
• オーケストレータの保護
• ホストのセキュリティ
• 実⾏時のセキュリティ
ソースコード
Dockerfile
イメージのビルド
レジストリ
(Amazon ECR)
Hypervisor
Kernel
VM
Container
Container
Container
オーケストレータ
(ECS / k8s / etc)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
コンテナ実⾏中のセキュリティ
ネットワークセキュリティ
コンテナが相互に、どのように通信するのかポリシーを
定義して制限する
ランタイムセキュリティ
コンテナアプリケーションが利⽤したコマンドや
ファイルアクセスなどを記録して、予期しない挙動を検知
アプリケーションのデータや挙動に関するセキュリティ
データの保護
インスタンス、ストレージの暗号化、シークレットの取り扱い
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ネットワークセキュリティ
コンテナ間の通信をポリシーで定義する
検索機能 フロント
決済機能
インベントリ
外部トラフィック
• コンテナ間通信の定義をポリシーにして、
ポリシー外の通信を拒否できる
• (AWS) Security Group
• ECS のタスク、Kubernetes のPod
に割り当て
• (Kubernetes) Network Policy
• Calico / Cilium
• アプリケーションレベル
• Cilium
• Service Mesh
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
データの保護
暗号化、秘匿情報の管理
• データの暗号化
• ノード、コンテナインスタンス
• EC2 で暗号化を有効化する
• Fargate (デフォルトで暗号化)
• 外部ストレージ(転送・保存時)
• EFS (ECS / EKS CSI Driver)
• EBS (EKS, CSI Driver / in-tree)
• シークレット, パラメータ(転送・保存時)
• Secret リソース (Kubernetes)
• エンベロープ暗号化を有効にする
• Secrets Manager, Parameter Store
• 渡し⽅: ファイル / 環境変数 / API
https://aws.amazon.com/jp/blogs/news/using-eks-encryption-provider-
support-for-defense-in-depth/
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ランタイムセキュリティ
「プロファイル」を作り、コンテナの挙動がそのプロファイルに従っているか確認する
• ネットワーク
• サービス間通信をモニタして ネットワークの
ポリシー を構築する
• コマンド実⾏
• eBPF, ptrace を利⽤してコマンド実⾏をモニタ
• ファイルアクセス
• eBPF, ptrace でファイルアクセスをモニタ
• 商⽤ツール
• Sysdig, Aqua (ECS, EKS, Fargate)
• Trend Micro (EKS)
• オープンソース
• CNCF Falco (ECS, EKS, Fargate)
検索機能 フロント
決済機能
インベントリ
外部トラフィック
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まとめ
• イメージの開発とビルド
• サプライチェーン
• オーケストレータの保護
• ホストのセキュリティ
• 実⾏時のセキュリティ
ソースコード
Dockerfile
イメージのビルド
レジストリ
(Amazon ECR)
Hypervisor
Kernel
VM
Container
Container
Container
フェーズごとにどんな脅威が考えられるかで整理する
オーケストレータ
(ECS / k8s / etc)
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
参考⽂献
Amazon ECS Best Practices - Security
https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/security.html
Amazon EKS Best Practices Guide for Security
https://aws.github.io/aws-eks-best-practices/security/docs/
Container Security (書籍)
https://www.amazon.co.jp/dp/B088B9KKGC
NIST SP800-900 アプリケーションコンテナセキュリティガイド
https://www.ipa.go.jp/files/000085279.pdf
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ビルドしたイメージとの同⼀性の保証
イメージを署名して実⾏されているコンテナを検証する
Build
$ DOCKER_CONTENT_TRUST=1
docker push
Registry
署名サーバー
(Notary Server)
Docker Content Trust + Notary
Docker には署名と検証機能が
組み込まれている
Node
$ DOCKER_CONTENT_TRUST=1
docker pull
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Docker Content Trust、Notary の課題
オーケストレータが未対応
ECS、Kubernetes などのオーケストレータで署
名を直接検証できない
Notary サーバーが必要
Notary サーバーが統合されている⼀部の
レジストリでしか使えない
イメージの署名に可搬性がない
使える環境、レジストリが限定されているので、
署名の検証ができたりできなかったりする
可搬性とユーザビリティに課題があり、署名の利⽤は進んでいない
https://aws.amazon.com/jp/blogs/containers/results-of-the-2020-aws-container-security-survey/
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
署名の可搬性とユーザビリティを改善する取り組み
レジストリの API に署名機能追加
Notary サーバーのない環境で利⽤できる
可搬性を意識している
ベースイメージの署名を確認してビルドし、新
しく署名を登録して Push
ユーザビリティの改善
利⽤できる環境が標準化されることで、可能な
場合はデフォルトで署名、検証する
Notary v2 の例
https://github.com/notaryproject/nv2
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
このセッションで扱うこと・学べること
コンテナについての⼀般的なセキュリティの考え⽅
実運⽤でのガイダンス、指針の整理
© 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Specialist Solutions Architect, Containers
本セッションの担当: 林 政利
SIer
フリーランス
受託開発
Web系企業
サービス開発・運⽤
外資ベンダー
コンテナ担当SA・
サポートエンジニア
AWS Japan
コンテナ担当SA
好きなサービス
Amazon Elastic Kubernetes Service (Amazon EKS)
AWS Certificate Manager

More Related Content

More from Amazon Web Services Japan

202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用Amazon Web Services Japan
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdfAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer ProfilesAmazon Web Services Japan
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Web Services Japan
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨Amazon Web Services Japan
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介Amazon Web Services Japan
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介Amazon Web Services Japan
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピAmazon Web Services Japan
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operationsAmazon Web Services Japan
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報Amazon Web Services Japan
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPNAmazon Web Services Japan
 

More from Amazon Web Services Japan (20)

202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
202202 AWS Black Belt Online Seminar AWS Managed Rules for AWS WAF の活用
 
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
202203 AWS Black Belt Online Seminar Amazon Connect Tasks.pdf
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
Amazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDDAmazon QuickSight の組み込み方法をちょっぴりDD
Amazon QuickSight の組み込み方法をちょっぴりDD
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
202202 AWS Black Belt Online Seminar Amazon Connect Customer Profiles
 
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するためにAmazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
Amazon Game Tech Night #24 KPIダッシュボードを最速で用意するために
 
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
202202 AWS Black Belt Online Seminar AWS SaaS Boost で始めるSaaS開発⼊⾨
 
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
[20220126] JAWS-UG 2022初頭までに葬ったAWSアンチパターン大紹介
 
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
202111 AWS Black Belt Online Seminar AWSで構築するSmart Mirrorのご紹介
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
202112 AWS Black Belt Online Seminar 店内の「今」をお届けする小売業向けリアルタイム配信基盤のレシピ
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes
 
20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 

202110 AWS Black Belt Online Seminar コンテナセキュリティ入門 Part.3

  • 1. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon Web Service Japan K.K. Specialist Solutions Architect, Containers 林 政利 コンテナセキュリティ⼊⾨ AWS Black Belt Online Seminar 2021/10
  • 2. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アジェンダ • イメージの開発とビルド • サプライチェーン • オーケストレータの保護 • ホストのセキュリティ • 実⾏時のセキュリティ ソースコード Dockerfile イメージのビルド レジストリ (Amazon ECR) Hypervisor Kernel VM Container Container Container オーケストレータ (ECS / k8s / etc)
  • 3. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コンテナホストについて 仮想マシンより低いコンテナの分離レベル Hypervisor Kernel VM Hypervisor Kernel VM Container Container Container Kernel VM • コンテナはカーネルを共有 • カーネルに脆弱性 -> コンテナから 「エスケープ」できるリスク • コンテナのサンドボックス機能を強化 • コンテナやホストの危殆化対策
  • 4. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. seccomp による分離レベルの強化 コンテナプロセスが実⾏できるシステムコールを制限する Hypervisor Kernel VM Container Container Container • コンテナには不要なシステムコール • clock_adjtime, clock_settime • create_module, delete_module, init_module • Dockerデフォルトプロファイルが有⽤ • 40以上のシステムコールをブロック seccomp kind: Pod spec: securityContext: seccompProfile: type: RuntimeDefault containers: - image: busybox
  • 5. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Linux Security Module による分離レベルの強化 SELinux, AppArmor でコンテナがアクセス出来るリソースを制限する Hypervisor Kernel VM Container Container Container • アクセス不要なリソースへのアクセス • /proc, /etc など • AppArmor の場合 Docker デフォルトプロファイルが有⽤ • /proc などへのアクセスを防ぐ • SELinux を有効化すると、デフォルトでは コンテナプロセスに container_t ラベルが付く SELinux, AppArmor kind: Pod annotations: container.apparmor.security.beta.kubernetes.io/<contain er_name>: runtime/default spec: ... seccomp
  • 6. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. カーネル分離による分離レベルの強化 コンテナをカーネルレベルで分離する Hypervisor Kernel VM Container • カーネルの共有をしないという考え⽅ • Kata Container • コンテナ起動をプロキシして VM 内でコンテナ を実⾏ • AWS Fargate • AWS で簡単にカーネルの分離を実現する Kernel VM Container
  • 7. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. アジェンダ • イメージの開発とビルド • サプライチェーン • オーケストレータの保護 • ホストのセキュリティ • 実⾏時のセキュリティ ソースコード Dockerfile イメージのビルド レジストリ (Amazon ECR) Hypervisor Kernel VM Container Container Container オーケストレータ (ECS / k8s / etc)
  • 8. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. コンテナ実⾏中のセキュリティ ネットワークセキュリティ コンテナが相互に、どのように通信するのかポリシーを 定義して制限する ランタイムセキュリティ コンテナアプリケーションが利⽤したコマンドや ファイルアクセスなどを記録して、予期しない挙動を検知 アプリケーションのデータや挙動に関するセキュリティ データの保護 インスタンス、ストレージの暗号化、シークレットの取り扱い
  • 9. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ネットワークセキュリティ コンテナ間の通信をポリシーで定義する 検索機能 フロント 決済機能 インベントリ 外部トラフィック • コンテナ間通信の定義をポリシーにして、 ポリシー外の通信を拒否できる • (AWS) Security Group • ECS のタスク、Kubernetes のPod に割り当て • (Kubernetes) Network Policy • Calico / Cilium • アプリケーションレベル • Cilium • Service Mesh
  • 10. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. データの保護 暗号化、秘匿情報の管理 • データの暗号化 • ノード、コンテナインスタンス • EC2 で暗号化を有効化する • Fargate (デフォルトで暗号化) • 外部ストレージ(転送・保存時) • EFS (ECS / EKS CSI Driver) • EBS (EKS, CSI Driver / in-tree) • シークレット, パラメータ(転送・保存時) • Secret リソース (Kubernetes) • エンベロープ暗号化を有効にする • Secrets Manager, Parameter Store • 渡し⽅: ファイル / 環境変数 / API https://aws.amazon.com/jp/blogs/news/using-eks-encryption-provider- support-for-defense-in-depth/
  • 11. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ランタイムセキュリティ 「プロファイル」を作り、コンテナの挙動がそのプロファイルに従っているか確認する • ネットワーク • サービス間通信をモニタして ネットワークの ポリシー を構築する • コマンド実⾏ • eBPF, ptrace を利⽤してコマンド実⾏をモニタ • ファイルアクセス • eBPF, ptrace でファイルアクセスをモニタ • 商⽤ツール • Sysdig, Aqua (ECS, EKS, Fargate) • Trend Micro (EKS) • オープンソース • CNCF Falco (ECS, EKS, Fargate) 検索機能 フロント 決済機能 インベントリ 外部トラフィック
  • 12. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まとめ • イメージの開発とビルド • サプライチェーン • オーケストレータの保護 • ホストのセキュリティ • 実⾏時のセキュリティ ソースコード Dockerfile イメージのビルド レジストリ (Amazon ECR) Hypervisor Kernel VM Container Container Container フェーズごとにどんな脅威が考えられるかで整理する オーケストレータ (ECS / k8s / etc)
  • 13. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 参考⽂献 Amazon ECS Best Practices - Security https://docs.aws.amazon.com/AmazonECS/latest/bestpracticesguide/security.html Amazon EKS Best Practices Guide for Security https://aws.github.io/aws-eks-best-practices/security/docs/ Container Security (書籍) https://www.amazon.co.jp/dp/B088B9KKGC NIST SP800-900 アプリケーションコンテナセキュリティガイド https://www.ipa.go.jp/files/000085279.pdf
  • 14. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ビルドしたイメージとの同⼀性の保証 イメージを署名して実⾏されているコンテナを検証する Build $ DOCKER_CONTENT_TRUST=1 docker push Registry 署名サーバー (Notary Server) Docker Content Trust + Notary Docker には署名と検証機能が 組み込まれている Node $ DOCKER_CONTENT_TRUST=1 docker pull
  • 15. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Docker Content Trust、Notary の課題 オーケストレータが未対応 ECS、Kubernetes などのオーケストレータで署 名を直接検証できない Notary サーバーが必要 Notary サーバーが統合されている⼀部の レジストリでしか使えない イメージの署名に可搬性がない 使える環境、レジストリが限定されているので、 署名の検証ができたりできなかったりする 可搬性とユーザビリティに課題があり、署名の利⽤は進んでいない https://aws.amazon.com/jp/blogs/containers/results-of-the-2020-aws-container-security-survey/
  • 16. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 署名の可搬性とユーザビリティを改善する取り組み レジストリの API に署名機能追加 Notary サーバーのない環境で利⽤できる 可搬性を意識している ベースイメージの署名を確認してビルドし、新 しく署名を登録して Push ユーザビリティの改善 利⽤できる環境が標準化されることで、可能な 場合はデフォルトで署名、検証する Notary v2 の例 https://github.com/notaryproject/nv2
  • 17. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. このセッションで扱うこと・学べること コンテナについての⼀般的なセキュリティの考え⽅ 実運⽤でのガイダンス、指針の整理
  • 18. © 2021, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Specialist Solutions Architect, Containers 本セッションの担当: 林 政利 SIer フリーランス 受託開発 Web系企業 サービス開発・運⽤ 外資ベンダー コンテナ担当SA・ サポートエンジニア AWS Japan コンテナ担当SA 好きなサービス Amazon Elastic Kubernetes Service (Amazon EKS) AWS Certificate Manager