我正在尝试使用 terraform 部署 k8s 集群。部署 k8s 集群成功,但是当 terraform 尝试运行配置的 pod 安全策略部分时,它会返回如下错误
clusterroles.rbac.authorization.k8s.io "clusterrole" is forbidden: user "<ServiceAccountID>" (groups=["system:authenticated"]) is attempting to grant RBAC permissions not currently held:
│ {APIGroups:["policy"], Resources:["podsecuritypolicies"], ResourceNames:["vseca-psp"], Verbs:["use" "get" "list" "watch" "create" "update" "patch" "delete"]}
ServiceAccountID
我通过上面显示的错误知道正在使用的服务帐户。但是,我创建了另一个有权创建 pod 安全策略和任何其他 k8s 资源的服务帐户。我正在尝试将新创建的服务帐户与块的权限impersonate_service_account
一起使用module gke
。
module "gke" {
...
impersonate_service_account = "<ServiceAccountEmail>"
...
这似乎没有使用我要求它模拟的服务帐户,而是继续使用上述错误中返回的服务帐户。
注意:我使用的是 terraform kubernetes 引擎模块,如此处所示