オペレーションコンテナのスキャニング
オペレーションコンテナのスキャンを有効にしました。
運用コンテナスキャンを使用すると、クラスター内のコンテナイメージをスキャンしてセキュリティ脆弱性を検出できます。agent config
で設定したケイデンスでスキャナを実行できるようにするか、エージェントを収容するプロジェクト内でscan execution policies
を設定します。
agent config
とscan execution policies
の両方が設定されている場合は、scan execution policy
の設定が優先されます。エージェント設定による有効化
エージェント設定を介してKubernetesクラスタ内のすべてのイメージのスキャンを有効にするには、スキャンを実行するときのCRON式を含むcadence
フィールドを持つcontainer_scanning
設定ブロックをエージェント設定に追加します。
container_scanning:
cadence: '0 0 * * *' # Daily at 00:00 (Kubernetes cluster time)
cadence
フィールドは必須です。GitLabはcadenceフィールドに対して以下のタイプのCRON構文をサポートしています:
- 例えば、1日1回、1時間に1回、指定された時間に、といった具合です:
0 18 * * *
- 週に一度、指定された日に、指定された時間に:
0 13 * * 0
デフォルトでは、オペレーショナルコンテナスキャンは、すべてのネームスペースのワークロードの脆弱性のスキャンを試みます。スキャンするネームスペースを制限するために使用できるnamespaces
フィールドでvulnerability_report
ブロックを設定できます。たとえば、default
、kube-system
のネームスペースだけをスキャンしたい場合は、この設定を使用できます:
container_scanning:
cadence: '0 0 * * *'
vulnerability_report:
namespaces:
- default
- kube-system
スキャン実行ポリシーで有効にします。
スキャン実行ポリシー経由でKubernetesクラスタ内のすべてのイメージのスキャンを有効にするには、スキャン実行ポリシーエディタを使って新しいスケジュールルールを作成します。
以下は、Kubernetesエージェントが接続されているクラスター内で運用コンテナスキャンを有効にするポリシーの例です:
- name: Enforce Container Scanning in cluster connected through my-gitlab-agent for default and kube-system namespaces
enabled: true
rules:
- type: schedule
cadence: '0 10 * * *'
agents:
<agent-name>:
namespaces:
- 'default'
- 'kube-system'
actions:
- scan: container_scanning
スケジュールルールのキーは次のとおりです:
-
cadence
(必須): スキャンを実行するcron式 -
agents:<agent-name>
(必須):スキャンに使用するエージェント名 -
agents:<agent-name>:namespaces
(オプション):スキャンするKubernetes名前空間。省略された場合、すべての名前空間がスキャンされます。
完全なスキーマはスキャン実行ポリシーのドキュメントで見ることができます。
スキャナのリソース要件の設定
スキャナポッドのデフォルトのリソース要件は次のとおりです:
requests:
cpu: 100m
memory: 100Mi
limits:
cpu: 500m
memory: 500Mi
resource_requirements
フィールドでカスタマイズできます。
container_scanning:
resource_requirements:
requests:
cpu: 200m
memory: 200Mi
limits:
cpu: 700m
memory: 700Mi
Operational Container Scanning
からscan execution policies
を有効にした場合、エージェント設定ファイル内でリソース要件を定義する必要があります。クラスターの脆弱性の表示
GitLabで脆弱性情報を見るには:
- 左のサイドバーで、Search を選択するか、エージェント設定ファイルを含むプロジェクトを検索してください。
- オペレーション > Kubernetesクラスターを選択します。
- エージェントタブを選択します。
- エージェントを選択して、クラスターの脆弱性を表示します。
この情報は、オペレーションの脆弱性でも確認できます。
非公開画像のスキャン
非公開画像をスキャンするには、スキャナは画像のプルシークレット(直接参照とサービスアカウントからの参照)を頼りに画像をプルします。