1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS ECRのマルチステージビルドにおける脆弱性スキャンの挙動について

Posted at

はじめに

AWS ECR(Elastic Container Registry)の脆弱性スキャン機能は、コンテナイメージのセキュリティを確保する上で重要な役割を果たしています。

マルチステージビルドを使用する場合、その挙動について注意すべき点があることがわかりました。

重要な発見

マルチステージビルドにおけるECRの脆弱性スキャンには、以下のような特徴があります:

  1. スキャン対象となるのは、最終的にプッシュされる最後のステージのイメージのみ
  2. 中間ステージ(builderステージなど)はスキャン対象外

具体例で見る挙動

以下のような一般的なマルチステージビルドのDockerfileを例に考えてみましょう:

FROM node:21-alpine AS builder   # スキャン対象外
WORKDIR /app
COPY . .
RUN yarn install && yarn build

FROM node:21-alpine             # このイメージがスキャン対象
COPY --from=builder /app/dist ./dist
CMD ["node", "dist/index.js"]

重要なポイント

  • builderステージで使用されているパッケージやライブラリの脆弱性は、最終イメージに含まれていない限り、スキャンでは検出されません
  • これは、builderステージのイメージがECRにプッシュされないためです

実務上の影響と注意点

この挙動は以下のような影響をもたらす可能性があります:

  1. 見落としのリスク

    • ビルド時に使用される脆弱性のあるパッケージが、最終的な成果物に影響を与える可能性
    • ビルドプロセス自体が攻撃の対象となるリスク
  2. セキュリティ対策

    • ビルドステージでも安全なベースイメージとパッケージを使用することが重要
    • 必要に応じて、ビルドステージのイメージも個別にスキャンを検討

まとめ

AWS ECRの脆弱性スキャンは、マルチステージビルドの最終イメージのみをスキャン対象としています。このため、ビルドプロセス全体のセキュリティを確保するためには、追加的な対策が必要となる場合があります。

開発チームは、この制限を理解した上で、適切なセキュリティ対策を実装することが重要ですね💡

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?