Kebijakan keamanan pod - Amazon EKS

Bantu tingkatkan halaman ini

Ingin berkontribusi pada panduan pengguna ini? Gulir ke bagian bawah halaman ini dan pilih Edit halaman ini GitHub. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Kebijakan keamanan pod

Pengontrol penerimaan kebijakan Kubernetes Pod keamanan memvalidasi permintaan Pod pembuatan dan pembaruan terhadap seperangkat aturan. Secara default, klaster Amazon EKS dikirimkan dengan kebijakan keamanan yang sepenuhnya permisif tanpa batasan. Untuk informasi selengkapnya, lihat Kebijakan Keamanan Pod di Kubernetes dokumentasi.

catatan

The PodSecurityPolicy (PSP) tidak digunakan lagi dalam Kubernetes versi 1.21 dan dihapus di. Kubernetes 1.25 PSPssedang diganti dengan Pod Security Admission (PSA), sebuah pengontrol masuk bawaan yang mengimplementasikan kontrol keamanan yang diuraikan dalam Pod Security Standards (PSS). PSA dan PSS keduanya telah mencapai status fitur beta, dan diaktifkan di Amazon EKS secara default. Untuk mengatasi PSP penghapusan di1.25, kami sarankan Anda menerapkan PSS di Amazon EKS. Untuk informasi selengkapnya, lihat Menerapkan Standar Keamanan Pod di Amazon EKS di AWS blog.

Kebijakan Pod keamanan default Amazon EKS

Cluster Amazon EKS dengan Kubernetes versi 1.13 atau lebih tinggi memiliki kebijakan Pod keamanan default bernamaeks.privileged. Kebijakan ini tidak memiliki batasan pada jenis apa yang Pod dapat diterima ke dalam sistem, yang setara dengan berjalan Kubernetes dengan PodSecurityPolicy pengontrol dinonaktifkan.

catatan

Kebijakan ini dibuat untuk memelihara kompatibilitas ke belakang dengan klaster yang tidak memiliki pengendali PodSecurityPolicy yang aktif. Anda dapat membuat kebijakan yang lebih ketat untuk klaster Anda, juga untuk namespace individual serta akun layanan, dan kemudian hapus kebijakan default untuk mengaktifkan kebijakan yang lebih ketat.

Anda dapat melihat kebijakan default dengan perintah berikut.

kubectl get psp eks.privileged

Contoh output adalah sebagai berikut.

NAME PRIV CAPS SELINUX RUNASUSER FSGROUP SUPGROUP READONLYROOTFS VOLUMES eks.privileged true * RunAsAny RunAsAny RunAsAny RunAsAny false *

Untuk lebih jelasnya, Anda dapat mendeskripsikan kebijakan dengan perintah berikut.

kubectl describe psp eks.privileged

Contoh output adalah sebagai berikut.

Name:  eks.privileged

Settings:
  Allow Privileged:                       true
  Allow Privilege Escalation:             0xc0004ce5f8
  Default Add Capabilities:               <none>
  Required Drop Capabilities:             <none>
  Allowed Capabilities:                   *
  Allowed Volume Types:                   *
  Allow Host Network:                     true
  Allow Host Ports:                       0-65535
  Allow Host PID:                         true
  Allow Host IPC:                         true
  Read Only Root Filesystem:              false
  SELinux Context Strategy: RunAsAny
    User:                                 <none>
    Role:                                 <none>
    Type:                                 <none>
    Level:                                <none>
  Run As User Strategy: RunAsAny
    Ranges:                               <none>
  FSGroup Strategy: RunAsAny
    Ranges:                               <none>
  Supplemental Groups Strategy: RunAsAny
    Ranges:                               <none>

Anda dapat melihat file YAMB lengkap untuk kebijakan eks.privileged Pod keamanan, peran klaster, dan peran klaster yang mengikat. Instal atau pulihkan kebijakan Pod keamanan default

Hapus kebijakan Pod keamanan Amazon EKS default

Jika Anda membuat kebijakan yang lebih ketat untuk AndaPods, maka setelah melakukannya, Anda dapat menghapus kebijakan eks.privileged Pod keamanan Amazon EKS default untuk mengaktifkan kebijakan kustom Anda.

penting

Jika Anda menggunakan versi 1.7.0 atau yang lebih baru dari plugin CNI dan Anda menetapkan kebijakan Pod keamanan khusus ke akun aws-node Kubernetes layanan yang digunakan untuk aws-node Pods digunakan oleh Daemonset, maka kebijakan tersebut harus ada NET_ADMIN di allowedCapabilities bagiannya bersama dengan hostNetwork: true dan privileged: true di kebijakan tersebut. spec

Untuk menghapus kebijakan Pod keamanan default
  1. Buat file bernama privileged-podsecuritypolicy.yamldengan konten dalam file contoh diInstal atau pulihkan kebijakan Pod keamanan default.

  2. Hapus YAML dengan perintah berikut. Ini menghapus kebijakan Pod keamanan default, yangClusterRole, dan yang ClusterRoleBinding terkait dengannya.

    kubectl delete -f privileged-podsecuritypolicy.yaml

Instal atau pulihkan kebijakan Pod keamanan default

Jika Anda memutakhirkan dari versi sebelumnyaKubernetes, atau telah memodifikasi atau menghapus kebijakan eks.privileged Pod keamanan Amazon EKS default, Anda dapat memulihkannya dengan langkah-langkah berikut.

Untuk menginstal atau memulihkan kebijakan Pod keamanan default
  1. Buat file bernama privileged-podsecuritypolicy.yaml dengan konten berikut.

    apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: eks.privileged annotations: kubernetes.io/description: 'privileged allows full unrestricted access to Pod features, as if the PodSecurityPolicy controller was not enabled.' seccomp.security.alpha.kubernetes.io/allowedProfileNames: '*' labels: kubernetes.io/cluster-service: "true" eks.amazonaws.com/component: pod-security-policy spec: privileged: true allowPrivilegeEscalation: true allowedCapabilities: - '*' volumes: - '*' hostNetwork: true hostPorts: - min: 0 max: 65535 hostIPC: true hostPID: true runAsUser: rule: 'RunAsAny' seLinux: rule: 'RunAsAny' supplementalGroups: rule: 'RunAsAny' fsGroup: rule: 'RunAsAny' readOnlyRootFilesystem: false --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: eks:podsecuritypolicy:privileged labels: kubernetes.io/cluster-service: "true" eks.amazonaws.com/component: pod-security-policy rules: - apiGroups: - policy resourceNames: - eks.privileged resources: - podsecuritypolicies verbs: - use --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: eks:podsecuritypolicy:authenticated annotations: kubernetes.io/description: 'Allow all authenticated users to create privileged Pods.' labels: kubernetes.io/cluster-service: "true" eks.amazonaws.com/component: pod-security-policy roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: eks:podsecuritypolicy:privileged subjects: - kind: Group apiGroup: rbac.authorization.k8s.io name: system:authenticated
  2. Terapkan YAML dengan perintah berikut.

    kubectl apply -f privileged-podsecuritypolicy.yaml