プロファイル適用性: レベル1 - マスターノード
Kubernetes APIはシークレットを保存します。これには、Kubernetes APIのサービスアカウントトークンやクラスター内のワークロードで使用される認証情報が含まれる場合があります。これらのシークレットへのアクセスは、特権昇格のリスクを減らすために、可能な限り少数のユーザに制限する必要があります。
Kubernetesクラスター内に保存されている秘密への不適切なアクセスは、攻撃者がKubernetesクラスターや認証情報が秘密として保存されている外部リソースへの追加アクセスを得ることを可能にします。
注意デフォルトでは、kubeadmクラスター内の以下のプリンシパルが
secretオブジェクトに対してget権限を持っています。
CLUSTERROLEBINDING SUBJECT TYPE SA-NAMESPACE cluster-admin system:masters Group system:controller:clusterrole-aggregation-controller clusterroleaggregation- controller ServiceAccount kube-system system:controller:expand-controller expand-controller ServiceAccount kube-system system:controller:generic-garbage-collector generic-garbagecollector ServiceAccount kube-system system:controller:namespace-controller namespace-controller ServiceAccount kube-system system:controller:persistent-volume-binder persistent-volumebinder ServiceAccount kube-system system:kube-controller-manager system:kube-controllermanager User |
影響
システムコンポーネントが動作に必要とする秘密へのアクセスを削除しないよう注意してください。
監査
Kubernetes APIで
secretsオブジェクトに対してget、list、またはwatchアクセス権を持つユーザを確認してください。修復
可能であれば、クラスター内のシークレットオブジェクトへのアクセスを制限するために、取得、一覧表示、および監視の権限を削除してください。
