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