首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用csi驱动程序从Vault检索机密,返回“permission denied”

使用csi驱动程序从Vault检索机密,返回“permission denied”
EN

Stack Overflow用户
提问于 2021-08-23 16:08:44
回答 1查看 329关注 0票数 0

我可以使用curl获取一个令牌:

代码语言:javascript
复制
curl \
--request POST \
--data '{"jwt": "'$TOKEN_REVIEW_SJWT'", "role": "teste-role"}'\
http://<ip>:8200/v1/auth/kubernetes/login

我能够vault login <token>和阅读秘密的vault read secret/data/k8s-secret。但是当我部署一个pod来测试它的时候,返回的是“permission denied”。

代码语言:javascript
复制
Warning  FailedMount  103s (x23 over 32m)   kubelet, <ip>  MountVolume.SetUp failed for volume "secrets-store-inline" : rpc error: code = Unknown desc = failed to mount secrets store objects for pod csi/nginx-secrets-store-inline, err: rpc error: code = Unknown desc = error making mount request: couldn't read secret "k8s-secret": Error making API request.

URL: GET http://<vault-ip>:8200/v1/%!!(MISSING)E(MISSING)2%!C(MISSING)secret/data/k8s-secret%!!(MISSING)E(MISSING)2%!D(MISSING)
Code: 403. Errors:

* 1 error occurred:
  * permission denied

Pod状态:

代码语言:javascript
复制
kubectl get pods -n csi
NAME                                 READY   STATUS    RESTARTS   AGE
csi-secrets-store-csi-driver-4n789   3/3     Running   0          24h
csi-secrets-store-csi-driver-8zfbp   3/3     Running   0          10d
csi-secrets-store-csi-driver-b6hqv   3/3     Running   0          10d
vault-csi-provider-f488v             1/1     Running   0          11d
vault-csi-provider-l2982             1/1     Running   0          24h
vault-csi-provider-zztxb             1/1     Running   0          10d

安装vault provider和csi驱动程序的步骤:

代码语言:javascript
复制
helm install vault hashicorp/vault -n csi\
  --set "server.enabled=false" \
  --set "injector.enabled=false" \
  --set "csi.enabled=true"
代码语言:javascript
复制
helm install csi secrets-store-csi-driver/secrets-store-csi-driver -n csi

Pod yaml使用秘诀:

代码语言:javascript
复制
kind: Pod
apiVersion: v1
metadata:
 name: nginx-secrets-store-inline
 namespace: app
spec:
 containers:
 - image: nginx
   name: nginx
   volumeMounts:
   - name: secrets-store-inline
     mountPath: “/mnt/secrets-store”
     readOnly: true
 serviceAccountName: app-sa
 volumes:
   - name: secrets-store-inline
     csi:
       driver: secrets-store.csi.k8s.io
       readOnly: true
       volumeAttributes:
         secretProviderClass: vault-secret
EN

回答 1

Stack Overflow用户

发布于 2021-09-10 20:13:00

当我从SecretProviderClass中删除双引号时,我能够创建pod。

代码语言:javascript
复制
objects: |
   - objectName: password
     secretPath: secret/data/k8s-secret/
     secretKey: password
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68895819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档