Skip to content

セキュリティポリシー

CI/CD Adapterのセキュリティポリシー

Qmonus Value Streamでは、CI/CD Adapterから生成される Tekton Pipeline/Taskの権限やアクセスポリシーを制御しています。ポリシーはK8s Pod Security StandardのBaseline相当を適用しています。

セキュリティポリシー違反が検知された場合は、サポートチームから該当Projectの方へ個別に連絡させていただきます。 セキュリティポリシーは猶予期間を設けていますが、期間を過ぎた場合はAssemblyLineを利用したアプリケーションのデプロイが出来なくなるため、ポリシー違反検出の連絡を受けた場合は早急に対応をお願い致します。

Official Cloud Native Adapterだけをご利用している場合は、Official Cloud Native Adapterをご利用の場合の手順を実施してください。

ポリシー違反の対処方法

Official Cloud Native Adapter をご利用している場合と、それ以外で対処方法が異なります。

いずれの場合も、対処後にPipeline/Taskの生成および適用し直す必要があります。

TIP

Official Cloud Native Adapter をご利用しているかどうかの判断が付かない場合は、「Official Cloud Native Adapter をご利用の場合」の対処方法をお試しください。 問題が解決しない場合は、「それ以外の Cloud Native Adapter をご利用の場合」を実施ください。

Official Cloud Native Adapter をご利用の場合

QVS Configを保存しているディレクトリで qvsctl adapter get コマンドを再実行してOfficial Cloud Native Adapterを最新化してください。

ダウンロード可能な Adapter は qvsctl adapter list コマンドからご確認ください。 version を指定しない、または latest とした場合は最新のバージョンをダウンロードします。

それ以外の Cloud Native Adapter をご利用の場合

サポートチームから連絡された違反ポリシーより、該当するポリシー名を参照し、対処方法の内容でCI/CD AdapterのPipeline定義を修正します。 必要に応じて各ポリシーの「関連するk8sのPod Security Standard」も参照してください。

ポリシー一覧

disallow-capabilities

特定のCapabilityを持つコンテナを許可しない。

関連するk8sのPod Security Standard: Capabilities

対処方法

spec.*.securityContext.capabilities.addフィールドには以下の値以外は設定しないでください。

  • AUDIT_WRITE
  • CHOWN
  • DAC_OVERRIDE
  • FOWNER
  • FSETID
  • KILL
  • MKNOD
  • NET_BIND_SERVICE
  • SETFCAP
  • SETGID
  • SETPCAP
  • SETUID
  • SYS_CHROOT

disallow-host-namespaces

Host名前空間を使用しない。

関連するk8sのPod Security Standard: Host Namespaces

対処方法

以下のフィールドを削除するか false に設定してください。

  • spec.hostNetwork
  • spec.hostIPC
  • spec.hostPID

disallow-host-path

hostPathボリュームを使用しない。

関連するk8sのPod Security Standard: HostPath Volumes

対処方法

以下のフィールドを削除してください。

  • spec.volumes[*].hostPath

disallow-host-ports

hostPortを使用しない。

関連するk8sのPod Security Standard: Host Ports

対処方法

以下のフィールドを削除するか、0に設定してください。

  • spec.containers[].ports[].hostPort
  • spec.initContainers[].ports[].hostPort
  • spec.ephemeralContainers[].ports[].hostPort

disallow-host-process

ホストのプロセスを参照または操作しない。

関連するk8sのPod Security Standard: HostProcess

対処方法

以下のフィールドを削除してください。

  • spec.securityContext.windowsOptions.hostProcess
  • spec.containers[].securityContext.windowsOptions.hostProcess
  • spec.initContainers[].securityContext.windowsOptions.hostProcess
  • spec.ephemeralContainers[*].securityContext.windowsOptions.hostProcess

disallow-privileged-containers

特権コンテナを使用しない。

関連するk8sのPod Security Standard: Privileged Containers

対処方法

以下のフィールドを削除するか、falseに設定してください。

  • spec.containers[].securityContext.privileged
  • spec.initContainers[].securityContext.privileged

disallow-proc-mount

/procを読み取ることができないようにする。

関連するk8sのPod Security Standard: /proc Mount Type

対処方法

以下のフィールドを削除するか、 Defaultに設定してください。

  • spec.containers[].securityContext.procMount
  • spec.initContainers[].securityContext.procMount
  • spec.ephemeralContainers[*].securityContext.procMount

disallow-selinux

SELinuxを無効にしない。

関連するk8sのPod Security Standard: SELinux

対処方法

制限されるフィールドを削除するか、許容される値を設定してください。

  • 制限されるフィールド

    • spec.containers[*].securityContext.seLinuxOptions.type
    • spec.initContainers[*].securityContext.seLinuxOptions
    • spec.ephemeralContainers[*].securityContext.seLinuxOptions.type
  • 許容される値

    • container_t
    • container_init_t
    • container_kvm_t

restrict-apparmor-profiles

特定のAppArmorプロファイルのみを許可する。

関連するk8sのPod Security Standard: AppArmor

対処方法

制限されるフィールドを削除するか、許容される値を設定してください。

  • 制限されるフィールド

    • container.apparmor.security.beta.kubernetes.io
  • 許容される値

    • runtime/default
    • localhost/*

restrict-seccomp

Seccompプロファイルを無効にしない。

関連するk8sのPod Security Standard: Seccomp

対処方法

制限されるフィールドを削除するか、許容される値を設定してください。

  • 制限されるフィールド

    • spec.securityContext.seccompProfile.type
    • spec.containers[].securityContext.seccompProfile.type
    • spec.initContainers[].securityContext.seccompProfile.type
    • spec.ephemeralContainers[*].securityContext.seccompProfile.type
  • 許容される値

    • RuntimeDefault
    • Localhost

restrict-sysctls

Sysctlパラメータを無効にしない。

関連するk8sのPod Security Standard: Sysctls

対処方法

spec.securityContext.sysctlsフィールドを削除するか、以下の値を指定してください。

  • kernel.shm_rmid_forced
  • net.ipv4.ip_local_port_range
  • net.ipv4.ip_unprivileged_port_start
  • net.ipv4.tcp_syncookies
  • net.ipv4.ping_group_range