--- title: "Secret Manager連携の解除" slug: "secret-manager-use-example" updated: 2026-10-20T09:02:08Z published: 2026-10-20T09:02:08Z canonical: "guide.ncloud-docs.com/secret-manager-use-example" --- > ## 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と連携して Secretを使用できます。 ## Secret Managerで Secretを作成 [Secret Manager ご利用ガイド](https://guide.ncloud-docs.com/docs/ja/secretmanager-use)を参照して my-secret Secretを作成し、idと passwordを Keyとする Valueを登録します。 ## Secret Managerに登録された Secret全体をマウントして使用 1. SecretProviderClassの作成 ``` apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: my-secret namespace: default spec: provider: ncp parameters: objects: | - objectName: "my-secret" objectType: "secretmanager" path: "my-secret.txt" ``` 1. SecretProviderClassをマウントして使用する Podを作成 ``` apiVersion: v1 kind: Pod metadata: name: my-pod namespace: default spec: containers: - name: my-pod command: [ "sleep", "1000000" ] image: busybox imagePullPolicy: IfNotPresent volumeMounts: - mountPath: "/var/secrets" name: my-secret volumes: - name: my-secret csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "my-secret" ``` 1. Podにアクセスして Secretが正常にマウントされたか確認 ``` $ kubectl exec my-pod -- ls /var/secrets my-secret.txt $ kubectl exec my-pod -- cat /var/secrets/my-secret.txt {"id": "my-id", "password": "my-password"} ``` ## Secret Managerに登録された Secretの特定 Keyを使用してマウント 1. SecretProviderClassの作成 ``` apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: my-secret namespace: default spec: provider: ncp parameters: objects: | - objectName: "my-secret" objectType: "secretmanager" secretKey: "id" path: "id.txt" - objectName: "my-secret" objectType: "secretmanager" secretKey: "password" path: "password.txt" ``` 1. SecretProviderClassをマウントして使用する Podを作成 ``` apiVersion: v1 kind: Pod metadata: name: my-pod namespace: default spec: containers: - name: my-pod command: [ "sleep", "1000000" ] image: busybox imagePullPolicy: IfNotPresent volumeMounts: - mountPath: "/var/secrets" name: my-secret volumes: - name: my-secret csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "my-secret" ``` 1. Podにアクセスして Secretが正常にマウントされたか確認 ``` $ kubectl exec my-pod -- ls /var/secrets id.txt password.txt $ kubectl exec my-pod -- cat /var/secrets/id.txt my-id $ kubectl exec my-pod -- cat /var/secrets/password.txt my-password ``` ## Secret Managerに登録された Secretを Kubernetes Secretと同期 Secret Managerに登録された Secretを Kubernetes Secretと同期するには、必ずその Secretが Podにマウントされている必要があります。 1. SecretProviderClassの作成 ``` apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClass metadata: name: my-secret namespace: default spec: provider: ncp parameters: objects: | - objectName: "my-secret" objectType: "secretmanager" path: "my-secret.txt" secretObjects: - secretName: my-secret type: Opaque data: - objectName: my-secret.txt key: my-key ``` 1. SecretProviderClassをマウントして使用する Podを作成 ``` apiVersion: v1 kind: Pod metadata: name: my-pod namespace: default spec: containers: - name: my-pod command: [ "sleep", "1000000" ] image: busybox imagePullPolicy: IfNotPresent volumeMounts: - mountPath: "/var/secrets" name: my-secret volumes: - name: my-secret csi: driver: secrets-store.csi.k8s.io readOnly: true volumeAttributes: secretProviderClass: "my-secret" ``` 1. 当該 Secretが正常に作成されたか確認 ``` $ kubectl get secret my-secret -o yaml apiVersion: v1 data: my-key: eyJpZCI6ICJteS1pZCIsICJwYXNzd29yZCI6ICJteS1wYXNzd29yZCJ9 kind: Secret metadata: labels: secrets-store.csi.k8s.io/managed: "true" name: my-secret namespace: default ownerReferences: - apiVersion: secrets-store.csi.x-k8s.io/v1 kind: SecretProviderClassPodStatus name: my-pod-default-my-secret type: Opaque ```