【发布时间】:2021-12-29 21:12:18
【问题描述】:
从最近几天开始,我一直在想办法从我的私有 EKS 集群中使用 FARGATE 读取来自 AWS 秘密管理器的秘密。
为此,我尝试使用开源工具 https://github.com/external-secrets/external-secrets 但我无法让它与私有集群一起工作。
当我连接到互联网时,我可以通过运行上述链接的源代码来读取本地密码。但是当我将 pod 部署到 AWS 私有集群时,它总是会出现超时错误,如下面的代码 sn-ps 所示。
vel":"error","ts":1637220916.9525745,"logger":"controllers.ExternalSecret","msg":"could not reconcile ExternalSecret. Please check!!!","ExternalSecret":"commons/example","SecretStore":"commons/secretstore-sample","error":"could not get secret data from provider: key \"myTestSecret/random\" from ExternalSecret \"example\": WebIdentityErr: failed to retrieve credentials\ncaused by: RequestError: send request failed\ncaused by: Post \"https://sts.amazonaws.com/\": dial tcp 209.54.180.124:443: i/o timeout","stacktrace":"sigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).reconcileHandler\n\t/home/cloudberry/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.3/pkg/internal/controller/controller.go:298\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).processNextWorkItem\n\t/home/cloudberry/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.3/pkg/internal/controller/controller.go:253\nsigs.k8s.io/controller-runtime/pkg/internal/controller.(*Controller).Start.func2.2\n\t/home/cloudberry/go/pkg/mod/sigs.k8s.io/controller-runtime@v0.9.3/pkg/internal/controller/controller.go:214"}
我一直在努力让它工作,我还尝试通过更改代码中的 URL 来更改源代码,因为我发现它在一个地方进行了硬编码,但错误仍然没有消失。
任何关于如何使外部机密在私有集群中工作的提示都会非常有帮助。
提前致谢。
【问题讨论】:
-
您是否已经创建了具有访问外部机密的机密管理器策略的角色?您是否按照步骤为 external-secrets pod 提供了该角色? docs.aws.amazon.com/eks/latest/userguide/…
-
我已尝试创建服务帐户,但只有在这种方法中我才收到此错误。还尝试了 env 变量方法,但仍然没有运气。
标签: amazon-web-services kubernetes aws-secrets-manager