レガシーポッドセキュリティポリシー (PSP) からの移行
PodSecurityPolicy
は Kubernetes1.211.25
で削除されました。クラスターで PodSecurityPolicy を使用している場合は、ワークロードの中断を避けるために、クラスターをバージョン *1.25
にアップグレードする前に、組み込みの Kubernetes ポッドセキュリティ標準 (PSS) または Policy as Code ソリューションに移行する必要があります。* 詳細については、よくある質問を選択してください。
PodSecurityPolicy
これは Kubernetes プロジェクトにおけるアップストリームの変更であり、Amazon EKS で行われた変更ではありません。PSP は、Kubernetes 1.21
で非推奨となり、Kubernetes 1.25
で削除されました。Kubernetes コミュニティは、PSP の深刻なユーザビリティの問題を特定しました。これらには、意図したよりも広範な許可の誤った付与や、特定の状況で PSPs が適用する検査における困難が含まれます。これらの問題は、重大な変更を加えることなく対処することができませんでした。これを主な理由として、Kubernetes コミュニティは PSP を削除
クラスターで PSPs を使用しているかどうかを確認するために、次のコマンドを実行できます。
kubectl get psp
クラスター内の PSPs が影響を与えている Pods を確認するには、次のコマンドを実行します。このコマンドは Pod 名、名前空間、PSPs を出力します。
kubectl get pod -A -o jsonpath='{range.items[?(@.metadata.annotations.kubernetes\.io/psp)]}{.metadata.name}{"\t"}{.metadata.namespace}{"\t"}{.metadata.annotations.kubernetes\.io/psp}{"\n"}'
クラスターを 1.25
にアップグレードする前に、PSPs を次のいずれかに移行する必要があります。
-
Kubernetes PSS.
-
Kubernetes 環境からの Policy as Code ソリューション。
PSP が非推奨となったことや、最初から Pod セキュリティを制御することに対する継続的なニーズに対応して、Kubernetes コミュニティは (PSS)
組み込みの PSS に PSPs を移行するためのベストプラクティスは、「EKS ベストプラクティスガイド
Policy as Code ソリューションは、クラスターユーザーをガイドするガードレールを提供し、規定の自動化されたコントロールを通じて望ましくない動作を防止します。Policy as Code ソリューションは通常、Kubernetes ダイナミックアドミッションコントローラー
Kubernetes で利用できるオープンソースの Policy as Code ソリューションがいくつかあります。PSPs を Policy as Code ソリューションに移行するためのベストプラクティスを確認するには、GitHub のポッドセキュリティのページの「Policy as Code
Kubernetes バージョン 1.13
以降の Amazon EKS クラスターには、eks.privileged
という名前のデフォルトの PSP があります。このポリシーは、1.24
および以前のクラスターで作成されます。1.25
以降のクラスターでは使用されません。Amazon EKS は、この PSP を PSS ベースの適用に自動的に移行します。お客様側でのご対応は不要です。
いいえ。Amazon EKS によって作成された PSP である eks.privileged
に加えて、1.25
にアップグレードしても、クラスター内の他の PSPs は変更されません。
いいえ。まだ PSP から移行していない場合でも、クラスターのバージョン 1.25
への更新が Amazon EKS によって妨げられることはありません。
PSP を含むクラスターが Kubernetes バージョン 1.25
にアップグレードされると、API サーバーは 1.25
の PSP リソースを認識しません。これにより、Pods が誤ったセキュリティスコープを取得する可能性があります。影響の詳細なリストについては、「PodSecurityPolicy から組み込みの PodSecurity アドミッションコントローラーに移行する
Windows ワークロードに対する特定の影響はないと想定されています。PodSecurityContext は、Windows Pods の PodSpec v1
API で windowsOptions
というフィールドを持っています。これは Kubernetes 1.25
で PSS を使用します。Windows ワークロードの PSS の適用に関する詳細とベストプラクティスについては、「EKS ベストプラクティスガイド