VKS クラスタノードで VM ユーザーのロックを解除する方法
search cancel

VKS クラスタノードで VM ユーザーのロックを解除する方法

book

Article ID: 423760

calendar_today

Updated On:

Products

VMware vSphere Kubernetes Service

Issue/Introduction

免責事項:これは英文の記事「How to unlock VM users in VKS cluster nodes」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。

VKS クラスタノード上のユーザーアカウントは、VKr の STIG 適用ルールにより、ログイン試行が複数回失敗するとロックされます。
このドキュメントでは、誤ったパスワードを繰り返し入力したためにユーザーアカウントがロックされた場合に、ロックを解除する手順について説明します。

Environment

VMware vSphere Kubernetes Service

Cause

VKr の STIG 適用ルールにより、ログイン試行が複数回失敗すると、VKS クラスター ノード上のユーザー アカウントがロックされます。

Resolution

1. 以下の内容で unlock_vmware-user.yaml という .yaml ファイルを作成します。

unlock_vmware_user.yaml

apiVersion: apps/v1
kind: DaemonSet
metadata:
name: unlock-vmware-user
namespace: kube-system
spec:
selector:
matchLabels:
app: unlock-vmware-user
template:
metadata:
labels:
app: unlock-vmware-user
spec:
hostNetwork: true
volumes:
- name: hostfs
hostPath:
path: /
initContainers:
- name: unlock-sudo
image: photon:5.0
command:
- /bin/sh
- -xc
- |
echo "Checking faillock for vmware-system-user..."
chroot /host faillock --user vmware-system-user || true
echo "Resetting faillock for vmware-system-user..."
chroot /host faillock --user vmware-system-user --reset
echo "Done"
chroot /host faillock --user vmware-system-user
securityContext:
privileged: true
runAsUser: 0
runAsGroup: 0
allowPrivilegeEscalation: true
capabilities:
add: ["ALL"]
volumeMounts:
- name: hostfs
mountPath: /host
containers:
- name: sleep
image: localhost:5000/vmware.io/pause:3.10
securityContext:
runAsNonRoot: true
allowPrivilegeEscalation: false
capabilities:
drop: ["ALL"]
seccompProfile:
type: RuntimeDefault
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
- key: CriticalAddonsOnly
operator: Exists
- key: node.alpha.kubernetes.io/notReady
operator: Exists
effect: NoExecute
- key: node.alpha.kubernetes.io/unreachable
operator: Exists
effect: NoExecute

これにより、unlock_vmware_user.yaml という yaml ファイルが作成され、ワークロードクラスタ(ゲストクラスタとも呼ばれます)に適用できます。
上記の YAML ファイルのとおり、この DaemonSet はワークロードクラスタ内の各ノードに Pod を作成し、vmware-system-user のロックを解除するためのいくつかのコマンドを実行します。
この DaemonSet およびその Pod は、vmware-system-user の有効期限切れを防ぐため、ワークロードクラスタのアップグレード後も存続しますが、pause イメージのバージョン変更が必要になる場合があります。
vmware-system-user は、VMware by Broadcom サポートがワークロードクラスタのトラブルシューティングを行うためのシステムユーザーです。

2. 以下のいずれかのドキュメントに従って、kubectl vsphere login コマンドを使用し、ワークロードクラスタにログインします。

3. 上記手順 1 で作成した DaemonSet の .yaml を適用します。

kubectl apply -f unlock_vmware-user.yaml 


4. DaemonSet の Ready 数が、環境内のノード総数と一致していることを確認します。
注:cluster-admin DaemonSet は、通常 default ネームスペースに作成されます。

kubectl get ds unlock_vmware-user -n kube-system

 

Additional Information

注記: