gpt4 book ai didi

kubernetes - 使用RBAC授予对Kubernetes中单个Pod的访问权限

转载 作者:行者123 更新时间:2023-12-02 12:10:57 25 4
gpt4 key购买 nike

我只想使用kubectl远程访问一个pod,所以遵循here的说明。
为了做到这一点,我在kubernetes中创建了一个access.yml文件:

---
apiVersion: v1
kind: ServiceAccount
metadata:
name: devops-user
namespace: default

---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: devops-user-limited-access
namespace: default
rules:
- apiGroups: ["", "extensions", "apps"]
resources: ["*"]
verbs: ["*"]

---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: devops-user-view
namespace: default
subjects:
- kind: ServiceAccount
name: devops-user
namespace: default
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: devops-user-limited-access
在远程笔记本电脑中,我使用 ~/.kube/config创建了一个文件,如下所示:
apiVersion: v1
kind: Config
preferences: {}

# Define the cluster
clusters:
- cluster:
certificate-authority-data: <my-ca.crt>
# You'll need the API endpoint of your Cluster here:
server: https://<server-ip>:6443
name: kubernetes

# Define the user
users:
- name: devops-user
user:
as-user-extra: {}
client-key-data: <my-ca.crt>
token: <token-created-by-k8s>

# Define the context: linking a user to a cluster
contexts:
- context:
cluster: kubernetes
namespace: default
user: devops-user
name: default

# Define current context
current-context: default
现在,我可以“完全访问”“所有 pod ”,但这不是我想要的。我只想拥有:

I want "full access" to only "one pod".

最佳答案

只需将其添加到您的角色文件中

resourceNames: ["POD_NAME"]
因此您的角色yaml文件应如下所示
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: devops-user-limited-access
namespace: default
rules:
- apiGroups: ["", "extensions", "apps"]
resources: ["pods", "pods/log"]
resourceNames: ["POD_NAME"] <-------------------------------here
verbs: ["get", "list"]

关于kubernetes - 使用RBAC授予对Kubernetes中单个Pod的访问权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63055069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com