すべてのプロダクト
Search
ドキュメントセンター

Key Management Service:KMS シークレットと ACK の統合

最終更新日:Jun 23, 2026

ack-secret-manager Kubernetes プラグインをインストールすると、Key Management Service (KMS) から最新のシークレット値を定期的に取得し、Container Service for Kubernetes (ACK) クラスターにキャッシュするように設定できます。これにより、KMS の動的シークレットをネイティブの Kubernetes シークレットのように使用でき、アプリケーションの開発およびビルドプロセス中に機密データが漏洩するのを防ぐことができます。

操作手順

  1. ack-secret-manager プラグインをインストールします。

    • ACK クラスターの場合

      1. ACK コンソールにログインし、[Marketplace] で ack-secret-manager を見つけます。

      2. ack-secret-manager ページで、右上隅にある ワンクリックデプロイメント をクリックします。

      3. パネルで、クラスター名前空間、およびリリース名をデフォルト値のままにして、次へをクリックします。

      4. パラメーター ページで、パラメーターを設定し、OK をクリックします。

        パラメーター

        説明

        command.backend

        外部シークレット管理システムのバックエンド。現在、KMS のみがサポートされています。このパラメーターを alicloud-kms に設定します。

        alicloud-kms

        command.region

        シークレットを取得するリージョン。

        cn-hangzhou

        command.disablePolling

        KMS バックエンドから最新のシークレット値を自動同期するかどうかを指定します。同期を無効にする場合は true に設定します。デフォルト値: false

        false

        command.pollingInterval

        KMS バックエンドからのシークレットのポーリング間隔。

        120s

        デプロイが成功すると、クラスターの ack-secret-manager ページにリダイレクトされます。[Resources] ページで、次の 6 つの Kubernetes リソースが作成されたことを確認します:ack-secret-manager (サービスアカウント)、externalsecrets.alibabacloud.com (カスタムリソース定義)、ack-secret-manager (ClusterRole)、ack-secret-manager (ClusterRoleBinding)、ack-secret-manager-auth (ClusterRoleBinding)、ack-secret-manager (デプロイメント)

    • セルフマネージド Kubernetes クラスターの場合は、ack-secret-manager にアクセスしてプラグインをインストールしてください。

  2. KMS でシークレットを作成します。

    すべてのシークレットタイプがサポートされています。詳細については、「汎用シークレットの管理と使用」、「RAM シークレットの管理と使用」、「ApsaraDB RDS シークレットの管理と使用」、または「ECS シークレットの管理と使用」をご参照ください。

  3. ack-secret-manager プラグインに KMS へのアクセス権を付与します。

    • 共有 KMS を使用したアクセス

      この方法は、KMS インスタンス内のシークレットと、KMS インスタンスにないシークレット (インスタンスが不要だった以前の KMS バージョンで作成されたシークレットを含む) に適しています。

      1. Resource Access Management (RAM) で、KMS シークレットへのアクセス権を付与するカスタムポリシーを作成します。次のコードはポリシーの例です。ビジネス要件に基づいてポリシーをカスタマイズできます。詳細については、「Key Management Service のカスタムポリシー」をご参照ください。

        {
            "Action": [
               "kms:GetSecretValue",
               "kms:Decrypt"
            ],
            "Resource": [
                "*"
            ],
            "Effect": "Allow"
        }
      2. コンテナサービスのワークロードまたは Pod に権限を付与します。

        方法

        説明

        クラスターのワーカーロールに権限を追加

        1. ACK コンソールにログインします。左側のナビゲーションペインで、クラスター を選択します。

        2. 対象のクラスターを見つけ、アクション 列の 詳細 をクリックします。

        3. [Cluster Resources] タブで、KubernetesWorkerRole-****** という名前のワーカーロールをクリックします。これにより RAM コンソールにリダイレクトされ、カスタムポリシーをアタッチできます。

        RAM Roles for Service Accounts (RRSA) を使用した Pod レベルでの権限付与

        1. RRSA 機能を有効にします

        2. RRSA 機能を使用します

          指定されたサービスアカウントの RAM ロールを作成し、RAM ロールの信頼ポリシーを設定してから、カスタムポリシーをアタッチします。

    • KMS インスタンスエンドポイント ({kmsInstanceId}.cryptoservice.kms.aliyuncs.com) を使用したアクセス

      この方法は、KMS インスタンス内のシークレットにのみ適用されます。Virtual Private Cloud (VPC) 内で KMS へのネットワークアクセスを制限したい場合は、このアプローチを推奨します。詳細については、「アプリケーションアクセスポイントの作成」をご参照ください。

    • 説明

      KMS インスタンスエンドポイントを使用する前に、ワークロードまたは Pod の VPC を KMS インスタンスにバインドしてください。詳細については、「同一リージョン内の複数の VPC から KMS インスタンスにアクセスする」をご参照ください。

  4. ack-secret-manager プラグインで、protocol (KMS にアクセスするためのプロトコル)、endpoint (アクセスポイント)、client key (認証方法)、SecretName (シークレット名) などのパラメーターを設定します。詳細については、ack-secret-manager のドキュメントをご参照ください。

次のステップ

KMS から取得してクラスターにキャッシュされたシークレットをさらに保護するには、Kubernetes シークレットの保存時の暗号化を有効にします。詳細については、「KMS を使用した Kubernetes シークレットの保存時の暗号化」をご参照ください。

説明

この暗号化機能は、システムシークレットなど、Kubernetes クラスター内の他の静的シークレットも保護します。

関連ドキュメント