kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Terraform で Amazon ECR の基本スキャンをレジストリレベルで設定する

Amazon ECR で Basic scanning(基本スキャン)を使う場合に「リポジトリレベル」の設定は現在推奨されてなく,マネジメントコンソール上だと リポジトリレベルの ScanOnPush 設定は非推奨となり、レジストリレベルのスキャンフィルターが優先されます。 のように警告が表示される🚨 現在は「レジストリレベル」での設定をする必要がある💡

Terraform だと aws_ecr_registry_scanning_configuration リソースを使って設定できる.scan_type には BASIC もしくは ENHANCED を設定できて,今回は東京リージョン (ap-northeast-1) と大阪リージョン (ap-northeast-3) に設定するため BASIC とする.大阪リージョンに Amazon Inspector 来てくれぇ〜🙏

resource "aws_ecr_registry_scanning_configuration" "main" {
  scan_type = "BASIC"

  rule {
    scan_frequency = "SCAN_ON_PUSH"

    repository_filter {
      filter      = "*"
      filter_type = "WILDCARD"
    }
  }
}

ちなみに Basic scanning(基本スキャン)の場合は scan_frequencySCAN_ON_PUSHMANUAL を指定できて,気になって CONTINUOUS_SCAN を指定してみたら terraform apply 時にエラーが出た.メモしておく〜 φ(..)

Error: creating ECR Registry Scanning Configuration: InvalidParameterException: Invalid parameter failed to satisfy constraint: 'Invalid scan frequency for scanType BASIC: CONTINUOUS_SCAN'

結果

期待通りに構築できた❗️

今回はフィルタで * を指定したので プッシュ時にすべてのリポジトリをスキャンする に ✅ が入っている〜

東京リージョン (ap-northeast-1)

東京リージョンは「基本スキャン」と「拡張スキャン」から選べる

大阪リージョン (ap-northeast-3)

大阪リージョンは「基本スキャン」のみ選べる

関連記事

kakakakakku.hatenablog.com