当前位置: 首页 > 知识库问答 >
问题:

使用带令牌的Kubernetes集群进行身份验证

徐茂材
2023-03-14

我的环境设置(AWS EKS)的方式是,在我的~/.kube/config中,用户有一个exec配置来调用AWS-IAM-Authenticator

这样,当kubectl运行时,它将请求令牌对Kubernetes集群进行身份验证。

我目前正在编写一个将与Kubernetes API交互的客户端应用程序。这是用Python编写的,使用的是官方的Python客户端。

在执行任何示例时,我得到的错误是system:anonymous不允许执行某个操作(例如,列表pods)。我认为问题的根源在于我需要将aws-iam-authenticator中的令牌传递给我的客户端请求。

不幸的是,我似乎无法弄清楚如何在Python客户机中为Kubernetes传递这个令牌。我看到了这个片段,但我得到了一个错误,即api_key属性不是configuration模块的一部分(当然,它不是)。

我应该如何将令牌注入到来自Python客户机的Kubernetes请求中?

提前道谢!

共有1个答案

唐睿
2023-03-14

我相信您需要通过以下方式配置'authorization:Bearer'头:configuration.api_key_prefix['authorization']='Bearer'。所以基本上:

from __future__ import print_function
import time
import kubernetes.client
from kubernetes.client.rest import ApiException
from pprint import pprint

# Configure API key authorization: BearerToken
configuration = kubernetes.client.Configuration()
configuration.api_key['authorization'] = 'YOUR_API_KEY'
# Uncomment below to setup prefix (e.g. Bearer) for API key, if needed
configuration.api_key_prefix['authorization'] = 'Bearer' ## <== This one

# create an instance of the API class
api_instance = kubernetes.client.ApiregistrationV1Api(kubernetes.client.ApiClient(configuration))
body = kubernetes.client.V1APIService() # V1APIService | 
pretty = 'pretty_example' # str | If 'true', then the output is pretty printed. (optional)

try: 
    api_response = api_instance.create_api_service(body, pretty=pretty)
    pprint(api_response)
except ApiException as e:
    print("Exception when calling ApiregistrationV1Api->create_api_service: %s\n" % e)

这里基本描述了

 类似资料:
  • 致命:“https://github.com/scuzzlebuzzle/ol3-1.git/'”身份验证失败

  • 我已经在Kubernetes上建立了Spark独立集群,并试图连接到Kubernetes上没有的Kerberized Hadoop集群。我已经将core-site.xml和hdfs-site.xml放在Spark集群的容器中,并相应地设置了HADOOP_CONF_DIR。我能够成功地在Spark容器中为访问Hadoop集群的principal生成kerberos凭据缓存。但是当我运行spark-s

  • 我想使用我的GitLab帐户中的私有令牌克隆GitLab存储库,而不提示输入我的自动化脚本。 有人能给我一个样品吗? 我知道我可以使用用户和密码执行此操作: 我知道使用ssh密钥是可能的 但是,这两种选择都是不够的。

  • 我正在尝试为我的应用程序构建一个身份验证解决方案。我使用React作为前端,使用API模式下的Rails作为后端。我有一个外部身份验证解决方案,我需要使用它。我无意中发现了Knock for JWT令牌管理,但我不理解文档,尤其是这部分“它必须有一个身份验证方法,类似于has_secure_password添加的方法”,因为由于我的外部身份验证服务,我没有用户模型。因此,在我的头脑中,登录请求将发

  • 问题内容: 这是一个具有登录屏幕的现有系统,现在我将某些服务公开为REST服务。我为此Rest(jersey)服务构建了一个身份验证令牌登录系统。用户发送用户名密码,然后服务器返回计算为的令牌; 用户将使用此令牌登录应用程序以获取进一步的请求。并且服务器将令牌的副本与时间戳和用户ID一起保留在数据库中,如果时间戳有效,则登录该用户。 考虑使用 HTTPS ,有几个问题; 我的设计看起来一切正常吗?

  • 我有Kerberos并启用了Hadoop集群。我需要使用Java代码执行HDFS操作。 多谢了。