向kubernetes部署添加基本身份验证

时间:2019-10-07 21:44:33

标签: authentication kubernetes google-cloud-platform

任何人都可以向我解释向在Google Cloud(GCP)上运行Web应用程序的kubernetes集群部署中添加基本Auth的最佳方法是什么

我们使用以下方法公开它:

kubectl expose deployment testSanbox --type=LoadBalancer --port 80 --target-port 80

我们不需要任何花哨的东西,因为这只是一个开发人员沙箱,但我们不希望任何人都能使用它。 它可以是单个用户/密码组合,也可以使用我们通过IAM管理的Google凭据。

抱歉,您可能已经注意到,我对Kubernetes或GCP并没有真正的经验。

谢谢

3 个答案:

答案 0 :(得分:1)

您部署了一个pod testSandbox ,并将其暴露给LoadBalancer。您的应用程序 testSandbox 应对接收到的请求进行身份验证。除非您使用API​​网关并对进入集群的所有请求进行身份验证。

答案 1 :(得分:1)

如果您要查找HTTP Basic Auth,则可以使用NGINX和Ingress。这是设置说明authentication-ingress-nginxingress-auth

但是在安全性方面,http身份验证不足以提供安全的身份验证方法。问题是,除非在整个数据周期中严格执行SSL流程以确保安全,否则身份验证将在不安全的线路上以公开方式传输。这很容易导致中间攻击,用户可以简单地捕获登录数据并通过附加到恶意数据包的复制猫HTTP标头进行身份验证。

这是kubernetes官方文档中有关授权authorization-kubernetes的概述。

如果您寻求更好的解决方案,请使用API​​密钥,OAuth提供程序(例如Google,Auth0等)。developers.google.com/identity/protocols/OAuth2WebServer和developers.google.com/identity/protocols/OAuth2UserAgent 身份验证和授权有很多选项。 以下是上述术语的xplaination:api-authentication

在GCP:authentication-gcp-app上使用Auth验证用户身份的方法。

请告诉我是否有帮助。

答案 2 :(得分:1)

我将通过HTTP更改您的TCP负载平衡器。这意味着您不必将其公开为LoadBalancer类型的服务,而是将其公开为NodePort。然后,您将创建Ingress资源以使用该服务。

对于身份验证,您可以使用IAP(身份识别代理),它是GCP产品,可以很容易地将其连接到HTTP负载均衡器。

完成后,您将拥有典型的Google身份验证页面(类似于gmail),并且您的用户将使用其GCP凭据对自己进行身份验证。