Container Service for Kubernetes (ACK) では、key Management Service (KMS) のカスタマーマスターキー (CMK) を使用して、保存中のKubernetesクラスターのシークレットを暗号化できます。
シナリオ
ACKは、オペレーションオーケストレーション管理において強力な機能を提供する。 製品、サービス、モジュール間のパスワード、証明書、資格情報、アクセスキーなどの秘密を取得します。 ACKは、シークレットモジュールを使用して、Kubernetesクラスターの機密情報とクラスター内のビジネスアプリケーションの機密情報を保存および管理します。 また、機密情報をetcdに保存します。 etcdのレプリケーション機能は分散ストレージをサポートします。
初期化状態 (業務負荷なし) のKubernetesクラスターには、約50のSecretsがあります。 シークレットの漏洩は、クラスター、ビジネスシステム、または企業全体に計り知れない損失を引き起こす可能性があります。 したがって、Kubernetesクラスターに保存されているSecretsを保護する必要があります。
暗号化メカニズム
プロフェッショナルマネージドKubernetesクラスターを使用すると、KMSでCMKを使用してSecretsを暗号化できます。 KubernetesのKMSプロバイダーメカニズムは、暗号化中に使用されます。 KMSプロバイダーは、エンベロープ暗号化を使用して、etcdに格納されているSecretsのキーを暗号化または復号します。 エンベロープ暗号化の詳細については、「エンベロープ暗号化を使用したローカルデータの暗号化および復号化キーの暗号化と復号化の手順」をご参照ください。
Kubernetes Secret APIを使用してKubernetes Secretを保存すると、APIサーバーはランダムなデータキーを生成してビジネスキーを暗号化します。 次に、システムはKMSのCMKを使用してデータキーを暗号化し、データキーの暗号文をetcdに保存します。
Kubernetes Secretを復号化すると、システムは最初にKMSのdecrypt操作を呼び出してデータキーを復号化します。 次に、データキーの平文を使用してKubernetes Secretを復号し、復号されたSecretを返します。
前提条件
ACKを使用するAlibaba Cloudアカウントには、AliyunCSManagedSecurityRoleロールが割り当てられています。 ロールが割り当てられていないAlibaba Cloudアカウントを使用して、新規または既存のプロフェッショナルマネージドKubernetesクラスターの保存時にシークレット暗号化を有効にする場合、最初にAlibaba Cloudアカウントにロールを割り当てるように求められます。
ACKコンソールへのログインに使用するRAMユーザーには、AliyunKMSCryptoAdminAccess権限が付与されています。 詳細については、「RAM ユーザーへの権限付与」をご参照ください。
CMKはKMSコンソールで作成されます。 詳細については、「CMK を作成する」をご参照ください。
説明Aliyun_AES_256タイプのCMKのみがサポートされています。
プロフェッショナルなマネージドKubernetesクラスターを作成し、保存時にSecret暗号化を有効にする
ACKコンソールにログインします。
左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページの右上隅にある [クラスターテンプレート] をクリックします。
[クラスターテンプレートの選択] ダイアログボックスで、[Professional Managed Kubernetesクラスター] を選択し、[作成] をクリックします。
[Managed Kubernetes] タブで、[Secret Encryption] を見つけ、[select Key] を選択し、ドロップダウンリストからCMK IDを選択します。
画面上の指示に従って他のパラメータを設定します。
詳細については、「ACK マネージドクラスターの作成」をご参照ください。
既存のプロフェッショナルマネージドKubernetesクラスターのシークレット暗号化を有効にする
[クラスター] ページで、保存中のSecret暗号化を有効にするプロフェッショナルマネージドKubernetesクラスターの名前をクリックします。
[基本情報] タブをクリックします。 [基本情報] セクションで、[秘密の暗号化] をオンにします。
[秘密の暗号化] ダイアログボックスで、[既存のキー] ドロップダウンリストからCMK IDを選択し、[OK] をクリックします。
クラスターのステータスが [更新中] から [実行中] に変更された場合、クラスターのシークレット暗号化が有効になります。
結果
ActionTrailコンソールの [イベント詳細クエリ] ページで、AliyunCSManagedSecurityRoleロールによって実行された暗号化イベントまたは復号化イベントが見つかった場合、クラスターの秘密暗号化が有効になっています。 ActionTrailコンソールですべてのKMS CMK呼び出しレコードを表示できます。