Container Service for Kubernetes (ack) にACK-secret-manager secret Kubernetesプラグインをインストールした後、プラグインでシークレット名を設定できます。 プラグインは、Key Management Service (KMS) から最新のシークレット値を定期的に読み取り、Kubernetesクラスターに値をキャッシュします。 Kubernetes secretsでシークレットを使用するのと同じ方法で、KMSで管理されている動的シークレットを使用できます。 これにより、アプリケーションの開発および構築中の機密データの送信および漏洩が防止される。
プロシージャ
ack-secret-manager secret Kubernetesプラグインをインストールします。
ACKクラスター
ACKコンソールにログインし、Marketplaceページでack-secret-managerをクリックします。
ack-secret-managerページの右上隅で、[デプロイ] をクリックします。
[配置] パネルで [クラスター] を設定し、[名前空間] と [リリース名] のデフォルト値を保持し、[次へ] をクリックします。
[パラメーター] ステップでパラメーターを設定し、[OK] をクリックします。
パラメーター
の説明
例
コマンド. backend
外部キー管理システムのバックエンド。 KMSのみがサポートされています。 値をalicloud-kmsに設定します。
alicloud-kms
コマンド. region
秘密を取得する地域。
cn-hangzhou
コマンド. disablePolling
KMSからの最新のシークレット値の自動同期を無効にするかどうかを指定します。 デフォルト値:false
false
command.pollingInterval
既存のシークレット値がKMSから同期される間隔。
120s
設定が完了すると、ack-secret-managerページにリダイレクトされます。 インストール結果はページで確認できます。 次の図に示すリソースが作成されている場合、ack-secret-manager secret Kubernetesプラグインがインストールされます。
自己管理型Kubernetesクラスター
ack-secret-managerにアクセスし、ack-secret-manager secret Kubernetesプラグインをインストールできます。
KMSでシークレットを作成します。
すべてのタイプの秘密を作成できます。 詳細については、「ジェネリックシークレットの管理と使用」、「RAMシークレットの管理と使用」、「ApsaraDB RDSシークレットの管理と使用」、または「ECSシークレットの管理と使用」をご参照ください。
ack-secret-manager secret KubernetesプラグインでKMSにアクセスする権限を指定します。
KMSエンドポイントを使用したKMSへのアクセス
この方法は、KMSインスタンスのシークレットと、KMSインスタンスが購入されていない古いバージョンのKMSで作成されたシークレットに適しています。
リソースアクセス管理 (RAM) で、シークレットへのアクセスに使用できるカスタムポリシーを作成します。 次のサンプルコードは、ポリシーコンテンツの例を示しています。 ビジネス要件に基づいてポリシーの内容を指定できます。 詳細については、「カスタムポリシー」をご参照ください。
{ "Action": [ "kms:GetSecretValue", "kms:Decrypt" ], "Resource": [ "*" ], "Effect": "Allow" }ワークロードまたはポッドにKMSへのアクセスを許可します。
移動方法
クラスターの必要なワーカーロールにカスタムポリシーをアタッチする
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
管理するクラスターを見つけて、[操作] 列の [詳細] をクリックします。
[クラスターリソース] タブで、Kubernetes WorkerRole-****** という名前のRAMロールの名前をクリックします。 カスタムポリシーをロールにアタッチできるページにリダイレクトされます。
サービスアカウントのRAMロール (RRSA) 機能を使用して、ポッドごとにカスタムポリシーをアタッチします。
RRSA機能を使用します。
サービスアカウントのRAMロールを作成し、RAMロールの信頼ポリシーを指定してから、カスタムポリシーをRAMロールにアタッチします。
{kmsInstanceI d}.cryptoservice.kms.aliyuncs.com形式のKMSインスタンスエンドポイントを使用してKMSにアクセスする
この方法は、KMSインスタンスのシークレットに適しています。 KMSインスタンスを使用してシークレットを管理し、仮想プライベートクラウド (VPC) でのみKMSにアクセスする場合は、この方法を使用することを推奨します。 詳細については、「AAPの作成」をご参照ください。
説明KMSインスタンスエンドポイントを使用してKMSにアクセスする前に、ワークロードまたはポッドのVPCをKMSインスタンスにバインドします。 詳細については、「同じリージョンの複数のVPCからのKMSインスタンスへのアクセス」をご参照ください。
ack-secret-manager secret Kubernetesプラグインで、プロトコル、エンドポイント、クライアントキー、およびシークレット名を指定します。 詳細については、「ack-secret-manager」をご参照ください。
次に何をすべきか
KMSから読み取られ、Kubernetesクラスターにキャッシュされたシークレットを保護するために、Kubernetes secretsでシークレットを暗号化できます。 詳細については、「KMSを使用したKubernetes Secrets at restの暗号化」をご参照ください。
暗号化を実行して、Kubernetesクラスターの静的シークレットを保護することもできます。 静的秘密は、システム秘密である。