VPC環境で利用できます。
Ncloud Kubernetes Serviceでは NCP Key Management Service(KMS)と Kubernetesの Encrypting Confidential Data at Restを活用して、etcdに保存されるシークレットを暗号化できます。
制限事項
- Kubernetes 1.28バージョン以上から提供します
- 1.28以前バージョンのクラスタは、アップグレード機能を利用して必要なバージョンを満たした後に使用できます。
- 一度設定されたシークレット暗号化機能は、解除・変更できません。
注意
使用中の KMSキーを削除する場合、クラスタのシークレットを復旧できません。
必須条件
- NCP KMSにキーが作成されている必要があります。
- キーの用途は暗/複合化(AES-256)であり、収束暗号化は無効になっている必要があります
- KMSキーの情報照会のため SubAccountの場合、以下の権限を追加します。
- Service: Key Management Service
- アクション名: View/getKeyList、View/getKeyInfo
- Service: Key Management Service
シークレット暗号化設定(クラスタ作成時の設定)
- Ncloud Kubernetes Service > Clusters で [作成する] ボタンをクリックします。
- シークレット暗号化 で [設定] を選択します。
- シークレット暗号化で使用するキーを選択します。
- クラスタ設定の完了後、クラスタを作成します。
シークレット暗号化設定(既存クラスタの設定)
- Ncloud Kubernetes Service > クラスタ > 詳細情報 > シークレット暗号化 で、 [設定] ボタンをクリックします。
- シークレット暗号化に使用するキーを選択し、 [確認] ボタンをクリックします。
- クラスタが 設定中 ステータスに変更され、シークレット暗号化の設定が行われます。
- シークレット暗号化の設定が完了すると、クラスタが 運用中 ステータスに変わります。
- 既存のクラスタにシークレット暗号化を設定した場合、新しいキーを活用して既存のシークレットを再暗号化します。
$ kubectl get secrets --all-namespaces -o json | kubectl replace -f -
キーローテーション
- KMSキーは自動ローテーションで定期的にキーローテーションを実行する方が、セキュリティ上安全です。
- KMSキーがローテーションすると、既存のシークレットは以前キーのバージョンで暗号化された状態で維持されます。
- KMSキーがローテーションすると、新しく作成されるシークレットは新しいキーで暗号化されますが、既存のシークレットは再暗号化する必要があります。
$ kubectl get secrets --all-namespaces -o json | kubectl replace -f -