23
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ECRでコンテナ脆弱性診断が標準実装されていたので試してみた

Last updated at Posted at 2019-10-24

※2019/10/29(火)追記:
公式で発表されてました!合わせて、issuesもClosedになっていました。
Native Container Image Scanning in Amazon ECR
公式ドキュメント

※2019/10/27(日)追記:
再び利用可能になっていました。
下記のissuesに経緯等が記載されています。
ECR Image vulnerability scanning #17

※2019/10/25(金)追記:
本機能は使用出来なくなっているようです。

ECRでスキャン?

今日の業務中にふとECR画面見たら、「スキャン」の表示を見つける。
コンテナの脆弱性診断が実装されてる?
ん?こんなのあったっけ。見落としていただけかな。ということで触ってみた。

リポジトリ作成

1.png 「プッシュ時にスキャン」画面メニューがある。とりあえず、リポジトリ作成してみる。 2.png なるほど、`docker push`でコンテナ登録する時にスキャンが走るようだ。有効にしてみる。 3.png 有効になった。

コンテナをECRに登録

試しにcentosのコンテナをpushして、スキャンをしてみる。

# centos:latestのコンテナをローカルに落とす。
docker pull centos:latest

# ECR用のタグを設定
docker tag centos:latest [AWSアカウントID].dkr.ecr.ap-northeast-1.amazonaws.com/centos:1.0

# ECRログイン
$(aws ecr get-login --no-include-email --region ap-northeast-1)

# ECRのcentosリポジトリにpushする。
docker push [AWSアカウントID].dkr.ecr.ap-northeast-1.amazonaws.com/centos:1.0

スキャン完了。そして脆弱性確認へ・・・

4.png

スキャンは完了!脆弱性があるようなので、詳細を見てみる。

5.png 概要で脆弱性の件数とパッケージ毎の脆弱性説明が表示される。 例では重要度が`Critical`はないが、`High`と`Medium`がそれぞれ指摘された。 名前がリンクになっているのでクリックすると・・・ 6.png 指摘毎に対処ページが表示される。便利。

脆弱性の対応をしてみる。

パッケージのバージョンアップをすることで、脆弱性指摘が減るか確認してみる。

FROM centos:latest
LABEL maintainer "portfield"

RUN yum -y update && yum clean all

OSアップデートするDockerfileを書く。シンプル。
centosディレクトリにファイルを配置。

# ECR用でバージョン上げてDockerイメージ作成
docker build -t [AWSアカウントID].dkr.ecr.ap-northeast-1.amazonaws.com/centos:1.1 centos

# ECRのcentosリポジトリにpushする。
docker push [AWSアカウントID].dkr.ecr.ap-northeast-1.amazonaws.com/centos:1.1

再びスキャン完了。脆弱性確認へ・・・

7.png 上がOSアップデート前、下がOSアップデート後のDockerイメージ。 脆弱性件数が減っていることから、OSアップデートにより、脆弱性が減ったことが分かる。 詳細も見てみよう。 8.png OSアップデートだけでは対処出来なかった脆弱性が表示される。 名前のリンクと説明を頼りに対応しよう。今回は対応しない。。

スキャンを有効にしていなくてもOK。

9.png 手動実行出来るので、大丈夫。 10.png このように進行中となり、最終的に完了する。

まとめ

・以上のように、リポジトリの設定を有効にするだけで、簡単に使用することが出来た。
CI/CDの一環でソース更新時にDockerイメージを自動作成し、ECRにpushしているケースも多いと思うので、便利に使用出来そう。
・というか、元々あったのだろうか???ドキュメント探しても見つからない。。
裏で何をベースにスキャンしているとか、情報があったら欲しいです。。

23
10
10

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
23
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?