Container Service for Kubernetes (ACK) では、key Management Service (KMS) のカスタマーマスターキー (CMK) を使用して、保存中のKubernetesクラスターのシークレットを暗号化できます。
シナリオ
ACKは、オペレーションオーケストレーション管理において強力な機能を提供する。 製品、サービス、モジュール間のパスワード、証明書、資格情報、アクセスキーなどの秘密を取得します。 ACKは、シークレットモジュールを使用して、Kubernetesクラスターの機密情報とクラスター内のビジネスアプリケーションの機密情報を保存および管理します。 また、機密情報をetcdに保存します。 etcdのレプリケーション機能は分散ストレージをサポートします。
初期化状態 (業務負荷なし) のKubernetesクラスターには、約50のSecretsがあります。 シークレットの漏洩は、クラスター、ビジネスシステム、または企業全体に計り知れない損失を引き起こす可能性があります。 したがって、Kubernetesクラスターに保存されている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暗号化を有効にする
既存のプロフェッショナルマネージドKubernetesクラスターのシークレット暗号化を有効にする
結果
ActionTrailコンソールの [イベント詳細クエリ] ページで、AliyunCSManagedSecurityRoleロールによって実行された暗号化イベントまたは復号化イベントが見つかった場合、クラスターの秘密暗号化が有効になっています。 ActionTrailコンソールですべてのKMS CMK呼び出しレコードを表示できます。