目的
IBM Cloud Kubernetes Serviceクラスター内のClusterとWorkerをKeyProtectで暗号化し、
その後、誤ってKeyProtectのKeyを無効/削除してしまったことを想定した挙動を確認する
https://cloud.ibm.com/docs/containers?topic=containers-encryption#worker-encryption-vpc
各パターンごとに動作を確認する
パターン | Worker Pool Encryption | Cluster Encryption |
---|---|---|
A | ON | ON |
B | OFF | ON |
C | ON | OFF |
ON = Encryptionを有効化
OFF = Encryptionを無効化
全クラスタはROKS4.18(RHCOS WorkerNode)
Key Protectの作成
検索画面にて「Key」等で検索し、Key Protectを選択
Select a location -> 利用予定のロケーションを選択
Service Name -> KeyProtectインスタンスの名前
Allowed network polocy -> PublicとPrivateもしくはPrivate Onlyどちらで使うか選択
Root Key -> KeyNameを選択 -> Add Keyを選択
削除テストの実施
A/B/Cのパターンに同一のRootKeyを使用し、
RootKeyを削除した時にClusterやWorkerNodeがどうなるか確認する
A Worker
% oc get node
NAME STATUS ROLES AGE VERSION
kube-d3au4drt0e3chbtpk560-dltest-default-0000019c Ready worker 6m23s v1.31.12
kube-d3au4drt0e3chbtpk560-dltest-default-00000201 Ready worker 6m19s v1.31.12
B Worker
% oc get node
NAME STATUS ROLES AGE VERSION
kube-d3au5sat05lsk8k5pen0-dltestonly-default-0000013a Ready worker 5m15s v1.31.12
kube-d3au5sat05lsk8k5pen0-dltestonly-default-000002fc Ready worker 5m27s v1.31.12
C Worker
% oc get node
NAME STATUS ROLES AGE VERSION
kube-d3au6fut027mlilpk56g-dltestcluso-default-00000156 Ready worker 2m56s v1.31.12
kube-d3au6fut027mlilpk56g-dltestcluso-default-000002ac Ready worker 2m27s v1.31.12
RootKey Disableテスト
Root Keyのdisableを実施
A/CパターンでMaster Statusが「Key management service enablement in progress.」となる
WorkerNodeをリプレイスを試行
全パターンでステータスが下記となり、プロビジョニングが失敗する
Status
Attempting to provision worker (attempt 3) - 'vpc-gen2' infrastructure exception: The CRN specified in the request is not valid.
RootKeyを無効後、しばらく放置
A/Cのパターン(WorkerNode Encryptionを有効化しているパターン)のみWorkerNodeステータスがクリティカルとなる。
RootKeyのEnableの実施
RootKeyをEnableとしエラーが解消するか確認
プロビジョニングが失敗していたノードは、有効化するとWorkerNodeのプロビジョニングが再開された
Status
Infrastructure instance status is 'starting'
WorkerNodeステータスがクリティカルとなっていたノードも復旧
RootKeyの削除と復旧
RootKeyの削除
KeyNameを入力し、チェックマークを選択後、Delete Keyを選択
RootKeyの復元
RootKeyの削除後、30日以内であればまだ復旧が可能
https://cloud.ibm.com/docs/key-protect?topic=key-protect-restore-keys&interface=ui#restore-ui
Stateフィルターで「Deleted」のみを選択し、Applyを選択
削除したが復旧可能なRootKeyが表示されるので、「Restore」を選択
ClusterのWorkerNodeのエラーはRootKeyを復旧すれば、しばらく経過後にエラーは解消される。