--- title: "Secret Manager連携" slug: "k8s-k8suse-secret-manager" updated: 2026-10-20T09:02:00Z published: 2026-10-20T09:02:00Z canonical: "guide.ncloud-docs.com/k8s-k8suse-secret-manager" --- > ## Documentation Index > Fetch the complete documentation index at: https://guide.ncloud-docs.com/llms.txt > Use this file to discover all available pages before exploring further. # Secret Manager連携 VPC環境で利用できます。 Ncloud Kubernetes Serviceでは [Secret Manager](https://guide.ncloud-docs.com/docs/ja/secretmanager-overview)に保存された Secretを連携して使用できます。この機能は Kubernetesで提供する [Secrets Store CSI Driver](https://secrets-store-csi-driver.sigs.k8s.io/)と Ncloud Kubernetes Serviceで提供する secrets-store-csi-drvier-provider-ncpを通じて提供します。 ## 制限事項 - Secret Managerは、韓国と日本リージョンでのみ提供します。 ## システム要件 - Secret Managerを使用している必要があります。 - サブアカウントの場合、Secret Managerを照会するために NCP_SECRETMANAGER_USER権限が必要です。 ## 機能 - Secret Managerに保存された Secretを Podにボリュームとしてマウントして使用できます。 - Secret Managerに保存された Secretロテーションが発生する場合、Podにマウントされた Secretも自動的にロテーションできます。 - Secret Managerに保存された Secretを Kubernetesの Secretと同期できます。 ## インストール Secret Manager連携のために secrets-store-csi-driverと secrets-store-csi-driver-provider-ncpをインストールします。 1. 以下のコマンドを通じて secrets-store-csi-driverをインストールします。 ``` $ helm repo add secrets-store-csi-driver https://kubernetes-sigs.github.io/secrets-store-csi-driver/charts $ helm install csi-secrets-store secrets-store-csi-driver/secrets-store-csi-driver --namespace kube-system ``` - Secretロテーション機能を使用するには、`--set enableSecretRotation=true`設定を追加します。 - Kubernetes Secret同期化機能を使用するには、`--set syncSecret.enabled=true`設定を追加します。 2. Secret Manager API呼び出しのために認証情報を作成します。 ``` $ vi configure ncloud_access_key_id= ncloud_secret_access_key= secretmanager_api_url= ``` - ncloud_access_key_id: Ncloud AcessKey - ncloud_secret_access_key: Ncloud SecretKey - secretmanager_api_url - 韓国: https://ocapi-kr.ncloud.com/secretmanager/api/v1 - 日本: https://ocapi-jp.ncloud.com/secretmanager/api/v1 3. 以下のコマンドを通じて認証情報を Kubernetes Secretで作成します。 ``` $ kubectl -n kube-system create secret generic ncp-secrets-store-credentials --from-file=./configure ``` 4. 以下のコマンドを通じて該当するリージョンの secrets-store-csi-driver-provider-ncpをインストールします。 ``` # 韓国リージョン $ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/secrets-store-csi-driver-provider-ncp/pub/kr/v0.1.0/provider-ncp.yaml # 日本リージョン $ kubectl --kubeconfig=$KUBE_CONFIG apply -f https://kr.object.ncloudstorage.com/nks-download/secrets-store-csi-driver-provider-ncp/pub/jp/v0.1.0/provider-ncp.yaml ``` 5. 以下のコマンドを通じてインストールされた Podが正常に動作するか確認します。 ``` $ kubectl -n kube-system get po -l app.kubernetes.io/instance=csi-secrets-store $ kubectl -n kube-system get po -l app=secrets-store-csi-driver-provider-ncp ``` ## 使用 ### SecretProviderClassの定義 SecretProviderClassを定義して Secret Managerと連携された Secretを使用できます。 ``` apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: my-secret namespace: my-namespace spec: provider: ncp parameters: objects: | - objectName: "my-secret" objectType: "secretmanager" path: "my-secret.txt" - objectName: "my-secret" objectType: "secretmanager" secretKey: "id" path: "id.txt" - objectName: "my-secret" objectType: "secretmanager" secretKey: "password" path: "password.txt" secretObjects: - secretName: my-secret type: Opaque data: - objectName: my-secret.txt key: my-key ``` - provider: ncp - objects: ファイルとしてマウントする Secretを定義します。 - objectName: SecretManagerに作成した Secret名 - objectType: secretmanager - path: Podにマウントされるファイル名 - secretKey(任意項目): SecretManagerに保存された Secretの中から、その Keyの Valueのみ使用。定義しないとその Secretに保存されたすべての Key/Valueを JSON形式で使用 - secretObjects(任意項目): Kubernetes Secretと同期する場合に設定 - secretName: 作成される Kubernetes Secret - data.objectName: Podにマウントされているファイル名(path) - data.key: 作成された Secret dataの key名 ### Podマウント設定 Podの volumesに secretProviderClassを設定して使用できます。 ``` volumes: - name: my-secret csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "my-secret" ``` ### Secretマウントステータスの確認 SecretProviderClassPodStatusを照会して現在 Podにマウントされている Secretのステータスを確認できます。 ``` $ kubectl get secretproviderclasspodstatuses -- -o yaml ... status: mounted: true objects: - id: secretmanager/my-secret version: "1" podName: my-pod secretProviderClassName: my-secret targetPath: /var/lib/kubelet/pods/1d401b1a-9a16-4335-b015-59e11e87b349/volumes/kubernetes.io~csi/my-secret/mount ``` ### Secretロテーション機能の使用 Secret Managerの [Secretロテーション設定](https://guide.ncloud-docs.com/docs/ja/secretmanager-rotate-action)を参照して Secretロテーションを実行できます。Secret Managerの Secretをロテーションすると、その Secretにマウントされたファイルも自動的に同期します。この機能は secrets-store-csi-driverのアルファバージョンで提供されており、使用する前に[公式ガイド](https://secrets-store-csi-driver.sigs.k8s.io/topics/secret-auto-rotation)をご参照ください。