2024-11-09 14:01:41 +09:00

7.1 KiB
Raw Permalink Blame History

MeDaCA ECR脆弱スキャンツール

前提

  • docker cliインストール済み(WSL想定)
  • AWS CLIインストール済み
  • AWS CLIでアカウント情報設定されていること

実行方法

ECRをビルド、タグ、プッシュする

  • vulnerability-scanの直下フォルダで以下コマンド実行する
bash build-push-scanpoint.sh
  • 実行したコマンド失敗したとき、スクリプトが停止する
  • その場合はbuild-push-scanpoint直下から失敗したコマンド単体実行できる
    • 例:bash build-dataimport.sh
  • スクリプトを強制停止したい場合、Ctrl + Cで停止できる

ビルドしたECRをlatestに再タグ、プッシュする

  • 前提ECRにプッシュしたscan-pointタグのイメージでステージング環境での動作確認が完了していること。
  • vulnerability-scanの直下フォルダで以下コマンド実行する
bash retag-push-latest.sh
  • 実行したコマンド失敗したとき、スクリプトが停止する
  • その場合はretag-push-latest直下から失敗したコマンド単体実行できる
  • 例:bash retag-dataimport.sh
  • スクリプトを強制停止したい場合、Ctrl + Cで停止できる

チェックスクリプト実行方法

  • cd validate-image-digestコマンドでディレクトリ変更する
  • bash validate-stg-latest-scanpoint-digest.sh でステージングECRのlatestとscan-pointダイジェストを比較するスクリプト実行する
  • bash validate-stg-prd-ecr-digest.sh でステージングECRのlatestと本番ECRのlatestダイジェストを比較するスクリプト実行する
  • bash validate-prd-lambda-digest.sh で本番ECRのlatestと本番Lambdaのダイジェストを比較するスクリプト実行する

フォルダ構成

├── build-push-scanpoint.sh -- 全ECRモジュールをアップデート、Dockerイメージにビルドし、プッシュするスクリプト ├── retag-push-latest.sh -- ビルドしたDockerイメージをlatestの再タグして、ステージング環境と本番環境にプッシュするスクリプト ├── README.md -- 当ファイル ├── build-push-scanpoint │ ├── build-dataimport.sh -- データ登録機能の脆弱性スキャンスクリプト │ ├── build-sap-data-decrypt.sh -- SAPデータ登録 SAPデータ復号化機能脆弱性スキャンスクリプト │ ├── build-check-view-security-option.sh -- Viewセキュリティオプションチェック機能脆弱性スキャンスクリプト │ ├── build-crm-datafetch.sh -- CRMデータ連携 CRMデータ取得機能脆弱性スキャンスクリプト │ ├── build-jskult-dbdump.sh -- 実消化&アルトマーク日次バッチ実行前dump取得機能脆弱性スキャンスクリプト │ ├── build-jskult-batch-daily.sh -- 実消化&アルトマーク日次バッチ機能脆弱性スキャンスクリプト │ ├── build-jskult-batch-laundering.sh -- 実消化&アルトマーク週次バッチ機能脆弱性スキャンスクリプト │ ├── build-jskult-webapp.sh -- 実消化&アルトマークWebアプリケーション脆弱性スキャンスクリプト | ├── build-export-dbdump.sh -- DBダンプ取得機能脆弱性スキャンスクリプト | └── build-transfer-medpass-data.sh -- medパス社データ転送機能脆弱性スキャンスクリプト ├── retag-push-latest | ├── retag-dataimport.sh -- データ登録機能の再タグ本番環境にプッシュスクリプト | ├── retag-sap-data-decrypt.sh -- SAPデータ登録 SAPデータ復号化機能再タグ本番環境にプッシュスクリプト | ├── retag-check-view-security-option.sh -- Viewセキュリティオプションチェック機能再タグ本番環境にプッシュスクリプト | ├── retag-crm-datafetch.sh -- CRMデータ連携 CRMデータ取得機能再タグ本番環境にプッシュスクリプト | ├── retag-jskult-dbdump.sh -- 実消化&アルトマーク日次バッチ実行前dump取得機能再タグ本番環境にプッシュスクリプト | ├── retag-jskult-batch-daily.sh -- 実消化&アルトマーク日次バッチ機能再タグ本番環境にプッシュスクリプト | ├── retag-jskult-batch-laundering.sh -- 実消化&アルトマーク週次バッチ機能再タグ本番環境にプッシュスクリプト | ├── retag-jskult-webapp.sh -- 実消化&アルトマークWebアプリケーション再タグ本番環境にプッシュスクリプト | ├── retag-export-dbdump.sh -- DBダンプ取得機能再タグ本番環境にプッシュスクリプト | └── retag-transfer-medpass-data.sh -- medパス社データ転送機能再タグ本番環境にプッシュスクリプト └── validate-image-digest ├── validate-prd-lambda-digest.sh -- LambdaとECRのダイジェストチェックスクリプト ├── validate-stg-latest-scanpoint-digest.sh -- ステージングlatestとscan-pointのダイジェストチェックスクリプト └── validate-stg-prd-ecr-digest.sh -- 本番とステージングのダイジェストチェックスクリプト

作成タイミングと作成方法

作成タイミング

  • ECRリポジトリにて資材を管理する機能のUAT完了後、脆弱性スキャン手順を作成するタイミングで、当スクリプトをreleaseブランチに登録する。

作成方法

  • 脆弱性スキャンスクリプトをbuild-push-scanpointフォルダ配下に作成する。
    • vulnerability-scan/build-push-scanpoint/build-crm-datafetch.sh を参考にしてスクリプト実装する
    • リポジトリによってコマンドの組み方が微妙に異なるため、作成後にレビューを受けること
  • 実装したスクリプトを親スクリプトvulnerability-scan/build-push-scanpoint.shに追加する
  • 再タグ&本番環境へのPUSHスクリプトをretag-push-latestフォルダ配下に作成する。
    • vulnerability-scan/retag-push-latest/retag-dataimport.sh を参考にしてスクリプト実装する
  • 実装したスクリプトを親スクリプトvulnerability-scan/retag-push-latest.shに追加する