Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
re:Invent 2023 コンテナイメージスキャンどうなった!?
Search
takakuni
December 14, 2023
2.4k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
re:Invent 2023 コンテナイメージスキャンどうなった!?
takakuni
December 14, 2023
More Decks by takakuni
See All by takakuni
ECS Express Mode
takakuni
0
45
AWS WAF Anti-DDoS Protection in 5 Minutes!
takakuni
0
690
AWS Backup Air-Gapped Vaults with Multi-Party Approval Explained in 5 Minutes!
takakuni
0
350
5min GuardDuty Extended Threat Detection EKS
takakuni
0
420
OpenAI models overview 202505
takakuni
0
490
[Sample] Validate hyperlink for Amazon Bedrock Data Automation
takakuni
0
340
Classmethod AI Talks #13
takakuni
0
500
About Extended Threat Detection in Amazon GuardDuty
takakuni
0
450
SageMaker Hyperpod 101 #regrowth_sapporo
takakuni
1
470
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.3k
Heart Work Chapter 1 - Part 1
lfama
PRO
8
36k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
4
570
Making Projects Easy
brettharned
120
6.7k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
650
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
Site-Speed That Sticks
csswizardry
13
1.5k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
510
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Transcript
re:Invent 2023 コンテナイメージスキャンどうなった!? AWS 事業本部コンサルティング部 たかくに 2023.12.14 1
2 NIST SP 800-190
3 NIST SP 800-190 ‧イメージのリスク ‧レジストリのリスク ‧オーケストレータのリスク ‧コンテナのリスク ‧ ホスト
OS のリスク
4 NIST SP 800-190 ‧イメージのリスク ‧レジストリのリスク ‧オーケストレータのリスク ‧コンテナのリスク ‧ ホスト
OS のリスク
5 NIST SP 800-190 イメージのリスク ‧イメージの脆弱性 ‧イメージの設定の不備 ‧埋め込まれたマルウェア ‧埋め込まれた平⽂の秘密情報 ‧信頼できないイメージの使⽤
6 イメージのリスク ‧イメージの脆弱性 → イメージスキャン ‧イメージの設定の不備 → イメージの作り⽅ ‧埋め込まれたマルウェア →
マルウェアスキャン ‧埋め込まれた平⽂の秘密情報 → Systems Manager ‧信頼できないイメージの使⽤ → イメージの署名 NIST SP 800-190
7 イメージのリスク ‧イメージの脆弱性 → イメージスキャン ‧イメージの設定の不備 → イメージの作り⽅ ‧埋め込まれたマルウェア →
マルウェアスキャン ‧埋め込まれた平⽂の秘密情報 → Systems Manager ‧信頼できないイメージの使⽤ → イメージの署名 NIST SP 800-190
8 re: Invent 2023 以前の状況
9 コンテナイメージスキャン ECR ベーシックスキャン Inspector v2 拡張スキャン エンジン Clair Inspector
v2 スキャン範囲 OS のみ OS, 言語パッケージ スキャン頻度 手動 / 自動 初回プッシュ時 / 継続的 CI / CD 組み込める 頑張れば組み込める☆ 料金 無料 初回スキャン:$ 0.11 / 1イメージ 再スキャン:$ 0.01 / 1回
10 コンテナイメージスキャン ECR ベーシックスキャン Inspector v2 拡張スキャン エンジン Clair Inspector
v2 スキャン範囲 OS のみ OS, 言語パッケージ スキャン頻度 手動 / 自動 初回プッシュ時 / 継続的 CI / CD 組み込める 頑張れば組み込める☆ 料金 無料 初回スキャン:$ 0.11 / 1イメージ 再スキャン:$ 0.01 / 1回
11 ベーシックスキャンの CI / CD パターン
12 ベーシックスキャンの CI / CD パターン version: '0.2' phases: #
抜粋 build: commands: # 抜粋 # イメージスキャンの実施 - aws ecr start-image-scan --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID # ecr wait で結果を待つ - aws ecr wait image-scan-complete --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID # 結果の取得 - aws ecr describe-image-scan-findings --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID --query 'imageScanFindings.findings' --output text
13 ベーシックスキャンの CI / CD パターン version: '0.2' phases: #
抜粋 build: commands: # 抜粋 # イメージスキャンの実施 - aws ecr start-image-scan --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID # ecr wait で結果を待つ - aws ecr wait image-scan-complete --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID # 結果の取得 - aws ecr describe-image-scan-findings --repository-name $ECR_REPO_NAME --image-id imageDigest=$IMAGE_ID --query 'imageScanFindings.findings' --output text
14 Inspector v2 の CI / CD パターン https://aws.amazon.com/jp/blogs/security/use-amazon-inspector-to-manage-your-build-and-deploy-pipelines-for-containerized-applications/
15 今回のアップデートで...
16 (再掲)コンテナイメージスキャン ECR ベーシックスキャン Inspector v2 拡張スキャン エンジン Clair Inspector
v2 スキャン範囲 OS のみ OS, 言語パッケージ スキャン頻度 手動 / 自動 初回プッシュ時 / 継続的 CI / CD 組み込める 頑張れば組み込める☆ 料金 無料 初回スキャン:$ 0.11 / 1イメージ 再スキャン:$ 0.01 / 1回
17 コンテナイメージスキャン ECR ベーシックスキャン Inspector v2 拡張スキャン エンジン Clair Inspector
v2 スキャン範囲 OS のみ OS, 言語パッケージ スキャン頻度 手動 / 自動 初回プッシュ時 / 継続的 CI / CD 組み込める よりシンプルに組み込める☆ 料金 無料 初回スキャン:$ 0.11 / 1イメージ 再スキャン:$ 0.01 / 1回
18 (再掲)Inspector v2 の CI / CD パターン https://aws.amazon.com/jp/blogs/security/use-amazon-inspector-to-manage-your-build-and-deploy-pipelines-for-containerized-applications/
19 Inspector v2 の CI / CD パターン
20 Inspector CI/CD Support アップデート内容 ‧inspector-scan API ‧inspector-sbomgen ‧Inspector v2
の有効化不要 ‧Jenkins, TeamCity とマネージドに統合
21 inspector-scan API
‧AWS CLI, SDK で利⽤可能 ‧ScanSbom アクション ‧SBOM ファイルから脆弱性を検出 ※ SBOM(Software
Bill of Materials) ソフトウェア部品表:ソフトウェアに含まれるコン ポーネントや依存関係を⼀覧化したリスト 22 inspector-scan API
23 inspector-sbomgen
Amazon Inspector SBOM Generator ‧SBOM 作成ツール ‧CycloneDX 1.5 形式での出⼒に対応 ‧対応リソース
‧コンテナイメージ ‧localhost ‧バイナリ(Go か Rust でコンパイルされたもの) 24 inspector-sbomgen
推奨スペック ‧4x core CPU ‧8 GB RAM その他 ‧Linux(AMD, ARM)コンテナのみ対応
‧プライベートレジストリ対応 ‧docker login または環境変数 25 Amazon Inspector SBOM Generator
26 あれ?Inspector v2 って SBOM Export できるよね?
Inspector v2 SBOM Export ‧Inspector v2 で管理しているリソースの SBOM ⽣成 ‧Organizations
や リソース単位でエクスポート可能 ‧Athena, QuickSight で分析可能 27 あれ?Inspector v2 って SBOM Export できるよね?
Inspector v2 SBOM Export ‧Inspector v2 で管理しているリソースの SBOM ⽣成 ‧Organizations
や リソース単位でエクスポート可能 ‧Athena, QuickSight で分析可能 ‧出⼒形式 ‧CycloneDX 1.4(1.5 が必要) ‧SPDX 2.3 28 あれ?Inspector v2 って SBOM Export できるよね?
29 Inspector v2 の有効化不要
IAM のスキーマが Inspector v2 と別管理 ‧Inspector v2 ‧inspector2:CreateSbomExport など ‧Inspector
Scan ‧inspector-scan:ScanSbom 30 Inspector v2 の有効化不要
31 Jenkins, TeamCity とマネージドに統合
32 Jenkins, TeamCity とマネージドに統合 https://aws.amazon.com/jp/blogs/aws/three-new-capabilities-for-amazon-inspector-broaden-the-realm-of-vulnerability-scanning-for-workloads/
33 やってみた
34 Inspector v2 の CI / CD パターン
35 ‧AWS CLI バージョン上げ ‧ビルドしたイメージタグ情報の受け渡し ‧トリアージどうするのか Codebuild(スキャン)で意識すること
利⽤可能なバージョン AWS CLI v2:2.13.38 〜 AWS CLI v1:1.30.5 〜 マネージドイメージ(5.0-23.07.28)
AWS CLI v2:2.13.35 〜 36 AWS CLI バージョン上げ
アクションレベル変数の利⽤(ビルドステージ) 37 ビルドしたイメージタグ情報の受け渡し version: 0.2 env: # 省略 exported-variables: -
IMAGE_URL phases: pre_build: commands: - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-10) - IMAGE_TAG=${COMMIT_HASH:=latest} # 省略 post_build: commands: # 省略 - IMAGE_URL=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
アクションレベル変数の利⽤(ビルドステージ) 38 ビルドしたイメージタグ情報の受け渡し version: 0.2 env: # 省略 exported-variables: -
IMAGE_URL phases: pre_build: commands: - COMMIT_HASH=$(echo $CODEBUILD_RESOLVED_SOURCE_VERSION | cut -c 1-10) - IMAGE_TAG=${COMMIT_HASH:=latest} # 省略 post_build: commands: # 省略 - IMAGE_URL=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_DEFAULT_REGION.amazonaws.com/$IMAGE_REPO_NAME:$IMAGE_TAG
39 トリアージどうするのか
40 トリアージどうするのか
41 トリアージどうするのか
42 トリアージどうするのか aws inspector-scan scan-sbom --sbom file:///tmp/sbom.json --output-format INSPECTOR --query
'sbom.vulnerabilities[?severity==`critical` || severity==`high`]' critical または high のみフィルターする例
44